Anthropic 托管代理:将 Claude 的“大脑”与“双手”解耦
摘要
Anthropic 推出了 托管代理,这是一个托管平台,将 Claude 的推理组件(“大脑”)与其执行环境(“双手”)以及持久化的会话日志解耦。这一架构转变提升了长时间运行的 AI 代理的可靠性、可扩展性和安全性。
为何解耦至关重要
将大脑、双手和会话分离为独立、可互换的组件,消除了“宠物”容器模型带来的单点故障、调试死胡同和不必要的延迟。每个组件都可以在不影响其他组件的情况下被替换或扩展,使 Claude 能够在多样化的基础设施上运行更长时间、更复杂的任务。
核心架构抽象
会话——持久化的追加式日志
- 用途:将代理执行的每个事件存储在 Claude 的上下文窗口之外。
- 接口:
getEvents()返回日志的位置切片;emitEvent(id, event)追加新条目。 - 优势:提供一个可恢复的上下文对象,能够抵御崩溃,并可由大脑灵活查询。
编排器——编排循环
- 用途:调用 Claude,路由工具调用,并与会话交互。
- 接口:
execute(name, input) → string用于调用任何“手”;wake(sessionId)用于在失败后重启。 - 优势:作为无状态服务(“牲畜”)运行,因此崩溃无害,可立即替换。
沙箱——执行环境
- 用途:执行代码、编辑文件,并与外部资源交互。
- 接口:通过
execute(name, input) → string作为通用工具处理。 - 优势:可以是容器、绑定 VPC 的服务或任何自定义运行时,而无需向 Claude 暴露凭据。
解决“宠物 vs. 牲畜”问题
最初,所有组件都位于单个容器中,使容器成为 宠物——一个独特、不可替换的实例。该容器的故障意味着会话丢失,并需要通过 WebSocket 流进行手动调试。
通过将编排器和会话移出容器,它们变成了 牲畜——可按需重建的可互换服务。当沙箱宕机时,编排器报告工具调用错误,Claude 可以通过 provision({resources}) 使用新配置的容器重试。
安全改进
- 凭据隔离:令牌永远不会驻留在运行 Claude 生成代码的沙箱内。
- 模式:令牌要么在沙箱初始化期间嵌入资源(例如 Git 克隆),要么存储在由编排器调用的代理(MCP)访问的安全保险库中。
- 结果:提示注入攻击无法窃取凭据,沙箱也无法直接访问特权令牌。
管理超出 Claude 窗口的上下文
长时间运行的任务会超出 Claude 的上下文限制。先前的方法(压缩、记忆工具、截断)会对保留内容做出不可逆的决定。托管代理将会话日志视为 外部上下文对象:
- 大脑可以通过
getEvents()读取日志的任何切片。 - 编排器可以在将事件馈送给 Claude 之前对其进行转换,从而实现自定义上下文工程,而无需硬编码假设。
- 这种分离使上下文持久且可查询,同时允许未来的模型实现新的上下文管理策略。
扩展到多个大脑和双手
多个大脑
- 解耦消除了在推理开始前为每个大脑配置容器的需要。
- 首令牌时间(TTFT)显著改善:p50 降低约 60%,p95 降低超过 90%,因为一旦从会话日志中读取待处理事件,推理即可开始。
多只手
- 每只手都是一个通用工具(
execute(name, input) → string),允许 Claude 与容器、VPC 资源、手机甚至模拟器交互。 - 双手独立于大脑,因此大脑可以将工作移交给另一个大脑,或同时调用多个手。
对用户的实际影响
- 可靠性:任何组件的故障都是隔离的;会话持久存在,编排器可以自动重启。
- 性能:TTFT 降低,并且仅在需要时配置沙箱,从而减少延迟和成本。
- 灵活性:用户可以将 Claude 连接到私有网络、自定义工具或专有基础设施,而无需网络对等或暴露凭据。
- 面向未来:元编排器设计预见了新的编排器、沙箱和扩展模式,确保平台在 Claude 模型演进时保持可用。
结论
Anthropic 的托管代理将数十年历史的操作系统原则——通过稳定抽象虚拟化硬件——应用于现代 AI 代理。通过为会话、编排器和沙箱定义清晰、可互换的接口,托管代理为长时间运行的 Claude 驱动工作流提供了稳健、安全且可扩展的基础,同时保持对未来模型可能需要的具体实现的中立性。
总结
Anthropic 发布了托管代理,这是一项托管服务,将 Claude 的推理引擎与执行环境和会话日志分离,从而实现更可靠、可扩展且安全的长时间运行 AI 工作流。
标题
Anthropic 托管代理:将 Claude 的“大脑”与“双手”解耦