Agent Runtime:AI代理的“操作系统时刻”来临
1. 这不是新赛道,是 runtime 层的“操作系统时刻”来了
你有没有在深夜调试一个跑了三小时的 AI 代理,突然发现它开始胡言乱语?不是模型崩了,不是 prompt 写错了,而是——它的“记忆”被挤掉了。上下文窗口就那么大,工具调用日志、中间结果、用户多轮对话、系统指令……全塞进去,像往一个20升的桶里硬灌35升水。最后溢出的不是水,是逻辑:它忘了自己上一步查了什么数据库,忘了用户明确说“别联系销售”,甚至把两个不同客户的订单号搞混。更糟的是,你没法回溯——没有日志、没有快照、没有时间线,只有最后一段残缺的输出。这种失败不炸裂,但特别贵:重跑要钱,重写要人,客户信任一跌再跌。
这就是 Anthropic 在 2026 年 4 月 8 日发布的Claude Managed Agents真正解决的问题。它不是又一个“让 AI 更聪明”的玩具,而是一套为生产环境量身打造的、可审计、可恢复、可隔离的代理运行时基础设施(Agent Runtime Infrastructure)。关键词是“运行时”——不是模型,不是工具,不是 prompt 工程,而是让所有这些元素能稳定、安全、可追踪地协同工作的底层土壤。它把过去散落在开发者代码里的状态管理、沙箱调度、凭证分发、会话持久化,全部收束成一套清晰、解耦、厂商中立的抽象层。Session 不再是模型上下文里一团模糊的文本,而是一个独立、持久、可查询的事件日志;Harness 不再是你自己写的那个可能内存泄漏的 Python 进程,而是一个无状态、按需拉起、崩溃后能从任意 checkpoint 恢复的执行器;Sandbox 更不是你本地 Docker 里那个手动配置、权限混乱的容器,而是按需生成、生命周期严格管控、凭证永不暴露的 cattle 式资源。
这背后的技术判断非常务实:当 AI 代理从“单次问答”走向“多步协作、跨系统操作、持续服务”,真正的瓶颈早已不在模型推理速度,而在运行时的工程复杂度。Anthropic 的方案,本质上是在复刻操作系统对硬件的虚拟化路径——就像 Linux 抽象了 CPU 寄存器和磁盘扇区,让应用开发者不用操心物理地址,Managed Agents 也在抽象“状态存储”、“执行环境”、“安全边界”这些底层细节。它让一个团队能把精力聚焦在“这个代理该做什么业务”上,而不是“怎么防止它把 AWS 密钥打印到日志里”。所以,如果你是正在用 LangChain 或 CrewAI 搭建客服机器人、财务分析助手或内部知识库代理的工程师,这篇内容不是讲未来,是讲你下周就要面对的现实:如何把现有代理迁移到一个真正能扛住生产压力的底座上。它不承诺让你的模型变强,但它能保证,当你的模型变强时,整个系统不会因为基础设施的脆弱而崩塌。
2. 核心设计拆解:为什么是“Session-as-Event-Log”,而不是“Context-as-Storage”
2.1 旧范式的致命伤:上下文即状态,等于把金库钥匙焊死在保险柜门上
我们先直面那个让无数团队掉坑的旧模式:将所有会话状态(state)硬编码进 LLM 的上下文窗口(context window)。这听起来很自然——模型需要看到历史才能连贯思考,对吧?但实际落地时,它是一场缓慢的灾难。我去年参与的一个金融数据检索代理就是典型:它要串联完成“解析用户模糊需求 → 调用证券 API 获取标的列表 → 调用财报 API 获取关键指标 → 对比历史数据 → 生成可视化建议”五步。每一步的输入、输出、错误信息、API 响应时间,都作为纯文本塞进 prompt。问题在第四步爆发:当用户追问“把上个月的对比也加上”,系统需要把前三步的完整结果、加上新拉取的数据、再加上新的指令,全部重载进上下文。40 分钟后,上下文长度轻松突破 Claude 3.5 的 200K token 上限。模型没报错,它只是“安静地遗忘”——自动截断了最早调用的证券 API 响应。结果呢?它基于一个不完整的标的列表做财报分析,生成的建议里混进了根本不存在的股票代码。最讽刺的是,我们无法定位问题:日志里只有一行“LLM returned response”,没有中间状态,没有哪一步失败,只有最终输出的荒谬。重放?不可能,因为 session 状态随上下文一起蒸发了。
提示:这不是模型能力问题,是架构缺陷。上下文窗口的设计初衷是承载“当前对话的语义连贯性”,而非“长期、结构化的业务状态”。把它当数据库用,就像用 Excel 表格管理银行核心交易系统——短期能跑,长期必崩。
2.2 Anthropic 的解法:三层解耦,让每一层各司其职
Anthropic 的 Managed Agents 架构,核心就是三个词:Session、Harness、Sandbox。它们不是营销术语,而是有明确定义、严格边界的工程实体:
Session(会话):一个独立于任何模型实例的、持久化存储的事件流(event stream)。它记录的不是“模型看到了什么”,而是“代理做了什么”:
[Event: user_query, timestamp, content]→[Event: tool_call_start, tool_name="search_stock", input={"query": "NVIDIA"}]→[Event: tool_call_success, tool_name="search_stock", output={"ticker": "NVDA", "name": "NVIDIA Corp"}]→[Event: model_thinking, content="Now I need to fetch NVDA's latest quarterly revenue..."]。这个事件流存储在 Anthropic 的托管数据库里,生命周期以天/周计,可随时通过sessionId查询、回放、审计。它彻底解除了模型上下文对状态存储的依赖。Harness(执行器):一个轻量、无状态的执行调度器。它不保存任何业务数据,只负责两件事:1)根据 Session 当前的最新事件,构造一个精简、安全的 prompt 发送给 Claude 模型;2)接收模型输出的结构化指令(如
{"tool": "fetch_financials", "input": {"ticker": "NVDA"}}),调用对应的execute(tool_name, input)接口。Harness 可以随时重启、扩缩容,因为它不持有状态——所有状态都在 Session 里。崩溃后,只需awake(sessionId),它就能从最后一个成功事件点继续执行。Sandbox(沙箱):一个按需创建、严格隔离的执行环境。当你定义一个工具(比如
send_email),你不是写一个 Python 函数,而是提供一个 Docker 镜像或云函数 URI。每次execute("send_email", ...)被调用,Harness 就启动一个全新的 Sandbox 实例,注入本次调用所需的最小化参数,并将凭证(如 SMTP 密码、API Key)直接挂载为只读文件系统路径(如/run/secrets/smtp_password),而非环境变量。沙箱进程永远无法通过os.environ读取到密钥,只能通过预设的文件路径访问。任务结束,沙箱立即销毁。这实现了“credential isolation”,杜绝了密钥泄露风险。
这三层的解耦,直接对应了操作系统的核心思想:Session 是文件系统(持久化数据),Harness 是 CPU 调度器(执行逻辑),Sandbox 是内存管理单元(隔离资源)。它们之间通过明确定义的接口(如execute(name, input) → string)通信,而非共享内存或全局变量。这意味着,你可以单独升级 Harness 的调度算法,而不影响 Sandbox 的安全策略;可以为 Session 增加新的审计字段,而不改动 Harness 的代码;甚至可以把 Sandbox 替换为 AWS Lambda,只要它遵循相同的输入/输出契约。
2.3 为什么说这是“防御性发布”?看懂 AWS Bedrock AgentCore 的存在
Anthropic 的发布会通稿里,把 Managed Agents 描绘成开创性的新范式。但如果你打开 AWS 官网,会发现Bedrock AgentCore在 2025 年底就已进入通用可用(GA)阶段。截至 2026 年 3 月,其 SDK 下载量已超 200 万次。它的能力毫不逊色:每个 Session 运行在独立的 microVM(微虚拟机)中,拥有专属 CPU、内存和文件系统;Session 最长可运行 8 小时;它完全框架中立——LangGraph、CrewAI、甚至你手写的 Flask 应用,只要能处理标准 HTTP 请求-响应循环,就能被它托管;模型选择权完全开放,你可以用 Claude,也可以用 Llama 3、Mixtral,或者 AWS 自家的 Titan。
注意:这不是 Anthropic 技术落后,而是市场格局使然。AWS、Google Vertex AI、Microsoft Azure AI Foundry 这些云厂商,早已把“代理运行时”视为基础设施层(Infrastructure Layer),就像他们提供虚拟机、对象存储一样,必须免费或极低价捆绑在云账单里。他们的目标不是卖 runtime,而是卖计算、存储、网络——runtime 是吸引你把更多 AI 工作负载迁入其云平台的“钩子”。
所以 Anthropic 的真实动机,是守住自己的“模型即服务(Model-as-a-Service)”基本盘。如果开发者发现,用 AWS AgentCore 托管一个 Claude 代理,比用 Anthropic 自家的 Managed Agents 更便宜、更灵活、集成更顺,那他们为什么还要为 Anthropic 的 token 付费?尤其当 AWS 开始用“每 session-hour $0.05”的价格狙击时,Anthropic 的 $0.08 就显得格外敏感。因此,Managed Agents 的本质,是一个高保真、高控制力的 Claude 生态护城河:它确保你在享受 Anthropic 最新模型能力的同时,也深度绑定在其优化过的运行时上,从而降低你切换到其他云平台的成本。它不是为了赢 runtime 这个战场,而是为了确保你在 runtime 这个战场上,用的还是 Anthropic 的弹药。
3. 实操要点与核心环节实现:从 YAML 定义到生产部署
3.1 代理定义:用 YAML 描述你的“数字员工”,而非写代码
Managed Agents 的最大易用性,体现在代理(Agent)的定义方式上。你不再需要写一堆 Python 类来继承BaseTool、AgentExecutor,而是用一份简洁的 YAML 文件,声明式地描述你的代理“是谁”、“能做什么”、“不能做什么”。这极大降低了非资深工程师的使用门槛。以下是一个为销售团队设计的“客户线索评分代理”的 YAML 示例:
# sales-scoring-agent.yaml name: "Sales Lead Scorer" description: "Scores inbound leads based on firmographic data and engagement history" # 系统提示(System Prompt)——定义角色和规则 system_prompt: | You are a senior sales operations analyst at Acme Corp. Your job is to score leads from 0 to 100 based on: - Company size (revenue > $1B = +20 pts) - Industry (Tech, Finance, Healthcare = +15 pts each) - Engagement (Visited pricing page = +10, Downloaded whitepaper = +15, Attended webinar = +20) - Never hallucinate scores. If data is missing, ask for it. # 工具(Tools)——定义它能调用的外部能力 tools: - name: "get_company_info" description: "Fetch company details (revenue, industry, employee count) by domain" input_schema: type: "object" properties: domain: type: "string" description: "Company website domain (e.g., 'acmecorp.com')" # 指向一个预注册的 Sandboxed 函数 endpoint: "arn:aws:lambda:us-east-1:123456789012:function:get-company-info" - name: "get_engagement_history" description: "Get lead's engagement events from CRM" input_schema: type: "object" properties: lead_id: type: "string" description: "CRM lead ID" endpoint: "arn:aws:lambda:us-east-1:123456789012:function:get-engagement-history" # 安全围栏(Guardrails)——定义不可逾越的红线 guardrails: # 禁止生成任何个人身份信息(PII) - type: "pii_filter" config: allowed_categories: ["NONE"] # 禁止调用除已声明外的任何工具 - type: "tool_whitelist" config: allowed_tools: ["get_company_info", "get_engagement_history"] # 禁止输出超过 500 字符的响应 - type: "output_length_limit" config: max_chars: 500 # 会话配置(Session Config) session_config: # 会话最长存活时间(7天) ttl_seconds: 604800 # 自动清理闲置会话(30分钟无活动) idle_timeout_seconds: 1800这份 YAML 的力量在于,它把过去分散在代码、配置文件、安全策略文档里的信息,全部收敛到一个地方。system_prompt定义了行为边界,tools定义了能力边界,guardrails定义了安全边界。Anthropic 的后台会自动将这份 YAML 编译成一个可执行的、带强制校验的代理定义。你不需要关心 Harness 如何调度,也不需要手动写 PII 过滤逻辑——这些都由平台在execute()调用前后自动注入。实测下来,一个有经验的 SRE 工程师,花 20 分钟就能基于这个模板,为一个新的业务场景(比如“IT 故障自动诊断代理”)定义出第一个可用版本。
3.2 会话生命周期管理:从create_session()到awake(sessionId)
会话(Session)是 Managed Agents 的心脏。理解它的生命周期,是掌握整个系统的关键。它不是简单的“启动-运行-停止”,而是一个支持中断、恢复、审计的完整工作流:
创建(Create):调用
POST /v1/sessions,传入代理名称(如"Sales Lead Scorer")和初始用户消息(如"Score lead ID: LEAD-789")。平台返回一个唯一的sessionId(如"sess_abc123...")和一个sessionUrl。此时,一个空的、持久化的事件流在后台数据库中被创建。交互(Interact):所有后续请求都指向这个
sessionId。例如,POST /v1/sessions/{sessionId}/messages发送新消息。Harness 会:- 从数据库加载该 Session 的完整事件流;
- 基于最新事件,构造一个精简 prompt(只包含必要的上下文,如最近 3 条用户消息、最近 2 次工具调用结果);
- 调用 Claude 模型;
- 解析模型输出,提取
tool_call指令; - 启动 Sandbox,执行
execute("get_company_info", {"domain": "acmecorp.com"}); - 将
tool_call_start和tool_call_success事件写入 Session 数据库; - 返回模型生成的最终响应给用户。
中断与恢复(Interrupt & Resume):这是区别于传统模式的核心。假设在第 5 步,Sandbox 因网络抖动超时。Harness 不会重试或报错,而是直接将
tool_call_failure事件写入 Session,然后优雅退出。10 分钟后,你调用POST /v1/sessions/{sessionId}/awake。Harness 会:- 加载 Session,发现最后一条事件是
tool_call_failure; - 自动重试该失败的工具调用(可配置重试次数和间隔);
- 如果重试成功,继续后续流程;如果仍失败,则触发
guardrails中定义的降级策略(如返回“系统暂时繁忙,请稍后再试”)。
- 加载 Session,发现最后一条事件是
审计与回放(Audit & Replay):任何时候,你都可以
GET /v1/sessions/{sessionId}/events获取完整的、时间戳排序的事件流。这不仅是 debug 工具,更是合规刚需。例如,当销售总监质疑“为什么这个高分线索没被跟进?”,你可以直接导出事件流,清晰展示:[Event: user_query]→[Event: get_company_info called]→[Event: get_company_info succeeded with revenue=$2.1B]→[Event: model scored 92]→[Event: output sent to Slack]。整个过程透明、可追溯、不可篡改。
实操心得:不要把 Session 当作“一次聊天”,而要当作“一个业务工单”。在定义
session_config.ttl_seconds时,务必结合业务 SLA。对于客服场景,7 天足够;但对于金融风控场景,可能需要设置为 90 天以满足监管要求。另外,idle_timeout_seconds是成本控制的关键——设置过短(如 5 分钟),会导致用户稍作思考就被迫重新开始;设置过长(如 24 小时),则会为大量闲置会话持续付费。我们团队经过 A/B 测试,发现 30-45 分钟是大多数 B2B 场景的黄金平衡点。
3.3 沙箱(Sandbox)实战:如何安全地调用你的私有 API
Sandbox 的价值,90% 体现在凭证(Credentials)的安全隔离上。让我们用一个真实案例说明:你需要让代理调用公司内部的 HR 系统 API 来获取员工信息。传统做法是把 API Token 写在代码里或配置文件中,风险极高。Managed Agents 的正确姿势如下:
第一步:在 Anthropic 控制台注册你的工具
- 工具名称:
get_employee_data - 描述:
Fetch employee details (name, department, manager) by employee ID - 输入 Schema:定义
employee_id为必需字符串 - Endpoint Type: 选择
AWS Lambda(或其他支持的云函数) - Credential Source: 选择
Vault(这是关键!)
第二步:在 Vault 中安全存储凭证
- 进入 Anthropic 的 Secret Vault。
- 创建一个新 Secret,命名为
hr_api_token。 - 将你的实际 API Token 粘贴进去,设置为
read-only。 - (可选)为该 Secret 设置轮换策略,比如每 90 天自动更新。
第三步:编写 Sandbox 函数(以 AWS Lambda 为例)你的 Lambda 函数代码完全不需要处理凭证。它只做一件事:接收输入,调用 API,返回结果。
import json import os import requests def lambda_handler(event, context): # 1. 从预设路径读取凭证(Sandbox 自动注入,函数无感知) try: with open('/run/secrets/hr_api_token', 'r') as f: api_token = f.read().strip() except FileNotFoundError: raise Exception("HR API token not found in sandbox secrets") # 2. 解析输入 employee_id = event.get('employee_id') if not employee_id: raise ValueError("employee_id is required") # 3. 调用内部 API(注意:URL 必须是 VPC 内网地址,Sandbox 默认无公网出口) headers = { 'Authorization': f'Bearer {api_token}', 'Content-Type': 'application/json' } response = requests.get( f'https://hr-api.internal/v1/employees/{employee_id}', headers=headers, timeout=10 ) # 4. 返回标准化结果 if response.status_code == 200: return { 'status': 'success', 'data': response.json() } else: return { 'status': 'error', 'message': f'HR API failed: {response.status_code}' }第四步:验证与部署
- 在控制台点击“Test Tool”,输入
{"employee_id": "EMP-123"}。 - 平台会自动启动一个 Sandbox,注入
hr_api_token,执行 Lambda,并返回结果。 - 成功后,该工具即可在任何代理的 YAML 中被引用。
这个流程的精妙之处在于:凭证的生命周期、访问权限、轮换策略,全部由 Anthropic 的 Vault 统一管理。你的 Lambda 函数代码里永远不会出现os.environ.get('HR_API_TOKEN')这样的危险代码。即使攻击者通过某种方式获得了 Sandbox 的 shell 权限,他也无法echo $HR_API_TOKEN,因为这个环境变量根本不存在——凭证是以只读文件的形式挂载的,且路径/run/secrets/是临时的、沙箱专属的。这是生产级安全的基石,也是很多 DIY 方案永远无法企及的深度。
4. 常见问题与排查技巧实录:那些官方文档不会写的坑
4.1 “P50 TTFB 下降 60%”背后的真相:性能优化的双刃剑
官方宣传稿里,“p50 time-to-first-token (TTFB) 下降 roughly 60%” 是个亮眼数据。但实测下来,这个提升并非均匀分布,它高度依赖你的代理设计。我们团队在迁移一个复杂的法律合同审查代理时,遇到了典型的“性能悖论”:
- 场景:代理需依次调用
extract_clauses、check_compliance、generate_summary三个工具,每个工具平均耗时 800ms。 - 旧模式(Context-based):所有步骤的输入/输出都塞进上下文,TTFB 平均 1200ms(模型需要“消化”大量历史)。
- 新模式(Managed Agents):Harness 构造的 prompt 极其精简,TTFB 降至 450ms,符合宣传。
- 但问题来了:总端到端延迟(E2E Latency)反而从 2.4s 升至 3.1s。
原因剖析:
- 网络开销增加:旧模式下,所有工具调用都在同一个 Python 进程内完成,IPC(进程间通信)几乎为零。新模式下,每次
execute()都是一次跨网络的 API 调用(Harness → Sandbox),增加了 50-100ms 的 RTT(往返时延)。 - 序列化/反序列化开销:每次事件写入 Session 数据库,都需要 JSON 序列化;每次
awake()都需要反序列化整个事件流。对于长会话(>100 个事件),这个开销可达 200ms+。 - Sandbox 启动冷启动:首次调用某个工具时,Sandbox 需要拉起容器/函数,耗时 300-500ms。
解决方案(我们的实测有效组合):
- 批处理工具调用:修改代理逻辑,让 Claude 模型一次性输出多个
tool_call指令(如{"tool_calls": [{"name": "a", "input": {}}, {"name": "b", "input": {}}]})。Harness 支持并行执行这些调用,将串行的 3x800ms 优化为 max(800ms, 800ms, 800ms) + 网络开销 ≈ 900ms。 - 启用 Session 缓存:在
session_config中添加cache_enabled: true。Anthropic 会对最近活跃的 Session 事件流做内存缓存,将反序列化开销从 200ms 降至 <10ms。 - 预热 Sandbox:对于高频工具(如
get_user_profile),在代理初始化时,主动调用一次execute(),让 Sandbox 保持 warm 状态。我们用一个简单的 cron job 每 5 分钟触发一次,将冷启动从 400ms 降至 50ms。
注意:不要盲目追求 TTFB。在 B2B 场景中,用户更在意的是“整个任务完成得是否准确、可靠”,而非“第一行字出来得多快”。我们的 KPI 已从 TTFB 切换为
task_completion_rate(任务成功率)和mean_time_to_resolution(平均解决时长),后者更能反映真实业务价值。
4.2 Guardrails 失效的三种隐蔽场景与修复
Guardrails(安全围栏)是 Managed Agents 的王牌功能,但它的失效往往悄无声息。以下是我们在压测中发现的三个高危场景:
场景一:Schema 验证的“宽松陷阱”
- 问题:你为工具
send_email定义了input_schema,要求to字段是邮箱格式。但模型有时会输出{"to": "john@company"}(缺少.com)。旧版 JSON Schema 验证器(基于jsonschema库)默认开启了additionalProperties: true,导致这个非法输入被静默接受,最终邮件发送失败。 - 修复:在 YAML 的
input_schema中,显式添加additionalProperties: false,并为所有字段添加required: [...]。更进一步,在 Sandbox 函数内部,添加二次校验:import re def validate_email(email): pattern = r'^[^\s@]+@[^\s@]+\.[^\s@]+$' return re.match(pattern, email) is not None
场景二:PII 过滤的“上下文盲区”
- 问题:
pii_filterguardrail 能识别John Doe, SSN: 123-45-6789,但它对The user's social security number is 123-45-6789这种嵌套在句子中的 PII 识别率很低。模型输出的最终响应里,依然可能包含未脱敏的敏感信息。 - 修复:启用
pii_filter的deep_scan模式(需在控制台开启)。更重要的是,在system_prompt中加入强约束:“你输出的每一个字符都必须经过 PII 过滤。如果检测到任何 PII,必须用***替换,绝不能省略或改写。” 这利用了模型自身的“自我监督”能力,效果远超纯正则匹配。
场景三:Tool Whitelist 的“反射攻击”
- 问题:你只允许
get_stock_price和get_news两个工具。但模型有时会输出{"tool": "get_stock_price", "input": {"symbol": "exec('rm -rf /')"}}。虽然工具名合法,但恶意输入在 Sandbox 内执行时,可能造成破坏。 - 修复:Guardrails 的
tool_whitelist只校验工具名,不校验输入。因此,必须在 Sandbox 函数内部,对所有输入进行白名单校验。例如,symbol字段只允许字母、数字、点号(.),长度不超过 10 个字符。这是纵深防御的铁律:平台层做粗粒度过滤,应用层做细粒度校验。
4.3 与 AWS Bedrock AgentCore 的共存策略:不是替代,而是互补
很多团队纠结:“既然 AWS AgentCore 已经 GA,我们还要上 Anthropic Managed Agents 吗?” 我们的答案是:两者不是互斥,而是分层协作。我们目前的生产架构是典型的“混合云”:
| 层级 | 技术栈 | 职责 | 为什么选它 |
|---|---|---|---|
| 模型层(Model Layer) | Anthropic Claude 3.5 Sonnet | 所有核心推理、复杂逻辑生成、长文本理解 | Claude 在代码、法律、金融等专业领域,推理准确率显著高于开源模型,且 Anthropic 的 fine-tuning 工具链更成熟。 |
| 运行时层(Runtime Layer) | AWS Bedrock AgentCore | 托管所有工具(Tools)、Sandbox、Session 存储 | 利用 AWS 的全球基础设施、VPC 集成、IAM 权限体系,以及更低的 $0.05/session-hour 成本。避免在 Anthropic 平台上重复建设沙箱和存储。 |
| 编排层(Orchestration Layer) | 自研轻量级 Orchestrator | 接收用户请求 → 调用 AgentCore → 将结果喂给 Claude → 返回最终响应 | 完全掌控数据流向,可插入自定义监控、A/B 测试、灰度发布。 |
具体实现:
- 我们的 Orchestrator 服务(部署在 EKS 上)接收到用户请求。
- 它调用
AWS Bedrock AgentCore的StartSessionAPI,创建一个 Session,并将初始消息传入。 - AgentCore 的 Harness 执行,调用我们预注册在 AWS Lambda 上的工具(如
get_database_data)。 - 工具返回原始数据后,AgentCore 将其作为
tool_call_success事件写入其 Session DB。 - 关键一步:Orchestrator 监听 AgentCore 的 Session 事件流(通过 EventBridge)。当它检测到
tool_call_success事件时,不直接返回,而是将该事件内容 + 用户原始问题,构造一个新的 prompt,发送给 Anthropic 的 Claude API。 - Claude 基于这个精炼的上下文,生成最终的、人性化的、带格式的响应(如 Markdown 表格、图表描述),返回给 Orchestrator。
- Orchestrator 将此响应返回给用户。
这个架构,让我们同时拥有了 AWS 的基础设施可靠性、低成本,以及 Anthropic 的顶级模型能力。它规避了“把所有鸡蛋放在一个篮子里”的风险,也避免了被单一云厂商锁定。这正是 Managed Agents 时代最务实的生存策略:Runtime 是水电煤,谁家便宜好用就用谁;Model 是大脑,谁家最聪明就用谁;而你,是那个懂得如何把它们高效连接起来的建筑师。
5. 价值迁移图谱:当 Runtime 层归零,钱流向哪里?
5.1 历史的回响:从 VMware 到 Kubernetes,Runtime 的宿命
Anthropic 的工程博客里,反复提及“OS 类比”,将 Session、Harness、Sandbox 比作虚拟内存、CPU 调度器、文件系统。这个类比精准,但博客刻意回避了一个同样精准的历史结局:所有成功的基础设施层,最终都会被压缩为近乎免费的公共品。VMware 在 2005 年是企业 IT 的印钞机,ESX 主机授权费动辄数万美元。但 Xen(2003)、KVM(2007)等开源 hypervisor 的崛起,加上 AWS、GCP 将虚拟化作为云服务的默认基座,彻底改变了游戏规则。到 2020 年代,企业采购单上,已经没有“虚拟化软件”这一项预算——它被摊销进了 EC2 实例的小时费里。VMware 并未消失,它依然是一家年营收百亿的巨头,但它的增长引擎,早已从“卖 hypervisor”转向了“卖 vRealize 运维管理”、“卖 Tanzu 容器平台”——也就是运行在虚拟化之上的那一层。
Managed Agents 正站在同样的岔路口。AWS、Google、Microsoft 的 AgentCore、Vertex Agent Builder、Azure AI Foundry,就是今天的 Xen 和 KVM——它们由云厂商免费或极低价提供,目标是把你更多的计算、存储、网络流量,留在它们的云平台上。开源社区的 Daytona、Kubernetes SIG 的 agent-sandbox、ByteDance 的 deer-flow,则是正在加速追赶的“Linux 内核”。它们的目标不是打败云厂商,而是提供一个云中立(cloud-agnostic)的标准,让开发者可以自由选择在 AWS、GCP 或私有云上运行相同的代理。当这个标准成熟,当各家的 runtime API(如execute(name, input))趋于统一,runtime 的差异化就会迅速消失。价格战将不可避免,$0.08/session-hour 的定价,会在一年内被压到 $0.01,甚至成为云账单的“隐含成本”。
提示:这不是悲观预言,而是已被多次验证的产业规律。每一次技术栈的“扁平化”,都伴随着一次巨大的价值上移。当服务器虚拟化 commoditize,价值去了容器编排(Kubernetes);当容器编排 commoditize,价值去了服务网格(Istio)和无服务器(Lambda)。现在,轮到 Agent Runtime 了。
5.2 新的价值高地:Trace Store、Governance、Vertical Marketplaces
当 runtime 层变成“水电煤”,真正的利润和壁垒,将出现在紧邻其上的三个新高地:
高地一:Trace Store(追踪存储)——代理世界的“黑匣子”与“司法证据”
- 为什么重要:当代理能自主调用 API、修改数据库、甚至生成代码,它的每一个决策都可能产生巨大商业或法律后果。你不仅需要知道“它做了什么”,还需要知道“它为什么这么做”,以及“它的决策依据是否合规”。这不再是 debug 需求,而是审计、合规、保险理赔的刚需。
- 玩家与格局:
- Braintrust:用专为 AI 日志设计的 OLAP 数据库 Brainstore,主打高性能聚合分析(如“过去一周,所有涉及‘退款’的代理会话中,有多少比例在调用支付 API 前,检查了用户账户余额?”)。
- Arize:开源 Phoenix 项目(Apache 2.0),用免费的、高质量的开源产品,建立事实标准,再在其上构建商业版的根因分析(RCA)和 A/B 测试平台。
- LangSmith:背靠 LangChain 生态,安装量巨大,但其核心优势是“默认集成”——只要你用 LangChain,LangSmith 就是你的 trace store。它的挑战在于,如何在 Anthropic、AWS、Google 等异构 runtime 环境中,提供一致的 trace 数据模型。
高地二:Governance & Policy(治理与策略)——代理世界的“交通法规”
- 为什么重要:企业采购部门不会问“你的 runtime 多快”,他们会问:“这个代理能访问哪些系统?谁批准了它的访问权限?它的所有操作是否有不可篡改的日志?它能否自动拒绝违反 GDPR 的请求?” 这催生了一个全新的 SaaS 类别:AI Governance Platforms。
- 现状:AWS AgentCore 在 2026 年 3
