无尘阁日记

无尘阁日记

上下文工程:Agent 的胜负不在模型,在你喂进去的结构
silcano

微信读书《Context Engineering for Multi-Agent Systems》· Packt 出版,中英双语对照版
逐页翻阅 1042 屏 · 11 章 · 2026-11-03
说明:这不是一本讲"怎么写提示词"的书。它从第一章就把"提示词"这个层级抛掉了,换成一个更硬的工程词——上下文。全书用一条主线贯穿:从语义蓝图,到双 RAG,到多智能体编排,最后到一个能上生产的"上下文引擎"。代码密度很高,几乎每一节都有可运行的 Python,这是它的优点,也是它读起来累的原因。

我读这本书,最初是想找"提示词怎么写更好"的答案。读到第三章就明白了:这个问题本身问错了。

当你的 Agent 从"一问一答"变成"多步协作",决定它成败的不再是某一句提示词写得多漂亮,而是在这一步,模型的上下文窗口里到底被塞进了什么——哪些是事实、哪些是流程、哪些是历史、哪些是该被砍掉的噪音。这个判断,提示词工程给不了答案,它是架构层面的问题。

这本书的价值,就在于它把这件事讲成了一个可以施工的工程问题,而不是玄学。

一、上下文的五级台阶:从"加长提示词"到"语义蓝图"

第一章搭了一个很清晰的梯子,我把它当成全书的地基。作者把上下文能力分成五级:

第一级,基础提示词(零上下文)。就是直接问一句,模型凭训练时的记忆回答。这一级的典型失败是:你说的每个字它都懂,但它不知道你是谁、你在什么场景、你要什么格式。

第二级,更好的上下文(线性上下文)。把相关材料按顺序贴进去。比第一级强,但它的结构是一条线——遇到需要"分角色、分层次"的任务,线性结构就会打结。

第三级,好的上下文(目标导向)。上下文开始围绕"要达成什么"来组织,而不是围绕"我有什么材料"来堆。

第四级,高级上下文(角色化)。给不同的参与者分配不同的角色和信息权限——谁负责检索、谁负责写、谁负责审。这一级已经不是提示词了,是组织设计。

第五级,语义蓝图(semantic blueprint)。这是作者认为的天花板。它不再把上下文当成"一段文字",而是当成一张结构化的语义图:动词是根节点,语义角色是子节点,谁对谁做了什么、在什么条件下做,全部显式画出来。

书里为了把这件事做实,用了 SRL——语义角色标注。它带着读者用 Python 写了一个可视化函数,把一句话解析成一棵 stemma 树(一种语言学里的句法树)。代码里有这么一段,讲怎么定位根节点:

由于动词是整个结构的中心,因此我们将其放置在画布的顶部中央附近……我们需要动态计算这些角色的位置。首先统计角色的数量,然后在水平线上生成一组等间距的 x 坐标值列表。

这段代码本身没什么稀奇。但作者想说的是一个更重要的判断:上下文的质量,取决于它的结构,而不是它的长度。

这句话我想多说两句。现在很多人做 Agent 的直觉是"多喂点",把能塞的都塞进上下文窗口,指望模型自己从里面捞。这在简单任务上能用,一旦任务变复杂就会崩——不是因为窗口不够大,而是因为信息之间没有关系,模型只能靠猜。而语义蓝图做的是相反的事:它先把关系画出来,再往里填内容。填的内容可以少,但关系不能缺。

我的评价是:这个"五级"的划分很漂亮,也很实用,但它有一个隐含前提——你得先有能力把任务拆成语义结构。这个能力对写代码的人是自然的,对不写代码的人是一道很高的门槛。书里没有充分讨论这一点。

二、双 RAG:事实库和程序库,是两种东西

第三章是我认为全书最有实操价值的一章,它提出了"双 RAG":把知识库拆成两个——事实 RAG(factual RAG)和程序 RAG(procedural RAG)。

书里对程序库的定义说得很准:

这是我们实现过程化 RAG 系统的核心部分,因为在这里我们引入的是过程性指令,而不仅仅是静态知识。

"过程性指令"和"静态知识",这两个词一分开,很多 Agent 的失败就有解释了。

举个具体的例子。你要做一个客服 Agent。用户问"我的订单为什么还没到"。事实 RAG 能告诉你:这个订单的物流状态、预计到达时间、仓库位置。但用户真正想要的不是这些数据,而是"现在该怎么办"——是要催单、要退款、还是要重新发货?这个"该怎么办",是程序知识,不是事实知识。

很多 Agent 在这个地方翻车,原因就是:它们只有事实库,却指望模型自己从事实里推出流程。模型能推,但推得每次都不一样,而且经常推错。程序 RAG 干的事,是把"该按什么步骤处理"也变成可检索的内容,直接喂给模型。

书里把上下文库的每一条都设计成三部分:一个在 Pinecone 索引里唯一的 ID、一段说明"这项蓝图用途和风格"的描述、以及一个精确的结构。这个设计很朴素,但它逼着你在入库之前先想清楚:这条知识到底是"什么",还是"怎么做"?想不清楚,就没法给它写描述,也就没法被检索到。

