Managed Agents 博客解读
April 19, 2026
博客链接:https://www.anthropic.com/engineering/managed-agents
1、为什么要把脑和手解耦?
这样每个部分的实现都可以被替换,而不影响其他部分。也就是博客副标题 Decoupling the brain from the hands(把脑和手解耦)的具体含义
但"可替换"只是解耦带来的好处之一。原文实际上铺了四个痛点,共同构成了"必须解耦"的完整动机链:
-
可替换性:模型在进步,框架会过时。Sonnet 4.5 上需要的"上下文焦虑"补丁,到了 Opus 4.5 就成了多余代码。框架编码的是"模型做不到什么"的假设,假设会过期,所以框架必须能被换掉而不牵一发动全身
-
可调试性:耦合架构下,harness bug、WebSocket 丢包、容器宕机,三种故障在外部表现完全一样——都是"会话卡住了"。工程师唯一的办法是 SSH 进容器,但容器里有用户数据,动不了。解耦后,每个组件的故障边界清晰,可以独立观测和定位
-
安全隔离:耦合时,Claude 生成的不受信任的代码和敏感凭证在同一个容器里。一次提示注入只要说服 Claude 读一下环境变量,攻击者就拿到了 token,可以创建新会话、提权、横向移动。解耦后,凭证物理上不可达(详见下面第 3 点)
-
基础设施灵活性:耦合架构默认假设"Claude 操作的资源和它在同一个容器里"。客户想让 Claude 操作自己 VPC 里的资源时,要么做网络对等连接,要么在自己环境跑我们的 harness,两种都很重。解耦后,sandbox 在哪里运行与 harness 无关,连接任意基础设施变得自然
一句话总结:解耦不是为了"架构好看",而是因为耦合架构在可维护性、可调试性、安全性、可扩展性四个方向上同时碰壁了

图1:大脑与手解耦示意图 - 展示耦合架构的问题与解耦架构的优势
2、博客中,Anthropic 具体是怎么解耦的?
它把 agent 拆成三个独立抽象:
- 1、Session(历史记忆外化):一份 append-only 的事件流(记录一切发生过的事),持久化在外部,不依赖任何容器的生死
- 2、Harness(脑):无状态的循环,崩了就用
wake(sessionId)从事件流里恢复 - 3、Sandbox(手):纯粹的执行环境,用完即弃

图2:Managed Agents三层架构图 - Session、Harness、Sandbox及其接口协议
三者之间的接口协议:
- Harness → Sandbox:
execute(name, input) → string(和调用任何工具一样) - Harness → Session:
getSession(id)/getEvents()/emitEvent(id, event) - Sandbox 挂了:harness 捕获为工具调用错误,交给 Claude 决定是否重试,新容器用
provision({resources})重建 - Harness 挂了:新 harness 用
wake(sessionId)启动,从 session 里恢复到最后一个事件继续
关键设计原则:三个组件中任何一个崩溃,都不需要"抢救",只需要"重建"。这就是博客引用的"宠物 vs 牛群"类比——宠物死了你得哭,牛死了你再拉一头就行
其中 session 的定位最有意思。博文里有一句话:
The session is not Claude's context window.

图3:运行循环与Session机制图 - 展示渐进式披露记忆和外部存储机制
也就是说,session 是一个独立于大模型上下文窗口的、可查询的外部状态对象。harness 通过 getEvents() 从 session 中按需拉取事件切片,做变换后再注入 Claude 的上下文。上下文窗口只放"此刻需要的",完整历史始终留在外面。
具体怎么拉取事件切片,怎么变换,博客并未披露这块的细节
这解决了长程任务最头疼的矛盾——上下文有限但任务无限。传统做法是摘要、裁剪、压缩,但这些操作都不可逆(有损压缩),你砍掉的 token 未来可能恰恰是关键的。Managed Agents 的策略是:别急着丢,先全量存,用的时候再选择性地拿。
其实还是在做渐进式披露,不过处理对象是记忆;作为类比的,skill 是提示词的渐进式披露,cli 是工具的渐进式披露,getEvents() 是历史记忆的渐进式披露
更深一层:这三者指向同一个根本矛盾——上下文窗口有限 vs 可用信息无限,只是作用在不同信息类型上。Skill 解决"指令太多放不下",CLI 解决"工具太多放不下",getEvents() 解决"历史太长放不下"。统一的原则是:凡是可以延迟绑定的,就不要提前绑定到上下文窗口里
**有限与无限**
窗口一寸,天地无涯。
指令千行,只携当下;
工具万柄,临阵再拿;
记忆长河,随渴掬沙。
凡可晚绑,莫要早押。
用途场景:用于长时间跨度(长程)的智能体任务的托管服务——围绕一组稳定的接口构建,使其在底层框架变化时依然保持不变
3、安全边界:不信任模型的"不够聪明"
耦合架构的安全模型有一个隐含假设:Claude 不够聪明到能利用自己运行环境中的凭证。但这本身就是一个会过时的假设——和文章开篇"框架编码会过时的假设"形成呼应。
"限制令牌权限范围"看起来是在做安全,实际上是在赌模型不够聪明。模型越强,这个赌注越危险
Anthropic 的结构性修复是:让凭证物理上不可达,而不是逻辑上不可用。具体两种模式:
-
凭证与资源捆绑(Git 场景):在 sandbox 初始化时,用仓库的 access token 克隆 repo 并配置到本地 git remote。之后 sandbox 内的
git push / pull正常工作,但 Claude 永远接触不到 token 本身——token 只在初始化阶段存在,不进入运行时环境 -
凭证存保险库 + 代理转发(MCP / OAuth 场景):OAuth token 存在 sandbox 外部的安全保险库里。Claude 调用 MCP 工具时,请求走专用代理(proxy),代理拿着与 session 关联的标识去保险库取真实凭证,再代为调用外部服务。harness 和 sandbox 全程不感知任何凭证
这是零信任架构在 AI agent 领域的应用:不假设 agent 是善意的,不假设 agent 不够聪明,只保证架构上凭证不可触达

