chapter 08 / 运行时支撑层
运行时、可靠性与安全
生产级 Agent:幂等、隔离、身份与网关
前七章的 Harness 还跑在「理想环境」里。最后一章面对真实世界:进程会崩、网络会断、Agent 会把环境弄脏、同一操作会被重试三次。生产级 Agent 的差距,大部分在运行时层。
Agent-first 基础设施
传统基础设施为人设计:GUI 操作、幂等靠人小心、环境靠人维护。Agent Infra 的出发点是反过来问:如果主要用户是 Agent,基础设施应该长什么样?
三条落地原则:
1. 幂等设计:假设一切都会被重试
Agent 会频繁重试——网络超时、执行结果不确定、中断恢复。幂等设计要求同一操作执行多少次结果都一致:
- 声明式优于命令式:
kubectl apply定义期望状态,系统自动协调; - ensure 语义:
mytool user ensure --name "john",存在即跳过; - 幂等键:
--idempotency-key让服务端去重。
反面教材:非幂等的「创建用户」接口 + Agent 重试 = 三个重复用户。给 Agent 用的工具,从设计上就要假设「会被执行多次」。
2. Pets vs Cattle:环境要能随时报废
Pets vs Cattle:执行环境应该像牲畜群(可复制、可销毁、可重建),而不是精心照料的宠物。Agent 会把环境弄脏、会失败重来——沙盒、容器都是「牲畜化」手段,状态外置到文件系统与检查点。
代码工作区层面的对应物是 Git Worktrees:同一仓库开多个工作树,并行工作的 Agent 各占一个、互不踩踏、随时丢弃——本站第 7 章的并行子代理在编码场景落地时,几乎必然配着它。
3. 接口厚度:给 Agent 的接口要多厚?
接口厚度是个精妙的设计变量:太薄(裸 shell)什么都能干但什么都危险;太厚(全封装 GUI)安全但 Agent 施展不开。好的 Agent 接口在中间——结构化、可校验、带护栏的「中厚」接口,CLI 与 MCP 服务器都在这一档(Agent-CLI 设计)。
脑手分离:运行时的终局形态
把可靠性做到头,就会走到 Anthropic Managed Agents 的架构:推理层(脑)与执行基础设施(手)解耦。
Scaling Managed Agents: Decoupling the brain from the hands ↗
把推理层(脑)与执行基础设施(手)解耦,通过稳定接口独立扩缩与故障恢复——Meta-Harness 思想的官方工程实践。
脑通过稳定接口(execute / getSession / wake / provision)指挥手;手的沙盒可以崩溃重建(cattle),脑的推理状态不受影响;模型升级换脑,执行层不用动——第 6 章的 Meta-Harness 与 Brain-Hands 解耦在这里合流。openJiuwen 的 agent-runtime 仓库正是这一层的开源实现:foundation/(运行时基座)、server/(执行服务)、management/(生命周期管理),把 agent-core 写的 Agent 托管成可部署、可恢复的服务。
信任问题:身份与网关
Agent 开始代表人类行动,安全模型也要跟上:
- Agent Identity:Agent 需要自己的身份凭证(而非借用人的 cookie/token),权限可独立授予、审计、撤销;
- Agent Gateway:Agent 的出站流量走统一网关——鉴权、限流、审计、策略执行在一个咽喉点完成,而不是散在每个工具里。
全书收束
回望八章走过的路:模型内核(1)→ 循环(2)→ Harness 全景(3)→ 上下文(4)→ 工具(5)→ 评估与进化(6)→ 多 Agent(7)→ 运行时(8)。每一层都在回答同一个问题的不同侧面:
模型无法独立完成什么——以及系统如何补上它。
模型每进步一次,这个问题的答案就移动一次。Harness 工程不会消失,只会持续搬家。保持对每个组件的假设做压力测试,就是这门手艺的日常。
本章能力在 Harness 中处于什么位置?
harness positioning
本章能力在 Harness 中处于什么位置?
运行时可靠性横跨底座:状态与恢复层保证「随时能停、随时能继」,而幂等、沙盒、身份、网关支撑着从单循环到多 Agent 的每一层安全落地。至此七层集齐——回到第 3 章的拆解图,你应该能对每一层说出它补偿了模型的什么短板。
本章概念清单 / 点击进入概念卡片
章末测验
chapter quiz
0/4 已答
Q1为什么幂等设计对 Agent 工程尤为关键?
Q2「Pets vs Cattle」用在 Agent 基础设施上是什么意思?
Q3Anthropic Managed Agents 提出的「Brain-Hands 解耦」指什么?
Q4Git Worktrees 在 Agent 基础设施中扮演什么角色?