Anthropic托管Agent为何拆成三层稳定接口

把Agent虚拟化成session、harness、sandbox三个接口,各自换实现、各自失败,把会过期的补丁隔离在可替换层,只承诺不会过期的部分。

要点

  1. harness里每项设计都隐含“模型现在做不到X”的假设,换模型就过期;例如Sonnet 4.5的上下文焦虑催生的reset在Opus 4.5上只剩成本。
  2. 借鉴操作系统思路,只对接口形状有明确主张:session是只追加的事件日志,harness是调用模型与路由工具调用的循环,sandbox是执行环境。
  3. 第一版单容器把三者塞在一起,容器成pet,挂了会话就丢,故障层次无法定位;harness还默认了工具就在旁边,接客户VPC就成了障碍。
  4. 拆分后容器是cattle,容器挂了当工具调用失败交给模型重试;session日志外置使harness无状态,挂了wake(sessionId)拿回日志接着干。
  5. 安全上把凭证挪出sandbox:Git token在初始化时配进remote,MCP OAuth token存vault由代理代发,避免prompt injection后凭证被放大使用。
  6. session是窗口外可查询的耐久上下文对象,harness负责任意形式上下文工程;权衡是性能收益:p50 TTFT降约60%,p95降超90%。

来源