无尘阁日记

无尘阁日记

Agent 的能力上限,不在模型有多聪明
silcano

微信读书《大模型Agent开发实践》· 陈志鹏(@木羽Cheney)
逐页翻阅 599 屏 · 8 章 · 2026-11-03
说明:这是一本必须开着终端读的书。599 屏里绝大部分是命令行、代码块和运行截图,作者是赋范空间的大模型技术负责人,写法偏"带你走一遍"而不是"讲个道理"。也正因为它这么实,它的优点和毛病都特别明显。

Agent 这个题目,很容易写成两类书。

一类是概念书:讲什么是智能体、有哪些范式、未来会怎样。读完你觉得懂了,一动手发现不知道从哪一行开始写。另一类是技巧书:给你一堆提示词模板和框架对比,读完能跑个 demo,但一上真实业务就崩。

这本书走的是第三条路,也是我认为最难写的一条:把一个 Agent 从环境装起,一路做到企业级可用。八章就是这条路的八个路段——Agent 基础、大模型部署、DeepSeek 实操、本地知识库 RAG、RAG 实战、微调实战、Agent 开发、企业级实战。

这个顺序本身就是一个判断:Agent 不是一个起点,是一个终点。你必须先有能跑起来的模型,再有能喂进去的知识,再有能约束它的框架,最后才谈得上"智能体"。

一、第一个真实的坑:它把草稿也交给你了

讲 Agent 的文章大多从 ReAct 开始,这本书却先讲了一个更琐碎、也更真实的问题:本地部署的推理模型,输出里会带思维链。

书里在讲结构化输出时,给的解法非常朴素:取规范化输出内容的"### Response"作为最终模型的答复内容,代码就一行——

print(response[0].split("### Response:")[1])

截图里可以看到,模型吐出来的原始内容是先一段 <think>(里面在自我盘算"用户说你好,久不见,看起来是想打招呼……我应该友好地回应,表达开心并询问情况"),然后才是 </think> 和真正的答复。

这个细节看起来微不足道,但它是"本地部署"和"调 API"之间最容易被忽略的差别之一。云端 API 通常已经帮你把推理过程剥掉了,你拿到的就是干净答案;本地跑开源模型,你拿到的是模型的全部工作过程,包括它的犹豫、自我提醒、格式草稿。

如果你不切,下游会发生什么?

假设你在做一个客服 Agent,模型先想"这个用户好像在生气,我应该先安抚",然后把这段思考一起输出给用户。用户看到的是一句"这个用户好像在生气"——对话直接崩掉。

再假设你在做结构化抽取,让模型输出 JSON。它先在 think 里写"我需要抽取姓名、电话、金额",然后输出 JSON。你的解析器在第一个花括号处就崩了,因为它先遇到了中文。

所以那行 split 不是权宜之计,它是协议边界。它的意思是:模型的思考过程和模型的输出,是两个东西,中间必须有一条明确的分界线。

二、schema 就是契约

顺着这条线,书里第 7 章讲 LCEL 时给了一个我认为全书最有工程味的设计。

它说,在 LCEL 中所有组件都实现了 Runnable 接口,在这个过程中,Runnable 会动态生成输入的描述,并将其传入 Pydantic 模型。我们可以调用 schema() 来获取 JSON Schema。书里打印出来是这样:

{'properties': {'topic': {'title': 'Topic', 'type': 'string'}},
'required': ['topic'],
'title': 'PromptInput',
'type': 'object'}

然后是那句关键的总结:

通过这样的强检验机制,可以确保输入的数据格式正确,尽早发现错误。

"尽早"两个字是重点。

Agent 系统最难受的故障,不是它报错,而是它不报错。你把一个字段名拼错了,链路照样跑通,模型照样生成,最后给你一段读起来通顺、但基于错误输入的回答。你看到结果不对,回头查,发现错误发生在第三步,而你已经跑了两百次。

schema 的作用是把这类错误从"结果层"提前到"入口层"。字段少了、类型错了、必填缺失,在进门那一刻就被拦住,而不是等到模型编出一个答案之后你才发现。

我读这一段的时候想到一个类比:schema 之于 Agent,相当于类型系统之于编程语言。写 Python 不写类型也能跑,但项目一大就会出问题;写 TypeScript 会多花时间,但那些时间是从调试里省出来的。Agent 现在的阶段,大致相当于早期的 JavaScript——什么都能塞,什么都可能错。

所以这本书的价值不在于教你"怎么让 Agent 更聪明",而在于教你"怎么让它不那么容易错"。这两个方向的工程量差一个量级。

三、从链到图:AgentExecutor 为什么让位

书里对 LangChain 和 LangGraph 的区别,有一段话说得比大多数资料都清楚:

LangGraph 在"图"这一概念上进行了重点强化,旨在解决线性序列带来的局限性,而实现这一目标的核心方式是引入循环图结构。在 LangGraph 框架中,图取代了 LangChain 中的 AgentExecutor(Agent 执行器),用于管理 Agent 的生命周期,并通过状态中的暂存器跟踪消息,从而支持以循环方式协调多个链或参与者之间的计算步骤。这与 LangChain 将 Agent 视为可附加工具并插入特定提示的设计理念有所不同。

这段话里有三个信息量很大的点,值得拆开。