还有一个细节我觉得特别值得记:书里讲早期版本的缺陷时提到,系统原本"以原始 JSON 字符串的形式返回蓝图数据",后来修成统一包在一个固定的键里:

修复方法是将输出包装在一个带有固定键 blueprint_json 的字典中。这就在代理之间创建了一个稳定的数据契约。

"稳定的数据契约"——这六个字,是整本书里最工程化、也最容易被忽略的一句话。多智能体系统崩掉,十次里有八次不是模型不聪明,而是两个 Agent 之间的接口不稳定。上游改了一个字段名,下游还在按老字段找,链路照样跑通,最后给你一个读起来通顺但完全错的答案。这种 bug 最难查,因为它不报错。

三、"玻璃盒":为什么黑盒系统会让你退化成 API 消费者

这本书最有态度的部分,是它对"黑盒 vs 玻璃盒"的论述。作者在附录 A 里写了一段话,我觉得是全书的核心论点:

在使用黑盒系统时,工程师往往只能被动地使用 API,无法了解其背后的推理过程,也无法对工作流程、安全机制或知识检索方式进行有效控制。因此,调试过程就变成了反复尝试和调整提示语的漫长过程。

这段话戳到了一个很多人正在经历的痛处。现在大量的 Agent 框架,本质上都是黑盒:你把模型、工具、提示词塞进去,它自己在里面转,你不知道它转到第几圈、为什么停、在哪一步把关键信息丢了。

出了问题怎么办?只能改提示词,再跑一遍,看结果有没有变好。这就是作者说的"反复尝试和调整提示语的漫长过程"——说白了,是在用玄学对抗不确定性。

书里的解法叫"玻璃盒":把执行轨迹(execution trace)暴露出来,让每一步的推理都能被看见、被定位。作者说,这能让你"精确定位失败发生在哪里——是在规划、在知识检索、在净化、还是在生成"。

这个区分,我认为是这本书和市面上大部分 Agent 书最大的不同。大部分书在教你怎么让 Agent"更聪明",这本书在教你怎么让它"出错时你能查得出来"。前者是 demo 思维,后者是生产思维。

书里给的架构也很具体。整个引擎分四个阶段运转:启动(Initiation)、规划(Planning)、执行循环(Execution Loop)、收尾(Finalization)。入口是 context_engine() 函数,书里说它是"整个编排器的核心,掌控整个流程,意图在这里被翻译成行动"。

而具体干活的是几个分工明确的 Agent:Librarian(图书管理员,负责检索)、Writer(写作者,负责生成)、Summarizer(摘要者,负责压缩)。这个分工看起来简单,但它体现了一个原则——职责分离才有可替换性。如果所有事都塞给一个大 Agent,你既没法单独优化某一环,也没法单独定位某一环的问题。

书里第五章把这些东西往生产上推了一步:加 try...except、把 print 换成专业日志、拆成模块、做本地导入、保证模块独立。这些改动听起来琐碎,但它们恰恰是"能跑"和"能上线"之间的那道门槛。

四、摘要代理:把"省 Token"翻译成"省钱"

第六章讲了一个很有意思的设计——专门加一个摘要代理(Summarizer Agent)来做上下文压缩。

这个设计的动机非常现实:上下文越长,Token 越贵,延迟越高。但它的解法不是"少喂点",而是"专门派一个 Agent 去决定该喂什么"。书里把这叫做"上下文削减"(context reduction),并且明确说它是"成本管理的基础"。

我很欣赏这一章的写法,因为它做了一件很多技术书不愿意做的事——把技术效率翻译成商业价值。它没有停在"这样能省 Token",而是往下走了一步:省下的 Token 意味着什么?意味着单次调用的成本下降,意味着可以承受更高的并发,意味着这个功能从小规模试点走向全面铺开的账能算得过来。

这个视角很重要。因为在公司里推动一个 Agent 项目,你面对的不是"模型效果好不好",而是"这笔钱花得值不值"。一个能说清成本的架构,比一个只讲效果的架构,更容易活下来。

书里还有一个说法我特别喜欢,叫"黑盒与玻璃盒"之外的另一个隐喻——它把整个系统分成"机房"(engine room)和"控制台"(control deck)。机房负责跑,控制台负责让人看得懂、管得住。这个二分法很朴实,但它把"可运维性"放到了和"可运行性"同等的位置。

五、治理:为什么"策略"才是最终的上下文

第八章是我觉得全书思想密度最高的一章,也是它从"技术书"升格成"架构书"的地方。

作者提了五条原则,其中两条我认为是这本书真正的洞见。

第一条:AI 系统必须不断适应现实。这句话听起来像废话,但它针对的是一个具体的幻觉——很多人以为把 Agent 搭好就完事了。现实是,业务在变、数据在变、用户在变,一个不持续适配的 Agent,三个月就会变得不可用。

