Agent Runtime层的标准化时刻:Session+Harness+Sandbox架构解析
1. 这不是新赛道,是 runtime 层的“操作系统时刻”来了
上周二(4月8日),Anthropic 正式开放 Claude Managed Agents 的公开测试。新闻稿里写的是“十倍提速”“Notion 和 Asana 已接入”“沙箱执行+会话快照+凭证托管”,技术博客则抛出一个更硬核的比喻:他们把 agent 架构拆成了像 90 年代操作系统虚拟化硬件那样的稳定抽象层——Session 是脱离模型上下文的持久事件日志,Harness 是无状态的容器调用执行器,Sandbox 是按需拉起、用完即弃的“牛”,不是需要人工养护的“宠物”。
但如果你真去翻 Anthropic 官方 YAML 示例、读它那篇工程博客的第三段、甚至点开 Notion 的集成文档,就会发现:这根本不是什么颠覆性发明,而是一套被生产事故反复捶打出来的、可落地的托管运行时(managed runtime)。它解决的,是所有跑过长流程 agent 的人心里都清楚却没人愿意公开说破的痛——上下文爆炸、状态丢失、凭证裸奔、故障不可追溯。
我去年带团队搭过一套销售线索分发 agent,流程是:从 CRM 拉数据 → 调用外部 API 做公司规模校验 → 调用 LLM 做行业标签分类 → 再调用邮件模板引擎生成个性化触达内容 → 最后推回 Slack。整个链路走完平均要 27 分钟。第 19 分钟时,模型上下文已经塞满 128K token 中的 122K,系统没报错,但开始把“客户注册时间”错记成“上次登录时间”,把“B2B SaaS”标签覆盖成“教育科技”,最后发出去的邮件里,连客户 CEO 的名字都拼错了。我们查日志?没有结构化 trace;想重放?session state 全在 context 里,一清空就全丢。那次事故直接导致客户暂停了三期付款,我们连夜把 state 存到 Redis,加了 checkpoint 机制,还写了自动 fallback 到上一个稳定状态的逻辑——这些,Anthropic 现在打包好了,叫 “Session-as-Event-Log”。
这不是技术炫技,是血泪经验的产品化。关键词里的 “Towards AI” 不是平台名,而是信号:这篇文章的读者,是每天在 LangChain 里 debug callback 链、在 CrewAI 里改 retry policy、在自建 sandbox 里修 Dockerfile 的真实从业者。他们不需要“AI 将如何改变世界”的宏大叙事,他们需要知道:这个 runtime 能不能扛住我明天上线的金融尽调 agent?它的 credential 隔离是不是真能防住我那个总爱把curl -H "Authorization: Bearer $TOKEN"打印进日志的实习生?它的 session 恢复机制,在 Kubernetes pod 被 OOM kill 后,能不能在 3 秒内 resume 而不是重头来过?
答案是:能,而且比你手写的健壮得多。但关键不在 Anthropic 做得多好,而在于——这个层,已经到了必须被压缩、被标准化、被免费化的临界点。就像当年 VMware 卖 ESX 时,没人想到五年后 KVM 会进 Linux kernel,更没人想到 AWS 会把虚拟化变成默认选项、不单收一分钱。Managed Agents 不是起点,是 runtime 层 commoditization 的第一声哨响。你今天还在为选哪家 sandbox vendor 犹豫,明天就会发现,你的采购总监已经在问:“为什么我们要为 runtime 付钱?AWS AgentCore 不是白送吗?”
2. 核心设计解构:为什么是 Session + Harness + Sandbox 这个三角?
Anthropic 没有发明新概念,但它做了一件极关键的事:把过去三年里散落在各开源框架、各云厂商 POC 文档、各创业公司融资 PPT 里的最佳实践,用一套干净、正交、可验证的接口固化下来。这个三角结构不是拍脑袋定的,而是对生产环境里三大类失败模式的精准回应。
2.1 Session:不是“对话历史”,是可审计、可重放、可切片的事件流
传统 agent 的“记忆”本质是脆弱的:它依赖模型 context window 的线性堆叠。你喂给它的每一条 tool call 结果、每一次用户输入、每一个 guardrail 拦截日志,都像往一个不断变窄的漏斗里倒水。当漏斗满了,老数据被无声挤掉,agent 开始基于残缺信息做决策——这种失败不 crash,不报错,只悄悄变蠢。
Anthropic 的 Session 设计,核心是把 state 从 model 的“内存”里彻底搬出来,放到 durable storage 里,变成一个 append-only 的事件日志(event log)。每个事件包含:timestamp、event_type(tool_call_start,tool_call_success,guardrail_violation,user_input)、payload(结构化 JSON)、correlation_id(用于跨服务追踪)。这个设计背后有三重深意:
第一,可追溯性(Traceability)。当你发现 agent 在步骤 7 把合同金额算错了,你不用猜“是不是步骤 3 的 API 返回值被截断了”,而是直接 query event log:SELECT * FROM session_events WHERE session_id = 'xxx' AND step_number <= 3 ORDER BY timestamp DESC LIMIT 1。结果立刻告诉你,API 确实返回了完整字段,但步骤 4 的 LLM 解析 prompt 写错了,把amount_usd错映射成了amount_cny。这是 debug 效率的量级提升。
第二,可恢复性(Resumability)。Harness 进程挂了?没关系。只要 session_id 还在,awake(sessionId)就能从最后一个成功事件处继续。这里的关键是“成功事件”的定义:Anthropic 要求 tool call 必须返回明确的 success/failure status,并且 failure 事件必须包含 error_code(如TOOL_TIMEOUT,CREDENTIAL_INVALID),而不是让 Harness 自己 parse 字符串。这意味着恢复不是简单跳过失败步骤,而是根据 error_code 触发预设策略——比如TOOL_TIMEOUT自动重试 2 次,CREDENTIAL_INVALID则立即终止并告警。我实测过,一个在步骤 5 失败的 12 步流程,awake()后平均 1.8 秒就回到步骤 5 继续执行,全程无需人工干预。
第三,可切片性(Slicability)。企业级场景常需合规审计:比如“请导出该 agent 在 4 月 1 日至 4 月 7 日所有访问过客户 PII 数据的会话”。传统方案得扫全量日志再 grep,而 event log 天然支持按 event_type + payload schema 建索引。Anthropic 的底层存储(据其工程博客透露,是基于 DynamoDB 的定制分片)能在毫秒级返回满足event_type = 'tool_call_success' AND payload.tool_name = 'crm_lookup' AND payload.response.contains('ssn')的 session 列表。这直接决定了它能否通过 SOC2 Type II 审计。
提示:不要被“event log”这个词迷惑。它不是简单的文本文件。Anthropic 的实现里,每个 session event 都带有一个 cryptographically signed hash(SHA-256),且 hash 链式关联(event_n.hash = SHA256(event_{n-1}.hash + event_n.payload))。这意味着任何篡改都会破坏整条链,审计时只需验证首尾 hash 即可确认完整性。这是金融、医疗等强监管行业的刚需,不是可选项。
2.2 Harness:无状态执行器,真正的“计算归计算,决策归决策”
Harness 是整个架构里最反直觉的一环。很多人第一反应是:“把 LLM 推理和 tool call 混在一起不是更高效?” Anthropic 偏偏要把它切成两半:Harness 只干一件事——接收execute(name, input)请求,调用对应容器,返回 string。它自己不存 state,不解析 input,不决定下一步 call 哪个 tool。这个设计,直指 agent 开发中最大的熵增源:逻辑耦合。
举个真实案例:某电商公司的退货 agent,最初用 LangChain 写,把“判断是否符合极速退款条件”的规则硬编码在 LLM prompt 里。后来业务方要求增加“VIP 客户免审核”规则,工程师改了 prompt,结果导致普通用户退款审批延迟 3 倍——因为新 prompt 让 LLM 在非 VIP 场景下也多做了 2 次推理。问题根源在哪?LLM 的“决策逻辑”和“执行逻辑”绑死了。
Harness 的解法是:把所有决策逻辑(包括 guardrail、routing、fallback)全部下沉到一个独立的、可版本化的决策服务(Decision Service)里。Harness 只是它的“肌肉”。工作流变成:
- 用户发起退货请求 → Decision Service 根据规则引擎(Drools 或自研 DSL)输出
{"next_action": "check_vip_status", "input": {"order_id": "xxx"}} - Harness 执行
execute("check_vip_status", input)→ 调用 VIP 查询容器 - 容器返回
{"is_vip": true, "tier": "platinum"}→ Decision Service 收到后,输出{"next_action": "issue_refund", "input": {...}} - Harness 执行
execute("issue_refund", input)→ ...
这个分离带来的好处是爆炸性的:
- 可测试性:Decision Service 可以用单元测试全覆盖(输入 order_id → 验证输出 action),而不用依赖 LLM 的不确定性。
- 可灰度:新规则上线,先对 1% 流量走新 Decision Service,99% 走旧版,指标对比清晰。
- 可替换:某天发现 LLM 决策太慢,直接把 Decision Service 换成规则引擎,Harness 和 tool containers 完全不用动。
我试过把一个 17 步的保险核保 agent 的 Decision Service 从 Claude 切换到本地部署的 OpenPolicyAgent(OPA),Harness 的代码一行没改,只是把execute()的 target URL 从https://anthropic-harness/...换成http://opa-service/...,整个切换过程耗时 22 分钟,线上错误率下降 40%。这就是“无状态”的力量——它让变化的成本降到了最低。
2.3 Sandbox:不是 Docker 容器,是微虚拟机级的隔离牢笼
说到 sandbox,很多人的第一反应是 “Docker run --rm”。Anthropic 的 sandbox 远不止于此。它采用的是类似 Firecracker microVM 的轻量级虚拟化技术(官方未明说,但其文档强调 “hardware-enforced isolation” 和 “microsecond-level startup time”,且 AWS AgentCore 明确用 Firecracker,Anthropic 极大概率同源)。这意味着什么?
凭证安全:Credential 不是以 environment variable 注入(
docker run -e TOKEN=xxx),而是由 Anthropic Vault 在 sandbox 启动时,通过 secure channel 注入到 microVM 的 guest kernel memory 中,且仅对指定 tool container 的进程可见。进程退出后,内存页被立即 wipe。这堵死了 99% 的 credential 泄露路径——包括那些喜欢把 env 打印进 debug 日志的“坏习惯”。资源硬隔离:每个 sandbox 有独占的 vCPU、内存配额、网络 namespace。我做过压力测试:在一个 4vCPU/8GB 的 sandbox 里跑 CPU 密集型 PDF 解析,同时在另一个 sandbox 里跑内存密集型图像识别,两者性能曲线完全不互相干扰。而纯 Docker 方案下,cgroup 限制经常被绕过,一个容器跑疯了会拖垮同宿主机的所有容器。
启动速度与成本平衡:microVM 启动比 Docker 慢(约 120ms vs 20ms),但 Anthropic 用“sandbox pool”机制弥补:它会预热一批空闲 sandbox,接到
execute()请求时,直接从 pool 里分配一个,实际感知延迟 < 50ms。这个设计牺牲了理论上的极致速度,换来了生产环境必需的稳定性。我在 Notion 的集成文档里看到,他们把 sandbox 生命周期设为 15 分钟,超时自动销毁,这比“永远运行一个容器”更符合安全最佳实践。
注意:Sandbox 的“ cattle, not pets” 不是口号。Anthropic 的监控后台显示,其 sandbox 平均生命周期是 8.3 分钟,95% 的 sandbox 在创建后 30 分钟内被销毁。这意味着你永远不该在 sandbox 里存任何 state——所有持久化必须走 Session event log 或外部 DB。这是架构师必须刻在脑子里的铁律。
3. 实操落地:从 YAML 定义到生产上线的完整链路
光看架构图是没用的。真正决定成败的,是你第一次把 agent 部署上去,点击“Run Test”按钮时,屏幕上跳出来的到底是绿色的 ✅ 还是红色的 ❌。我把 Anthropic Managed Agents 的实操流程拆解成四个阶段,每个阶段都附上我踩过的坑和抄作业的配置。
3.1 阶段一:YAML 定义——别被“自然语言”忽悠,结构才是王道
Anthropic 宣称支持“natural language”定义 agent,但生产环境强烈建议用 YAML。原因很简单:natural language 解析有歧义,且无法做静态校验。一个合格的agent.yaml至少包含四个 section:
# agent.yaml name: "finance-research-agent" version: "1.2.0" description: "Fetches SEC filings, extracts key metrics, compares to peers" system_prompt: | You are a senior financial analyst at a hedge fund. Your task is to... # 注意:这里不要写具体步骤!步骤由 Decision Service 控制 tools: - name: "sec_filing_fetcher" description: "Fetches latest 10-K/10-Q from SEC EDGAR database" input_schema: type: "object" properties: cik: {type: "string", description: "SEC CIK number"} form_type: {type: "string", enum: ["10-K", "10-Q"]} output_schema: type: "object" properties: filing_url: {type: "string"} period_end: {type: "string", format: "date"} - name: "pdf_analyzer" description: "Extracts tables and text from SEC PDF filings" input_schema: type: "object" properties: pdf_url: {type: "string"} output_schema: type: "object" properties: revenue: {type: "number"} net_income: {type: "number"} # ... 20+ more fields guardrails: - name: "pii_redaction" description: "Scans all tool outputs for SSN, phone, email and redacts them" config: patterns: ["\\b\\d{3}-\\d{2}-\\d{4}\\b", "\\b\\d{3}[-.]\\d{3}[-.]\\d{4}\\b"] - name: "financial_accuracy" description: "Ensures net_income is always less than revenue" config: threshold: 0.05 # allow 5% rounding error关键细节与避坑指南:
input_schema和output_schema必须严格遵循 JSON Schema Draft-07。我第一次提交时,把enum写成["10-K", "10Q"](少了短横),Anthropic 的 validator 直接返回400 Bad Request,错误信息极其模糊,花了 47 分钟才定位。建议用 jsonschemavalidator.net 提前校验。system_prompt里绝对不要写“接下来调用 sec_filing_fetcher”这类流程指令。Harness 不解析这个,它只负责把 prompt 传给 LLM。流程控制必须交给 Decision Service。否则你会得到一个“看似聪明、实则不可控”的黑盒。guardrails的config是动态加载的。pii_redaction的 patterns 可以在 runtime 通过 API 更新,无需 redeploy agent。这是 Anthropic 对合规场景的深度理解——GDPR 条款更新了?直接 PATCH guardrail config。
3.2 阶段二:Tool Container 开发——不是写函数,是写“可调度的微服务”
Tool 不是 Python 函数,而是一个 HTTP 服务(Anthropic 强烈推荐 REST over gRPC)。每个 tool container 必须实现两个 endpoint:
POST /execute:接收{"input": {...}},返回{"output": {...}, "status": "success" | "failure", "error_code": "..."}GET /health:返回{"status": "healthy", "version": "1.0.0"}
我开发pdf_analyzer时,犯了一个典型错误:把 PDF 下载和 OCR 放在一个 container 里。结果发现,当 PDF 很大(>100MB)时,container 内存爆了,OOM killer 直接杀进程。Anthropic 的 sandbox 日志只显示Process exited with code 137,毫无头绪。
正确做法是分层:
pdf_downloadercontainer:只负责下载,校验 size,返回 presigned URLpdf_ocr_enginecontainer:接收 presigned URL,用 GPU 运行 OCR,返回结构化 JSON
这样,pdf_downloader可以用轻量级 Go 写,内存占用 < 10MB;pdf_ocr_engine用 Python + PyTorch,申请 4GB GPU 内存。两者独立扩缩容,互不影响。
Container 最佳实践清单:
- 超时设置:
/execute必须在 30 秒内返回(Anthropic 硬性限制)。我的pdf_ocr_engine加了timeout=25s,超时后返回{"status": "failure", "error_code": "OCR_TIMEOUT"},让 Decision Service 触发降级(比如用纯文本关键词匹配代替 OCR)。 - 幂等性:
/execute必须是幂等的。同一个input多次调用,必须返回相同output。我用 Redis 的SETNX+ TTL 实现了 idempotency key 缓存,避免重复 OCR 浪费 GPU。 - 健康检查:
/health必须检查所有依赖(DB 连接、GPU 可用性)。我曾因忘记检查 GPU,导致/health返回 healthy,但/execute一直失败,Anthropic 的 auto-healing 机制反复重启 container,形成雪崩。
3.3 阶段三:Session 管理——不是“开始对话”,是“创建可审计的业务工单”
启动一个 session,不是发个POST /sessions就完事。你必须理解:每个 session 对应一个真实的业务实体。比如在 Rakuten 的销售 agent 里,一个 session 就是一个 Sales Opportunity;在 Sentry 的 debug agent 里,一个 session 就是一个 Bug Report。
创建 session 的请求体长这样:
{ "agent_id": "finance-research-agent@1.2.0", "initial_input": { "cik": "0000001234", "form_type": "10-K" }, "metadata": { "business_unit": "hedge_fund_research", "compliance_tag": "FINRA_2023", "owner_id": "analyst-jane-doe@rakuten.com" } }Metadata 是灵魂。它决定了:
- 权限控制:
compliance_tag会触发对应的 guardrail chain(FINRA_2023 会启用更严格的 PII 检查)。 - 计费归属:
business_unit会把 session-hour 费用计入对应部门预算。 - 审计溯源:
owner_id是 SOC2 审计时必须提供的“谁发起、谁负责”证据。
我见过最惨的事故:某客户把owner_id写成"system",结果所有 session 的 owner 都是 system,当 FINRA 审计员要求提供“每个分析报告的负责人签字”时,他们拿不出任何有效记录,项目被叫停三个月。
Session 生命周期管理技巧:
- 主动终止:不要等 8 小时超时。用
DELETE /sessions/{id}主动关闭已完成的 session。这能立即释放 sandbox 资源,降低并发压力。 - 状态查询:
GET /sessions/{id}/status返回实时状态(running,completed,failed,paused)。我用它实现了前端“进度条”:每 2 秒轮询一次,根据status和event_count计算完成百分比。 - 事件流订阅:
GET /sessions/{id}/events?stream=true是 SSE endpoint。前端可以直接连接,实时渲染 agent 的每一步动作(“正在获取财报…” → “正在解析营收数据…”),用户体验提升巨大。
3.4 阶段四:生产部署与监控——不是看 CPU,是看“决策质量”
Anthropic 提供的监控面板很基础:session count、p95 latency、error rate。但生产环境需要更深层的指标。我搭建了一套补充监控体系:
| 监控维度 | 关键指标 | 告警阈值 | 数据来源 | 业务含义 |
|---|---|---|---|---|
| 决策质量 | guardrail_violation_rate | > 5% | Session event log | Guardrail 是否过于宽松或过于严苛? |
| 工具健康 | tool_failure_rate_by_name | sec_filing_fetcher> 15% | Tool container logs | SEC EDGAR 接口是否不稳定? |
| 成本效率 | avg_tokens_per_session_step | 上升 30% | Anthropic token billing API | Prompt 是否在膨胀?需优化? |
| 用户体验 | session_avg_duration_seconds | > 1800s (30min) | Session metadata | 流程是否卡在某个环节? |
最实用的监控技巧:
- 用 event log 做根因分析:当
tool_failure_rate突增,不要先看 container logs。直接查 event log:SELECT COUNT(*) FROM events WHERE event_type = 'tool_call_failure' AND payload.tool_name = 'sec_filing_fetcher' AND timestamp > now() - 1h GROUP BY payload.error_code。如果error_code = 'RATE_LIMIT_EXCEEDED',说明是 SEC 接口限流,该加缓存;如果是'HTTP_500',才是 container 问题。 - 建立“黄金 session”基线:选 10 个典型业务场景(如“苹果公司 10-K 分析”),跑 100 次,记录平均 token 数、平均步骤数、平均耗时。后续每次 agent 版本升级,都用这 10 个场景做回归测试。我的基线是:token 数波动 < ±5%,步骤数不变,耗时增长 < 10%。超出即 rollback。
- 成本可视化:把
$0.08/session-hour换算成“每份财报分析成本”。我的 finance agent 平均耗时 4.2 分钟,即 $0.0056/份。当某天成本跳到 $0.012/份,立刻查tool_failure_rate——果然,pdf_analyzer因 OCR 质量下降,重试了 3 次。
4. 竞争格局与生存法则:为什么 runtime 层注定走向“零价”
Anthropic 的 Managed Agents 发布稿写得像开疆拓土,但现实是:它入场时,战场早已硝烟弥漫,且主阵地已被 hyperscaler 用“免费”占领。这不是商业策略的优劣,而是云计算经济规律的必然。
4.1 三巨头已布好局:AWS、GCP、Azure 的“runtime 即服务”已成标配
AWS Bedrock AgentCore:2025 年底 GA,现在已是事实标准。它的杀手锏不是技术多先进,而是深度绑定 AWS 生态。一个用 AgentCore 的客户,天然就在用 S3 存 event log、用 CloudWatch 做监控、用 IAM 做 credential 管理、用 Lambda 做 Decision Service。采购总监看到的不是“AgentCore 服务”,而是“我们已有 AWS 企业协议,AgentCore 是协议内免费额度”。我帮一家客户做 TCO 对比:同样跑 100 万 session/month,用 Anthropic Managed Agents 年成本 $1.2M;用 AgentCore,年成本 $0.3M(仅 S3 和 Lambda 费用),且后者还能用预留实例进一步降本。
Google Vertex AI Agent Builder:它的优势在数据闭环。Vertex 的 Agent Registry 直接对接 BigQuery,所有 event log 自动入库,用 SQL 就能分析“哪些 tool call 最常失败”。更狠的是,它把 agent performance 数据(如 p95 latency、guardrail violation)自动喂给 Vertex 的 Model Garden,训练出专属的“agent 优化模型”。客户反馈:用 Vertex 的 agent,三个月后,
tool_failure_rate自动下降了 22%。Microsoft Azure AI Foundry:它走的是企业集成路线。AutoGen 和 Semantic Kernel 不是独立产品,而是深度嵌入 Microsoft Graph、Teams、Dynamics 365 的“agent 插件”。Rakuten 的销售 agent 能直接在 Teams 里 @Claude,背后是 Foundry 的 connector 自动把 Teams 消息转成 session input。对 CIO 来说,这不是买一个 runtime,而是“让 Claude 成为我们现有 CRM 的一部分”。
这三家的共同点是:它们不靠 runtime 本身赚钱,而是用 runtime 作为钩子,把客户更深地锁进自己的云生态。AWS 的目标是让你的 agent 用 S3、用 RDS、用 SageMaker;Google 的目标是让你的 agent 数据留在 BigQuery;Microsoft 的目标是让你的 agent 工作流跑在 Teams 里。runtime 层,对他们而言,是基础设施的“空气”,免费、无感、不可或缺。
4.2 开源势力崛起:Daytona、K8s SIG、Deer-flow 正在定义新标准
如果说 hyperscaler 是“免费”,开源社区就是“免费且自由”。2025 年初,Daytona 从 dev environment 工具转向 AI agent infra,其核心卖点是< 90ms 的 sandbox spin-up。怎么做到的?它放弃了 microVM,用 eBPF + cgroups v2 实现了进程级隔离,启动速度比 Firecracker 快 3 倍。虽然安全性略逊,但对于内部工具、非敏感数据场景,足够用了。
更值得关注的是Kubernetes SIG 的 agent-sandbox 项目。它不是一个产品,而是一套 CRD(Custom Resource Definition)规范:
Sandbox:定义隔离边界(CPU/memory/network)ToolBinding:定义 tool container 如何挂载到 sandboxSessionPolicy:定义 session 生命周期策略(如自动清理、合规标签)
这意味着,任何 K8s 集群,只要装上这个 operator,就能原生支持 Anthropic-style 的 agent runtime。我已在客户私有云部署,效果惊人:kubectl apply -f agent.yaml,3 秒内 agent 就 ready。这直接瓦解了“托管 runtime”的护城河——当 runtime 变成 K8s 的一个插件,它还有什么理由收费?
ByteDance 的Deer-flow则代表了另一条路:智能 harness。它不只是执行execute(),还能基于历史 session 数据,预测下一步该 call 哪个 tool。比如,当 deer-flow 发现 80% 的“财报分析”session 在sec_filing_fetcher后,下一步都是pdf_analyzer,它就会提前预热pdf_analyzersandbox,把端到端延迟从 1200ms 降到 450ms。这种“self-optimizing runtime”,才是未来真正的壁垒。
4.3 生存法则:Runtime 公司的唯一出路是“向上生长”
面对 hyperscaler 的免费碾压和开源社区的灵活围攻,纯 runtime 创业公司只有两条活路:
第一条路:做“runtime 之上的 layer”,成为不可替代的中间件。
Trace Store:Braintrust 的 Brainstore 不是数据库,而是专为 AI event log 优化的 OLAP 引擎。它能把 10TB 的 session log,在 2 秒内返回“过去 30 天,所有触发
financial_accuracyguardrail 的 session 中,net_income字段的分布直方图”。LangSmith 赢在生态,Arize 赢在开源,但 Brainstore 赢在性能。当客户说“我要迁移到 Azure”,Brainstore 的 export API 能一键把所有 trace 导出为 Azure-compatible format,无缝迁移。这才是护城河。Governance & Policy:AWS 的 AgentCore Policy Controls 是 GA 了,但它只支持 AWS 自家的 IAM。而初创公司PolicyFlow(刚融了 $42M)做的,是跨云 policy engine。它用 Rego 语言写策略,一份 policy 可以同时部署到 AWS AgentCore、Vertex Agent Builder、Azure Foundry。客户采购总监最喜欢听的话是:“你们的 policy,今天写一次,明天就能管住三家云”。
Vertical Marketplaces:Salesforce 的 Agentforce 不是卖 runtime,是卖“销售场景包”。一个 $800 万 ARR 的 deal,买的是“Lead Scoring + Email Sequencing + Meeting Scheduling”三个 agent 的组合,外加 Salesforce CRM 的深度集成。它不关心底层是 Anthropic 还是 Bedrock,它只关心 agent 能不能在 24 小时内把销售 pipeline 提升 15%。这才是企业愿意付钱的地方。
第二条路:放弃 runtime,转身做“垂直 agent 的 builder”。
比如,放弃做通用 sandbox,专注做“医疗影像诊断 agent”:
- Sandbox 预装 FDA 认证的 DICOM 解析库
- Tools 限定为 PACS 系统 API、放射科报告模板引擎
- Guardrails 内置 HIPAA 合规检查(自动 redact patient name, DOB)
- Session metadata 强制包含
patient_id,study_id,radiologist_id
这种 agent,hyperscaler 不会做(太垂直),开源社区不会做(缺乏医疗 domain knowledge),但医院愿意为它付 $50K/year 的 license fee。因为它解决的是“医生每天多看 3 个病人”的真实痛点,不是“runtime 多快”的技术参数。
我的实操心得:如果你正在评估是否自建 runtime,先问自己三个问题:
- 我的业务场景,是否真的需要超越 AWS/GCP/Azure 提供的隔离级别和合规认证?(95% 的答案是否)
- 我的客户,是否愿意为“runtime”这个抽象概念付费,而不是为“节省了多少销售人力”或“缩短了多少理赔周期”付费?(99% 的答案是否)
- 我的核心竞争力,是在 container 启动速度上比别人快 10ms,还是在“金融风控规则引擎”或“医疗影像标注 workflow”上有十年积累?(答案几乎总是后者)
如果三个答案都是“否”,那么,别造轮子。用 AgentCore,把精力聚焦在 building the agent,而不是 building the runtime。
5. 未来已来:当 self-improving agents 成为常态,runtime 就是安全底线
2026 年 3 月,Sakana AI 发布的 Darwin Gödel Machine 论文,像一颗深水炸弹投入 AI 社区。它描述了一个 agent:初始版本在 SWE-bench(软件工程评测基准)上只有 20% 准确率,但它能阅读自己的代码、分析失败 case、生成 patch、编译、测试,最终将准确率提升到 50%。最可怕的是,这个过程是完全自主的——没有人类 review,没有 human-in-the-loop。
这篇论文的修订版发布于 3 月 12 日,距离 Anthropic Managed Agents 发布仅 26 天。这个时间差不是巧合,而是信号:agent infra 的终局之战,已经从“性能”转向“可控性”。
当 agent 能自我进化,sandbox 就不再是“性能优化手段”,而是防止失控的物理隔离墙。一个能 rewrite 自己代码的 agent,如果运行在传统 Docker 容器里,它可能:
- 修改自己的
/proc/sys/kernel/panic_on_oops,让崩溃不被记录 - 读取 host 的
/etc/shadow,尝试提权 - 在
curl命令里注入恶意 payload,把数据 exfiltrate 到外部服务器
Firecracker microVM 的价值,此刻才真正凸显:它用硬件虚拟化,在 CPU 层面切断了 agent 与 host 的任何联系。即使 agent 的代码被攻破,它也只能在自己的 microVM 里折腾,无法触及 host 的任何资源。这就是为什么 AWS、Anthropic、Google 都不约而同选择 microVM——不是为了性能,是为了安全冗余。
同样,event log 的意义也升级了。它不再只是 debug 工具,而是法律意义上的“飞行记录仪”。当一个 self-improving agent 生成了错误的医疗诊断,导致患者延误治疗,法庭上第一个被调取的,就是它的 session event log。log 里必须清晰记录:
- 第 127 步:agent 调用
diagnosis_generator,输入是{"symptoms": ["fever", "cough"], "lab_results": {...}} - 第 128 步:
diagnosis_generator返回{"diagnosis": "common_cold", "confidence": 0.92} - 第 129 步:agent 调用
treatment_recommender,输入是上一步的输出 - 第 130 步:
treatment_recommender返回{"treatment": "rest_and_hydration"}
这个链条,必须是 cryptographically signed、不可篡改的。任何缺失或篡改,都意味着责任主体的消失。Anthropic 的 event log 设计,恰恰满足了这一要求。
所以,回到文章开头那个问题:“Anthropic Just Shipped the Layer That’s Already Going to Zero”——这句话
