宠物与牲畜模式(Pets vs Cattle)
概述
宠物与牲畜模式是云计算中的基础设施管理范式:宠物是有名字、需人工照料、不可丢失的个体;牲畜是无名、可互换、失败时直接替换的群体。在 Agent 架构设计中,该模式指导如何将组件从"宠物"转变为"牲畜"以实现弹性。
关键内容
两种模式对比
| 维度 | 宠物(Pet) | 牲畜(Cattle) |
|---|---|---|
| 身份 | 有名字、独特 | 无名字、可互换 |
| 失败处理 | 人工修复 | 自动替换 |
| 状态 | 有状态、不可丢失 | 无状态或状态外置 |
| 扩展 | 困难 | 容易 |
在 Agent 架构中的应用
Anthropic 在构建 Managed-Agents 时的演进历程:
第一阶段(宠物): - 所有组件(会话、harness、沙箱)放在单个容器中 - 容器失败时会话丢失 - 容器无响应时需人工"护理"恢复健康 - 无法调试——打开容器 shell 意味着访问用户数据
第二阶段(牲畜):
- 容器变牲畜:harness 通过 execute(name, input) → string 调用容器,容器失败时作为工具调用错误返回,Claude 可重试,新容器通过 provision({resources}) 初始化
- Harness 变牲畜:会话日志在外部,harness 崩溃无需存活,新 harness 通过 wake(sessionId) 重启并恢复
设计启示
将组件从宠物变为牲畜的关键是状态外置: - 容器的状态外置到会话日志 - Harness 的状态外置到会话日志 - 任何组件失败时,状态不丢失,新实例可从最后已知状态恢复
来源
该模式源自 cloudscaling.com 的 The History of Pets vs Cattle 博文,被 Anthropic 应用于 Agent 基础设施设计。
来源
- raw/articles/ai-engineering/anthropic-engineering/Scaling Managed Agents_ Decoupling the brain from the hands.md — Anthropic Engineering Blog
相关
- 脑手分离架构 — caused(解耦使组件从宠物变为牲畜)
- Managed-Agents — related_to(架构演进的核心驱动力)