心 智 七 篇 · Seven Mental Models
← Knowledge Atlas · 概念

Pets vs Cattle(宠物与牲畜)

宠物与牲畜:基础设施可处置性模式,从云计算扩展到 agent 架构的组件可替换性
概念 · PETS VS CATTLE · 基础设施模式 → Agent 架构模式

宠物与牲畜

Pets vs Cattle — 可处置性是核心:组件可随时销毁替换 = 牲畜

宠物:不可失去的唯一个体,故障需要特殊处理。牲畜:可随时替换的群体成员,故障只需换一个。Randy Bias(2011)从基础设施推广到 agent 架构:组件可处置性 = 故障不传播为系统故障。

Agent 组件:宠物 vs 牲畜
场景宠物模式(单容器)牲畜模式(解耦)
Sandbox 故障session 丢失,无法恢复provision 新容器,session 继续
Harness 故障调试需进入用户数据容器wake(sessionId) 从外部恢复
故障隔离所有故障表现统一可定位具体故障层
隐私宠物容器含用户数据凭证隔离,只替换出问题的组件
前提条件
脑-手解耦
Meta-Harness 将认知层(Session)与执行层(Sandbox)分离是 Cattle 化的前提
外部化 Session
Session 必须独立持久化,不与 Harness/Sandbox 同生共死
→ Meta-Harness · Agent Sandboxing · Reliability DecayRandy Bias (2011)

Pets vs Cattle(宠物与牲畜)

定义

云计算基础设施模式:将服务器视为不可失去的唯一个体(宠物)还是可随时替换的群体成员(牲畜)。由 Randy Bias 在 2011-2012 年推广,基于 Bill Baker 关于 SQL Server 扩展的类比。

核心区分不在于 scale-up vs scale-out,而在于可处置性(disposability):如果一个服务器(无论物理、虚拟化还是容器化)可以在任何时候被销毁和替换,那它就是牲畜。如果它不可或缺,那它就是宠物。

在 Agent 系统中的应用

Managed Agents 将 pets vs cattle 模式从基础设施层引入 agent 架构层。

初始设计:Agent 组件作为宠物

将所有 agent 组件(session、harness、sandbox)放入单一容器,创造了一个不可失去的”宠物”:

  • 容器故障 → session 丢失,无法恢复
  • 调试需要进入包含用户数据的容器 → 隐私风险
  • 故障表现统一(harness bug、网络丢包、容器下线)→ 无法定位原因

解耦后:每个组件作为牲畜

Brain-hands 解耦(meta-harness)使每个组件可独立故障恢复:

  • Sandbox 故障 → harness 捕获 tool-call error → 新容器通过 provision({resources}) 初始化
  • Harness 故障 → 新实例通过 wake(sessionId) 启动 → getSession(id) 恢复
  • Session → 独立持久化服务,不受其他组件故障影响

从编号看也符合 Bias 的原始定义:不再是”Bob 的容器”,而是可互换的实例池。

与现有 wiki 概念的连接

Pets vs cattle 在 wiki 中已有的几个领域以不同形式出现:

  • Agent Sandboxing:cattle 化的 sandbox 是安全的前提——如果 sandbox 是宠物,凭证隔离就不现实(需要进入宠物容器调试)
  • Context Management:session 外部化的前提是 harness 的 cattle 化——如果 harness 是宠物,session 就必须与它同生共死
  • 可靠性衰减:cattle 化是对抗可靠性衰减的基础设施策略——单组件故障不传播为系统故障
  • Harness Engineering:pets vs cattle 是 harness 进化的基础设施前提

相关概念

References

  • sources/bias-pets-vs-cattle.md
  • sources/anthropic-managed-agents.md