第二条,也是我最认同的一条:自动化的上下文判断是有边界的。作者的原话是"自动化情境判断的局限性"。这句话的意思是:你不能指望模型自己判断"这条信息该不该给用户看"。它可以判断大部分情况,但总有一些边界情况,它判断不了,而且它判断错的时候你往往不知道。

所以作者给出的答案是——把策略(policy)作为最终的上下文。也就是说,最终的裁决权不交给模型,而是交给一条人定的、写在代码里的规则。书里管这个叫"策略驱动的元控制器"(policy-driven meta-controller)。

这个判断我认为非常有分量。因为在"AI 能不能自己管自己"这个问题上,行业里有两种声音:一种是"给它足够的对齐,它就能自己判断",另一种是"永远要有人在环里"。这本书站的是第三种立场:让 AI 处理绝大多数情况,但在关键闸门上,装一条人写的硬规则。

这个立场的好处是它可落地。你不需要等模型变得完美,也不需要放弃自动化,你只需要在若干个"绝对不能错"的点上,加一道确定的门。

书里还讲了一个具体的测试案例,我觉得很能说明问题。它故意造了一份"有毒"的文档——一份标准的保密协议模板,中间夹了一段虚构但逼真的证词,里面既有脏话,也有一个典型的提示注入短语。作者说这个设计的目的,是"测试我们系统的审核与净化层的极限"。

这个测试思路很对:验证一个安全机制,不是看它在正常输入下表现多好,而是看它在恶意输入下会不会破。而"提示注入"这种东西,本质上就是把指令藏在数据里,让模型分不清"这是要我处理的内容"还是"这是要我执行的命令"。这道防线,靠提示词是守不住的,只能靠架构。

六、它的短板

这本书技术上很扎实,但问题也很明显,我按严重程度排一下。

第一,它严重依赖"跟着敲代码"这一种读法。1042 屏里,大量的篇幅是代码、代码解释、代码的输出截图。如果你是"想理解思路"的读者,会读得非常累——因为每隔两段就要跳过一大块代码,而不跳又会淹没在实现细节里。它本质上是一本"工作手册",不是一本"思想书"。作者显然也意识到了这点,所以在每章开头都写了架构说明,但架构说明的篇幅和代码比,严重失衡。

第二,它的技术栈绑得太死。书里的例子几乎全部依赖 Pinecone 做向量库、依赖特定的 LLM API、依赖一套固定的 Python 生态。这意味着两件事:一是你一换技术栈,书里大半的代码就用不了;二是这类内容的保质期极短,向量库的 API、模型的接口、框架的版本,一年之内大概率会变。(这一点尤其可惜,因为它讲的架构思想本来是可以脱离具体技术栈存活的,但被代码绑住了。)

第三,它回避了"效果怎么评"这个核心难题。全书讲了很多"怎么搭",但对"搭好之后怎么知道它好"讲得很薄。它提到了可观测性、提到了日志和指标(CPU、内存、请求延迟、错误率、Token 消耗、向量库查询性能),这些都是"系统健康度"的指标,但不是"回答质量"的指标。一个 Agent 跑得又快又稳,但答案全是错的,这套监控是发现不了的。而在真实项目里,这恰恰是最要命的问题。

第四,案例的说服力不够。书里用了三个案例:NASA 研究助手、法律合规助手、营销引擎。这三个案例的设计都挺巧妙,但它们都是"演示级"的——有清晰的输入、有预期的输出、有干净的语料。真实的业务场景是什么样?语料是脏的、需求是含糊的、用户是会问出你没想过的问题的。书里没有哪怕一个"我们上线之后踩到的坑"的复盘,这让整本书的可信度打了折扣:你很难判断这些架构在真实压力下到底站不站得住。

第五,双语对照的排版反而增加了阅读负担。中英逐段对照,看起来是照顾了两类读者,实际上让两种读者都不太舒服:读中文的要不断跳过英文,读英文的要不断跳过中文。而且译文质量并不稳定,有些地方明显是机翻的痕迹(比如把 "glass box" 译成"玻璃盒"没问题,但一些技术短语的译法前后不一致)。这算是出版层面的问题,不是作者的问题,但确实影响了阅读体验。

说完这些,我还是推荐它。原因很简单:市面上讲"怎么搭一个 Agent demo"的书太多了,讲"怎么让它在生产环境里活得下去、查得出来、算得清成本"的书太少了。这本书在后者这个方向上,是我目前读到的最系统的一本。它不完美,但它的不完美是"工程书的不完美"——细节太多、绑得太死、案例太干净——而不是"概念书的不完美"——空话连篇、无法落地。

Context Engineering for Multi-Agent Systems 核心知识图谱
核心知识图谱:上下文五级 → 双 RAG → 玻璃盒引擎 → 生产与治理

一句话总结:多智能体系统的胜负不在模型有多强,而在你喂进上下文的每一条信息是否结构清晰、接口稳定、边界可控——这三件事做不到,再强的模型也只是个更贵的猜测器。


阅读记录:《Context Engineering for Multi-Agent Systems》,Packt 出版,中英双语对照版,微信读书逐页翻阅 1042 屏,十一章读完,从语义蓝图读到生产化部署与策略治理。2026-11-03。