全书目录

第八编 工程层

第 40 章 一套可执行的 Agent 架构检查清单

3 分钟 1,341 字 第 41 / 161 个阅读单元

如果要把整本书压缩成一个工程检查清单,可以保留下面这些问题。

但如果只把它们理解成一串散点问题,还不足以真正用于设计和评审。

更好的方式,是把它们组织成十个检查面。这样无论是评审一个现有系统、从零设计一个系统,还是排查一个问题系统,都能按同一顺序执行。

因此,第 40 章第一条结论应该是:

text
一个成熟的 Agent 架构,不是靠“感觉它挺聪明”来判断,而是靠一组可逐项检查的结构条件来判断。

第一,目标面。

  1. 这个问题真的需要 Agent 吗?
  2. 任务目标是否足够具体,而不是“万能助手”式空目标?
  3. 成功条件、失败条件、停止条件、升级条件是否都被外部定义?

第二,对象面。

  1. 业务对象、字段、关系、状态是否被显式建模?
  2. 关键业务规则是否程序化,而不是全塞进 prompt?
  3. 模型看到的是清洗后的任务对象,还是原始噪声堆?

第三,模型面。

  1. 模型能力画像是否真的匹配任务?
  2. 哪些步骤需要推理强度,哪些只需要稳定结构化输出?
  3. 是否存在大小模型分层与预算控制,而不是默认全程用最贵能力?

第四,输入与状态面。

  1. 输入契约是否清楚?
  2. 当前轮上下文、会话状态、长期记忆、外部状态是否明确分层?
  3. 状态写入、覆盖、过期、回滚规则是否被显式定义?

第五,动作面。

  1. 动作空间是否足够完成任务,同时保持可控?
  2. 读、写、删、触发、外发、支付、执行脚本等高副作用动作是否被分层?
  3. 哪些动作允许自动执行,哪些动作必须审批,哪些动作绝不能代理?

第六,控制流面。

  1. 决策循环是否被显式设计?
  2. 哪些步骤由代码固定,哪些步骤由模型决定?
  3. 如果是多 Agent,角色边界、交接状态和最终控制权是否明确?

第七,验证与评测面。

  1. 最终结果是否有外部验证器?
  2. 是否有 trace、eval、grader、回放和失败归因机制?
  3. 系统能否区分幸运成功、隐藏失败和稳定成功?

第八,治理与安全面。

  1. 高风险动作是否有审批和权限边界?
  2. 是否区分可信与不可信输入?
  3. 是否对 prompt injection、越权调用、状态污染和错误自动化有明确防线?
  4. 是否具备 audit、kill switch、sandbox、fallback 和人工接管路径?

第九,运行面。

  1. 成本、延迟、并发和重试是否可承受?
  2. 是否有 timeout、限流、背压、降级和容错策略?
  3. 这个系统在真实流量下是否仍然能稳定运行,而不是只在小样本 demo 下看起来聪明?

第十,演化面。

  1. 新工具、新规则、新角色、新业务对象能否在不打碎整体结构的情况下加入?
  2. 系统是否能持续回归测试?
  3. 团队能否在版本迭代中持续理解、修复和扩展它,而不是越来越依赖少数人经验?

如果这十个检查面里有几项长期答不清,那么系统大概率还不是真正成熟的 Agent,而只是带着 Agent 外观的原型。

因此,第 40 章第二条结论应该是:

text
判断一个 Agent 是否成熟,不要先看它会多少花活,而要先看它在目标、对象、模型、状态、动作、控制流、评测、治理、运行和演化十个面上是否都能自圆其说。

这套清单还有一个更重要的用法:它不只是验收工具,也是设计工具和复盘工具。

设计前先跑一遍,可以提前暴露结构缺口; 上线前再跑一遍,可以暴露治理和评测短板; 事故后再跑一遍,可以迅速找到根因是目标失焦、状态失控、动作越界、控制权混乱,还是观测不足。

所以,本章最后要留下的判断是:

text
Agent 架构的成熟,最终不是体现在一段更聪明的对话里,而是体现在这套系统能否经得起逐项检查、逐项解释、逐项治理和逐项演化。