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 的“大脑”与“双手”解耦

Sources