Skip to content

第 20 章:把整本书收束成一个判断框架

本章目标:不再引入新概念,而是把前面所有章节压缩成一个可以拿来判断真实 Agent 系统的工程框架:它是什么、怎么跑、边界在哪、何时扩展、何时该停。
本章作为全书结尾,用来收束主线并帮助读者建立完整判断地图。


20.1 为什么最后一章不该再讲新玩具

写到最后,最容易犯的错就是再塞一个新词、再补一套新框架、再抛一个更大的未来愿景。

这通常没必要。

因为这本书真正想做的,不是把读者塞满术语,而是让你最后能带走一套判断能力。

所以最后一章最该做的事不是继续加内容,而是把前面已经讲过的东西压成一个可用框架。

所以这一章不再引入新部件,也不逐章复述前文。它只做一件事:把前面分散展开的判断标准压缩成一套可以反复拿来用的分析框架。

真正有用的学习结果,不是记住更多名词,而是遇到一个系统时,知道该从哪几层下手判断它。


20.2 第一层判断:它到底是不是 Agent

先回到最起点。

看到一个系统,第一层别急着问“用了什么模型”,先问:

  • 它有没有明确目标
  • 会不会围绕目标持续推进
  • 会不会根据环境和反馈调整动作
  • 会不会在必要时行动而不只是回答
  • 有没有终止、失败和求助出口

如果这些都没有,那它大概率不是 Agent,只是:

  • 一个问答壳
  • 一个 workflow 壳
  • 一个大模型功能集合

这一步不先切清,后面所有讨论都会飘。


20.3 第二层判断:它是不是一个闭环系统

就算它看起来像 Agent,也要继续问:

  • 输入如何进入系统
  • 决策怎么发生
  • 工具怎么被调用
  • 结果怎么回流
  • 下一轮动作怎么被决定
  • 什么时候停下来

也就是说,真正重要的不是“它会不会调工具”,而是:

它有没有形成感知—决策—行动—反馈的闭环。

没有闭环,就没有真正的系统性推进能力。


20.4 第三层判断:它有没有把内部几个核心层拆清楚

前面整本书都在反复做一件事:拆层。

因为很多烂系统不是能力不够,而是层次混了。

最关键的几组别再混:

  • 模型 vs 系统
  • 工具系统 vs 权限系统
  • 上下文 vs 状态 vs 记忆
  • 规划 vs 编排
  • 持久化 vs 记忆系统
  • 扩展点 vs 外部能力接入

只要这些层一混,系统就会开始长大量特殊情况。

所以判断一个系统成不成熟,很重要的一点就是:

它有没有靠分层减少特殊情况,而不是靠补丁把特殊情况糊住。


20.5 第四层判断:它的边界有没有被认真设计

一个会动的系统不难,一个边界清楚的系统才难。

所以继续问:

  • 哪些动作它能做
  • 哪些动作它不能自己做
  • 哪些地方必须问人
  • 哪些失败会停机
  • 哪些权限被明确切开
  • 哪些外部能力被统一治理

真正成熟的 Agent,不是自动化最大化,而是:

  • 在该自动的地方自动
  • 在该停的地方停
  • 在该问人的地方问人
  • 在该受限的地方受限

边界不清的系统,短期看起来猛,长期基本都不稳。


20.6 第五层判断:它的复杂度到底是被管理了,还是只是被转移了

这是最该带走的一层判断。

很多系统表面上很高级:

  • 多 Agent
  • 协议层
  • 插件系统
  • 服务化
  • 持久化
  • 丰富 UI

这些东西本身都不是坏事。

但真正要问的是:

  • 它们有没有减少真实复杂度
  • 还是只是把复杂度从一个地方挪到另一个地方
  • 有没有建立更稳定的结构
  • 还是只是多了更多概念和更多入口

你可以一直问一个很 Linus 的问题:

这里增加的复杂度,是真的在解决真实问题,还是在给自己制造更复杂的故事?

这个问题很难听,但很有用。


20.7 第六层判断:它能不能长期活着

最后别停在“架构看起来不错”。