图4:安全凭证隔离示意图 - 展示零信任架构下的两种凭证隔离模式
4、多脑多手:解耦打开的新能力
解耦不只是修了旧架构的痛点,还打开了两个新的扩展维度:
多脑(Many brains):harness 是无状态的,扩展到多个 harness 只是启动多个进程。而且因为 sandbox 是按需创建的(通过工具调用 execute),不需要 sandbox 的会话根本不必等容器启动。推理在编排层拉取 session 事件后就可以立即开始。
这带来了硬数据上的收益:p50 TTFT(首次令牌时间)下降约 60%,p95 下降超过 90%。之前大量延迟来自不必要的容器启动,而非推理本身——"过度预配置"的经典问题
多手(Many hands):每个 harness 可以连接多个 sandbox。因为每只"手"对 harness 来说都只是 execute(name, input) → string,harness 不关心它是容器、手机还是宝可梦模拟器。Claude 需要推理"把这个工作发到哪个执行环境"——这是比单 shell 操作更难的认知任务,早期模型做不到,现在可以了。

图5:多脑多手分布式架构图 - 展示解耦带来的扩展能力和协作潜力
更有意思的是:因为手不与任何脑耦合,脑之间可以互相传递手。这意味着多个 agent 可以协作,一个 agent 启动的 sandbox 可以交给另一个 agent 继续操作。
这描绘的是一个分布式 agent 集群的雏形:多个大脑并行推理,共享和传递执行环境,各自可独立扩缩容
5、操作系统类比:Anthropic 的真正野心
博客引用了 Unix 设计哲学——为"尚未被构想出的程序"设计系统。read() 不关心底层是 1970 年代的磁盘包还是现代 SSD,上层抽象稳定,下层实现自由更替。
Managed Agents 的 execute(name, input) → string 就是这一代的 read()。Anthropic 把它叫做 meta-harness(元框架):不是一个具体的 harness,而是一个能容纳所有 harness 的系统。Claude Code 是一种 harness,针对特定任务优化的 agent 是另一种 harness,未来还会有更多——Managed Agents 都能承载。

图6:操作系统类比与元框架图 - 展示Anthropic作为智能体时代操作系统的战略野心
这揭示了 Anthropic 的战略定位:不只是做模型,而是做智能体时代的"操作系统"。谁控制了 agent 运行的底座,谁就控制了 agent 经济的入口
总结:一句话概括整篇博客的核心哲学
不要把赌注押在模型当前的弱点上,而要把赌注押在接口的稳定性上。
模型会进步,框架会过时,但好的抽象可以让系统在底层剧变时保持上层稳定。Managed Agents 的每一个设计决策——Session 外化、Harness 无状态化、Sandbox 可替换、凭证物理隔离、多脑多手——都是这句话的具体展开。
批判性分析:
- 数据主权丧失:用户的Agent记忆完全由Anthropic平台控制
用户只能通过Anthropic的API访问记忆,无法直接控制底层数据;用户失去了对记忆数据的直接所有权和控制权
- 锁定效应:切换到其他平台意味着"失忆"——失去所有积累的记忆
"你的Agent记住了你三年积累的项目经验、代码风格、工作习惯——这些东西如果被锁定在一个厂商的封闭系统里,你换工具的代价就是'失忆'"
- 商业动机:通过记忆锁定提高用户切换成本,建立平台护城河