
structure|1️⃣ 三级笔记、思想框架
🧭 文章主旨
Anthropic 构建了 Managed Agents——一个托管式 agent 服务平台。核心设计理念是将 agent 的「大脑」(Claude + harness)从「双手」(sandbox、工具)和「记忆」(session log)中解耦,使每个组件可以独立失败、独立替换、独立扩展。这一架构借鉴了操作系统虚拟化硬件的经典思路:抽象比实现更持久。
📐 思想框架
从耦合到解耦:一个经典的系统设计演进故事
- 起点:所有组件塞进同一个容器(pet)
- 痛点:调试困难、安全隐患、扩展受限
- 终点:三层解耦架构(brain / hands / session)
- 哲学:设计面向「尚未被构想的程序」的系统
📝 大纲笔记
一、背景:Harness 是一组会过时的假设
- Anthropic 工程博客持续探讨如何构建 effective agents 和设计 harness
- harness 编码了「Claude 自己做不到什么」的假设,但这些假设会随模型进步而过时(go stale)
- 案例:Claude Sonnet 4.5 有「context anxiety」(接近上下文极限时会草草结束任务),团队在 harness 中加了 context resets 来应对
- 但换到 Claude Opus 4.5 后,这个行为消失了——resets 变成了 dead weight
- 核心洞察:harness 会持续演化,所以需要一个能超越任何特定实现的系统
二、类比:操作系统的虚拟化智慧
- 几十年前,操作系统解决了同一个问题:如何为「programs as yet unthought of」设计系统
- 方法:将硬件虚拟化为足够通用的抽象——process, file
- 抽象比硬件更持久:
read() 命令对 1970 年代的磁盘和现代 SSD 一视同仁
- 上层抽象保持稳定,底层实现自由替换
三、Managed Agents 架构:虚拟化 Agent 的组件
- 将 agent 虚拟化为三个核心组件:
- Session:append-only 的事件日志,记录一切发生过的事
- Harness(brain):调用 Claude、路由 tool calls 的循环
- Sandbox(hands):Claude 运行代码、编辑文件的执行环境
- 设计原则:对接口的形状有主见,对接口背后跑什么没有主见
四、从 Pet 到 Cattle:耦合架构的问题
- 初始设计:session、harness、sandbox 全部放在同一个容器里
- 好处:文件编辑是直接 syscalls,无需设计服务边界
- 但容器变成了 pet(宠物):命名的、精心照料的、不能丢失的个体
- 容器挂了 → session 丢失
- 容器无响应 → 必须「nurse it back to health」
- 调试困境:唯一窗口是 WebSocket event stream,但无法区分 bug 来源(harness bug?网络丢包?容器下线?)
- 需要进容器开 shell 调试,但容器里有用户数据 → 实际上无法调试
- 扩展困境:harness 假设工作内容和自己在同一个容器里
- 客户要连接自己的 VPC 时,要么网络对等连接,要么在客户环境跑 harness
五、解耦方案:Brain / Hands / Session 分离
- Harness 离开容器
- harness 像调用其他工具一样调用容器:
execute(name, input) → string
- 容器变成 cattle(牛群):可互换、可丢弃
- 容器挂了 → harness 当作 tool-call error 传给 Claude → Claude 决定是否重试 → 新容器用
provision({resources}) 初始化
- Harness 自身也是 cattle
- session log 在 harness 外面,harness 内部不需要保持任何状态
- harness 崩溃 → 新 harness 通过
wake(sessionId) 启动 → getSession(id) 拿回事件日志 → 从最后一个事件恢复
- 运行中通过
emitEvent(id, event) 持久化写入 session
- 安全边界
- 耦合设计的风险:Claude 生成的不可信代码和凭证在同一容器 → prompt injection 只需让 Claude 读自己的环境变量
- 结构性修复:确保 token 永远不可从 sandbox 到达
- Git:用 access token 在初始化时 clone repo,写入 local git remote,sandbox 内的 push/pull 不接触 token
- MCP 工具:OAuth token 存在安全 vault 里,Claude 通过 dedicated proxy 调用,proxy 用 session token 从 vault 取凭证
六、Session ≠ Context Window
- 长时间任务常超出 context window 长度
- 标准做法(compaction、memory tool、context trimming)都涉及不可逆的决策——丢掉什么、留下什么
- 难点:难以预知未来的 turn 需要哪些 token
- Managed Agents 的方案:session 作为 context window 之外的 context object
- 持久化存储在 session log 中(不在 sandbox / REPL 里)
- 接口
getEvents() 允许 brain 按位置切片查询事件流
- 灵活用法:从上次停下的地方继续、回退几个事件查看前情、在特定动作前重读上下文
- 关注点分离:session 保证可恢复的持久存储,harness 负责任意的上下文管理
- 因为无法预测未来模型需要什么样的 context engineering
七、Many Brains, Many Hands
- Many Brains
- 解耦前:每个 brain 需要一个容器 → 容器初始化(clone repo、boot、fetch events)阻塞推理 → 高 TTFT(time-to-first-token)
- 解耦后:容器只在需要时通过 tool call 创建 → 不需要容器的 session 不用等
- 效果:p50 TTFT 下降约 60%,p95 下降超 90%
- 扩展 = 启动更多无状态 harness,按需连接 hands
- Many Hands
- Claude 需要推理多个执行环境、决定把工作发到哪里——比操作单个 shell 更难的认知任务
- 早期模型做不到,所以从单容器起步;智能提升后,单容器反而成了瓶颈
- 解耦后每个 hand 都是 tool:
execute(name, input) → string
- harness 不知道 sandbox 是容器、手机还是 Pokémon 模拟器
- brain 之间可以传递 hands
八、Meta-Harness:面向未来的设计哲学
- Managed Agents 是一个 meta-harness:对具体 harness 不持立场,提供通用接口容纳多种 harness
- Claude Code 是一个优秀的 harness,task-specific harness 在窄领域表现出色 → Managed Agents 都能容纳
- 有主见的部分:Claude 需要操纵状态(session)+ 执行计算(sandbox)+ 扩展到 many brains & many hands
- 无主见的部分:brain 和 hands 的数量、位置
- 设计通用接口,让这些组件在长时间跨度上可靠且安全地运行
concepts|2️⃣ 关键概念、概念网络
一、核心概念解析 (Core Concepts)
- 【Managed Agents】
- 【Harness】
- 【Meta-Harness】
- 【Brain / Hands / Session 解耦】
- 【Pets vs Cattle】
- 【Context Anxiety】
- 【Session as Context Object】
- 【TTFT (Time-to-First-Token)】
- 【Many Brains, Many Hands】
- 【Programs as Yet Unthought of】
二、概念网络 (Concept Network)
- Harness 过时问题 → 驱动了对 Meta-Harness 的需求:需要一个能容纳任何具体 harness 的通用系统
- Programs as Yet Unthought of 是设计哲学的核心类比,直接启发了 Managed Agents 的虚拟化架构
- Managed Agents 的架构核心是 Brain / Hands / Session 解耦,将三个组件变成独立接口
- Pets vs Cattle 描述了解耦前后的对比:从全耦合的 pet 容器演进为可互换的 cattle 组件
- Context Anxiety 是 harness 假设过时的具体案例,证明了为什么需要可演进的架构
- Session as Context Object 解决的是长时间任务中 context window 不够用的问题,与 Brain / Hands / Session 解耦中 session 组件的设计直接关联
- TTFT 是解耦架构带来的可量化收益,证明 brain 不再被容器初始化阻塞
- Many Brains, Many Hands 是解耦架构解锁的终极扩展能力,也依赖模型智能提升(早期模型做不到 many hands 的认知任务)
agentic reading|3️⃣ 费曼 x3