脑手分离架构(Brain-Hands Decoupling)
概述
脑手分离架构是将 Agent 的"大脑"(Claude 及其控制框架)与"手"(沙箱和执行工具)及"会话"(事件日志)解耦的设计模式,使各组件可独立失败、替换和扩展。
关键内容
三个组件
| 组件 | 比喻 | 职责 | 接口 |
|---|---|---|---|
| 大脑(Brain) | 决策中枢 | Claude_Code</td> <td>Claude + harness 循环 | |
| 手(Hands) | 执行器官 | Claude Code 沙箱机制</td> <td>沙箱、工具、MCP 服务器 | |
| 会话(Session) | 记忆系统 | 追加式事件日志 | emitEvent(id, event), getEvents() |
解决的问题
耦合设计的三个痛点:
- 宠物问题:所有组件共享单个容器,容器失败时会话丢失,需人工修复(详见 宠物与牲畜模式)
- 调试困境:WebSocket 事件流无法定位失败源,harness bug、丢包、容器离线表现相同
- 安全边界:不可信代码与凭证同容器运行,prompt 注入可读取环境变量
解耦后的行为
大脑离开容器:
- Harness 像调用其他工具一样调用容器:execute(name, input) → string
- 容器变成"牲畜"——失败时 harness 捕获为工具调用错误,Claude 可决定重试
- 新容器通过标准配方初始化:provision({resources})
Harness 失败恢复:
- Harness 也变成"牲畜"——因会话日志在外部,harness 无需在崩溃中存活
- 新 harness 通过 wake(sessionId) 重启,getSession(id) 获取事件日志,从最后事件恢复
安全边界: - 凭证永远不可达沙箱 - Git 令牌在沙箱初始化时注入本地 remote - MCP 工具通过专用代理调用,代理从保险库获取凭证
性能收益
| 指标 | 解耦前 | 解耦后 | 改善 |
|---|---|---|---|
| p50 TTFT | 基准 | -60% | 显著 |
| p95 TTFT | 基准 | -90%+ | 极大 |
多脑多手
- 多脑:启动多个无状态 harness,仅在需要时连接手
- 多手:Claude 推理多个执行环境并决定工作分配
- 脑手传递:因无手与任何脑耦合,脑之间可传递手
来源
- raw/articles/ai-engineering/anthropic-engineering/Scaling Managed Agents_ Decoupling the brain from the hands.md — Anthropic Engineering Blog
相关
- Managed-Agents — uses(核心架构模式)
- 元控制框架 — implements(实现 meta-harness 的关键手段)
- Agent Harness模式 — extends(harness 设计的演进方向)
- 会话日志 — related_to(解耦后的会话作为独立组件)
- 可扩展的受管理 Agent — extends(分层扩展模式的具体实现)