Anthropic 最近发了一篇工程博客,讲他们怎么设计 Managed Agents 这套托管代理服务的。读完之后我觉得,这篇文章表面上在讲技术架构,底层其实在回答一个很古老的问题:怎么设计一个系统,让它能承载那些今天还不存在的程序?
他们一开始把所有东西塞进一个容器里:Claude 的推理循环、代码执行沙箱、会话日志,全部挤在一起。好处是简单,坏处是这个容器变成了一只“宠物”,你得小心翼翼地伺候它,坏了就全完了。调试的时候更头疼,因为你根本分不清是推理环节出了问题,还是网络丢包了,还是容器本身挂了。
所以他们做了一个关键决策:把“大脑”和“双手”拆开。大脑就是 Claude 和它的推理循环,双手就是执行代码的沙箱和各种工具。两者之间通过一个极简的接口通信:execute(name, input) → string。名字和输入丢进去,字符串吐出来。沙箱可以是容器、可以是手机、甚至可以是一个宝可梦模拟器,大脑根本不关心。
会话日志也被单独拎了出来,变成一个独立的持久化存储。这意味着大脑崩了可以重启,从日志里恢复到上次的状态继续干活。容器挂了也无所谓,重新拉一个就行。所有组件都变成了“牲畜”,随时可以替换,不用再当宠物养。
这个架构带来了几个很实际的好处。首先是性能,p50 的首 token 延迟降了大约 60%,p95 降了超过 90%,因为不需要每次都等容器启动完才能开始推理。其次是安全,代码在沙箱里跑,凭证存在外面的保险库里,Claude 生成的代码永远碰不到真正的密钥。再就是灵活性,企业客户想让 Claude 连接自己的私有云,以前得做网络对等互联,现在大脑在外面跑,直接连过去就行。
还有一个很深的洞察:harness(驾驭系统)里编码的都是对模型能力边界的假设,但这些假设会随着模型进步而过时。比如 Sonnet 4.5 在上下文快用完的时候会提前收工,他们就在 harness 里加了上下文重置。结果换到 Opus 4.5,这个问题自己消失了,之前的修复反而变成了累赘。所以他们的设计哲学是:对接口有主见,对具体实现不做假设。接口稳定,实现随时可以换。
最后他们把这套东西叫做“元驾驭系统”(meta-harness)。它不预设 Claude 未来需要什么样的具体 harness,只保证大脑能操作状态、执行计算、扩展到多个大脑和多双手。就像操作系统用 read() 这个抽象屏蔽了底层硬件的差异一样,Managed Agents 用一组通用接口屏蔽了代理架构的差异,让系统能跟着模型的智能一起演进。
原文地址:www.anthropic.com/engineering/managed-agents
#科技先锋官##How I AI#