第一,"线性序列带来的局限性"。早期 LangChain 的心智模型是链(Chain):A 的输出喂给 B,B 的输出喂给 C。这个模型很直观,也很好教。但它有一个硬伤——不能回头。

而 Agent 的本质恰恰是回头。它要先想、再调工具、看结果、发现不对、重新想。这是一个环,不是一条线。用链的模型去表达环的行为,只能靠套娃式的 hack,越写越乱。

第二,"图取代了 AgentExecutor"。这是个架构级的替换,不只是换个名字。AgentExecutor 是黑盒:你把模型、工具、提示词塞进去,它自己在里面转,你不知道它转到第几圈、为什么停。状态图是白盒:节点是你定义的,边是你定义的,状态是你定义的,每一步都能停下来看。

对调试来说,这个差别是决定性的。黑盒的问题不是它不好用,是它出错时你无从下手。

第三,"通过状态中的暂存器跟踪消息"。这句话点出了状态图的实现核心:所有东西都挂在状态上。消息、中间结果、工具返回、错误信息,全部是状态的一部分。这样一来,"循环"就变得自然了——回到上一个节点,状态还在,接着算就行。

我觉得这段的价值在于,它把一个看起来像"框架营销"的问题,还原成了一个具体的技术问题:你要不要能回头?要,就必须有状态;有状态,就必须有图。

四、微调改的是嘴,RAG 改的是脑

第 4、5 章讲 RAG,第 6 章讲微调。这三章放在一起,恰好构成一个对照,而这个对照是很多人搞混的地方。

书里讲微调的必要性时说得很清楚:预训练模型"通常具备通用性,尚未针对特定任务或领域进行优化和调整",微调是在预训练模型的基础上,通过少量训练数据和有限的计算资源,对模型进行特定任务的优化。

关键词是"特定任务",不是"特定知识"。

这个区别必须掰开:

你要它知道你们公司 2025 年的报销标准 → 这是知识,用 RAG。把制度文档切块、建索引、检索进上下文。

你要它输出时永远先给结论再给依据、永远用敬语、永远不带感叹号 → 这是行为,用微调。准备几百条符合要求的样本,训一遍。

把这两件事搞反,是最常见的浪费。用微调灌知识,你会发现它记住了一些、忘了更多、还会把不同条款混在一起编;用 RAG 改文风,你会发现每次都要在提示词里写一大段要求,还经常不听话。

书里还有一个现实提醒:微调要谈硬件。显存多大、能不能跑 LoRA、多久能训完——这些是硬约束。一台消费级显卡能做的微调,和能做的推理,是两件完全不同规模的事。

至于 RAG 那两章(第 4、5 章),走的是标准路线:文档加载、切块、嵌入、向量库、检索、生成。书里给的例子是本地知识库问答,一路有代码。扎实,但没有太多超出常规的东西——这部分内容现在网上已经很多了。

五、它的短板

说实话,这本书的问题和它的优点来自同一个地方:它太"实"了。

第一,它会很快过期。599 屏里大量是命令行输出、界面截图、API 参数、模型版本号。这类内容在 2024 年写下来是对的,但模型版本三个月一换、框架 API 半年一改,读者照着敲很可能第一步就卡住。一本以命令行截图为骨架的书,保质期天然很短。

第二,深度被广度摊薄了。八章要覆盖部署、RAG、微调、Agent、企业级五个大主题,每章平均七十来屏。这意味着每一块都只能"带你跑通",没法"带你吃透"。比如微调那一章,讲了为什么微调、怎么准备数据、怎么跑起来,但学习率怎么调、灾难性遗忘怎么防、效果怎么评——这些真正决定成败的部分,基本没有展开。

第三,企业级那一章名不副实。第 8 章标题叫"企业级 Agent 开发实战",但内容更接近"把前面的东西串起来做个完整例子"。真正的企业级难题——多租户隔离、权限、审计日志、灰度发布、故障回滚、成本核算——几乎没有涉及。而这些恰恰是从"能演示"到"能上线"之间最厚的一堵墙。

第四,缺一张选型地图。书里介绍了不少框架(LangChain、LangGraph、LlamaIndex、GraphRAG、Dify 之类),但很少给出"什么场景该选哪个"的判断。读者读完之后知道有哪些工具,还是不知道该用哪个。

还有一点不算缺点,但需要提醒:这本书默认你有一台能跑模型的机器,或者至少愿意为 API 付费。它对"完全没有工程背景、只想试试看"的读者并不友好——第一章之后的门槛就上来了。

但如果目标是"我真的要做一个能用的东西",这些短板是可以接受的。因为市面上缺的从来不是"讲清楚 Agent 是什么"的书,而是"把每一步的命令都写出来、让你能跑通一次"的书。跑通一次之后,你才有资格谈判断。

大模型Agent开发实践 核心知识图谱
核心知识图谱:三段地基 → 结构化输出 → 从链到图 → 企业级现实

一句话总结:Agent 的能力上限不取决于模型有多聪明,取决于你给它定的契约有多严——schema 定得住,它才敢放出去跑。


阅读记录:《大模型Agent开发实践》,陈志鹏著,微信读书逐页翻阅 599 屏,八章读完,读至第 8 章企业级 Agent 开发实战。2026-11-03。