还得继续问:

  • 能部署吗
  • 能测试吗
  • 能评估吗
  • 能观测吗
  • 能复盘失败吗
  • 能安全扩展吗
  • 半年后团队还敢不敢继续改

一个系统如果只能在作者脑子还热的时候工作,那它就还没成熟。

真正成熟的系统,应该具备的是长期演进能力。


20.8 把整本书压成六个问题

如果你懒得记所有章节,可以把整本书压成这六个问题:

  1. 它到底是不是 Agent,而不只是问答或工作流套壳?
  2. 它是不是一个真正有反馈回流的闭环系统?
  3. 在第 2 章最小五部件的基础上,后面又把模型、工具、状态、记忆、规划、编排这些层进一步拆清了吗?
  4. 权限、停机、人类介入和外部接入这些边界有没有被认真设计?
  5. 平台化、多 Agent、协议层这些复杂度有没有真的解决问题?
  6. 这套系统能不能部署、观测、评估并长期维护?

这六个问题,比背一堆概念更值钱。


20.9 为什么 Claude Code 适合作为一整个现实样本

整本书反复拿 Claude Code 做现实落点,不是因为它“最完美”,而是因为它很适合做一个真实样本。

从当前仓库就能看到这种“现实样本”不是嘴上说说:

  • 根级 package.jsondocs/README.md.github/workflows/deploy-docs.yml 一起给出了从本地开发、构建到 GitHub Pages 部署的完整最小链路
  • .vitepress/config.ts 把导航、搜索、编辑链接、最后更新时间和 srcExclude 做成独立壳层配置,说明交互承载层和内容层是分离的
  • .claude/commands/CLAUDE.md 展示了 /commit-push-pr/dedupe/triage-issue 这类明确入口,说明命令层并不是抽象概念,而是独立触发面
  • examples/settings/README.mdexamples/settings/settings-strict.json 又把权限、审批、Hook 管理和沙箱限制写成可复用样板,说明边界和治理不是口头约定,而是可落盘、可分发的策略对象
  • plugins/ 下拆出的多个模块则继续说明:执行角色、知识封装、规则治理和自动化流程都已经开始沿着稳定扩展面生长

你能在它身上看到很多 Agent 系统真正要面对的问题:

  • 本地能力与外部能力怎么共存
  • 工具系统和权限系统怎么分开
  • 状态、记忆、上下文怎么拆层
  • 什么时候要计划,什么时候要停
  • 多 Agent 在什么场景下值得上
  • 平台化和扩展点怎样开始长出来
  • 工程化边界怎样一点点变硬

也就是说,它不是一个抽象概念图,而是一个现实里的结构样本。

这就足够了。


20.10 最后一句难听但有用的话

如果这本书最后只留下一句最有用的话,那大概是:

别被“Agent”这个词唬住,先看它有没有把真实复杂度处理干净。

真正好的系统不是词更大、图更复杂、组件更多。

真正好的系统是:

  • 分层清楚
  • 边界清楚
  • 扩展点清楚
  • 失败出口清楚
  • 长期维护路径清楚

这些东西都清楚了,系统自然会稳。

这些东西不清楚,再聪明也只是短期幻觉。


20.11 全书收束

这本书从“Agent 到底是什么”开始,一路往下拆:

  • 它的最小组成
  • 它的执行闭环
  • 模型和工具的责任边界
  • 状态、记忆、上下文的分层
  • 规划、停机、human-in-the-loop
  • 多 Agent、协议层、配置、服务化、持久化
  • 交互承载层、平台化、扩展点和多 Agent 编排
  • 最后收束到部署、测试、评估、观测与长期维护

如果前面都读完了,你现在真正该带走的,不是一组术语,而是一套能反复判断一个真实 Agent 系统到底做到哪一步的框架。

前面各章是在拆零件、讲边界、讲运行;这一章做的只是收束,把这些分散的判断点压成一把能反复使用的尺子。

看到一个 Agent 系统时,你已经知道该看它的定义、闭环、分层、边界、扩展和工程闭环。

这就够了。