内容

最近读完了《深入理解AI Agent:设计原理与工程实践》。这本书从工程视角,把上下文、记忆、工具、Coding、评估、后训练、持续进化与多 Agent 协作等内容串联起来。如果你希望理解当下 Agent 的底层运行逻辑,非常值得通读学习。
全书开篇给出公式:
Agent = LLM + 上下文 + 工具
深入之后会发现,生产级 Agent 的范畴远不止于此,还需要真实环境、Harness、结果验证、错误恢复、评估体系、进化回路、协作治理等配套能力。下面按照原书章节顺序,整理我认为最重要、也最值得直接迁移到实践中的核心要点。虽然具体技术会不断更迭,但优秀的设计理念能够跨越技术周期,长期发挥作用。本文仅做要点摘录,想要深入学习建议阅读原书。
第一章:Agent基础知识

Agent的本质是循环,而不是一次生成
普通模型调用仅完成“输入—输出”的文本生成,Agent 的核心是观察 — 决策 — 行动 — 新观察的持续循环。Agent 通过行动作用于环境,获取真实反馈,以此迭代调整后续动作。如果缺少环境反馈与纠错机制,即便具备工具调用能力,也只是普通文本生成器。
环境不属于Agent,真实状态也不等于模型上下文
LLM 是决策核心,上下文是模型可感知的局部信息,工具是读写、变更外部世界的接口。外部环境包含文件、数据库、网页、用户、物理场景等全域信息。模型上下文仅是环境的局部投影,不等于环境本身与真实业务状态。
Harness决定Agent能否可靠落地
生产级 Harness 并非简单封装模型调用,而是负责上下文构建、工具暴露、权限约束、结果校验、循环检测、异常容错与任务终止的完整运行体系。模型决定 Agent 的决策能力上限,Harness 决定其能力是否可控、可恢复、可审计,是生产落地的关键保障。
工作流和自主 Agent 无先进落后之分
固定工作流适合流程稳定、合规要求高、错误成本高的确定性任务。自主 Agent 适用于路径无法预先定义,需要依据环境反馈动态规划的复杂任务。落地遵循轻量化原则:单次调用可解决就不搭建 Agent,固定流程可覆盖就不启用自主循环,仅将不确定的动态环节交由 Agent 处理。
模型自称完成不等于任务真正完成
模型输出的“测试通过”、“邮件已发送”、“退款已完成”只是自然语言声明,不能等同于真实结果。任务闭环必须依靠日志、回执、数据库状态等客观环境数据核验。校验模块需要独立读取真实业务状态,不可直接把模型输出当作任务成功依据。
第二章:上下文工程

上下文质量通常比模型升级更重要
模型无法利用自身看不到的信息。项目约束、业务规则、实时状态、工具反馈,如果不能在合适时机送入上下文,即便更强的模型也只能主观推测。很多所谓“模型不够聪明”的问题,本质是信息供给不足。
Prompt Cache 属于架构约束,而非单纯的成本优化
稳定全局信息放在上下文前缀,动态任务、状态、新增观察向后追加。工具与 Skill 定义尽量置于尾部,避免随意调整顺序。前缀一旦发生变更,缓存就可能失效,因此缓存机制会反过来约束 Prompt 的语义结构。
System Prompt 类似员工手册和 SOP
高质量 System Prompt 需要明确角色、目标、边界、可用能力、工作流程和完成标准,切忌堆砌零散禁令。业务规则应由业务负责人定义,不能完全交由模型依靠“常识”自行补全。
Skill 实现上下文的渐进式披露
常驻上下文仅保留 Skill 的名称、用途、触发条件,只有触发使用时,才加载完整工作流与参考资料。工具定义“可以执行哪些操作”,Skill 定义“应当如何完成一类任务”。这套分层设计可以降低 Token 开销与模型注意力消耗,也便于领域流程的维护迭代。
更长的上下文不一定带来更好效果
冗余日志、工具大段输出、过期信息会挤占模型对关键约束的注意力。确定无用的噪声应直接剔除,尚有价值的历史内容做压缩留存,而输出量大的探索类任务,优先使用隔离上下文。上下文工程追求的不是信息总量最大,而是有效信息密度最高。
第三章:用户记忆和知识库

保存记录不等于构建长期记忆
原始对话中充斥大量局部上下文、冗余信息与无效内容。长期记忆聚焦的是对后续任务有价值的事实信息,包括记录对象、发生时间、信息来源、置信度以及有效状态。原始交互轨迹属于不可篡改的原始证据,而长期记忆是可修订的派生知识,二者不可混淆。
交互轨迹、长期记忆与业务状态需要分层隔离
交互轨迹服务于审计与复盘,长期记忆用于用户个性化能力与跨任务知识复用,而订单、余额、权限这类业务状态,必须由权威业务数据库负责维护。自然语言记忆不能充当真实业务状态数据源,也不能为了整理知识,去篡改原始历史证据。
RAG的可靠基线方案是混合检索
稠密检索擅长处理语义改写类查询,稀疏检索更适配产品编号、错误码、人名等精确词条。将两类检索结果合并召回,再通过重排序模型(Reranker)做结果排序,效果通常优于单纯依靠向量相似度检索。另外文本分块、元数据、权限过滤同样会显著影响最终检索质量。
相似案例集合无法自动沉淀为知识
Top‑k RAG 只能召回少量相似样本,既难以开展可信的全局统计分析,也很难挖掘并未在单个案例中显式体现的共性边界条件。搜索解决的是信息 “找得到” 的问题,知识工程则要完成信息的结构化、对比分析、归纳提炼、冲突消解与动态更新。
知识更新应当如代码合并一样受控
一套健壮的数据链路为:不可变证据 → 可变知识 → 派生索引。由提案模块(Proposer)基于新证据生成最小范围的知识变更,审核模块(Reviewer)对照原始证据与现有知识库做独立校验,审核通过后再更新索引。生产环境下的知识库,不能由模型单次反思就直接覆盖改写。
第四章:工具

工具是 Agent 的行动契约
工具应围绕智能体目标进行设计,而非直接暴露后端原始 API。工具既要支持模型完整表达执行意图,也需将非必要的内部步骤封装到确定性代码逻辑中。
工具描述需优先明确适用与禁用场景
仅说明工具能力,仍会导致模型在非适配场景下发生调用。高质量的工具描述应覆盖适用目标、前置条件、禁止边界、参数示例、返回结构、潜在成本与失败语义。工具调用发生误用,应优先优化接口描述,而非直接升级模型。
参数的保真决定 Agent 能否构建正确因果关系
若模型传入参数 A,执行层却暗中修改为 B,后续环境观测结果将与模型预期产生偏差。当必须执行参数归一化、默认值注入、容错转换等处理时,需显式标注接收参数、实际执行行为及转换缘由。
高风险动作需独立审核与环境校验
主 Agent 仅输出结构化调用请求,由独立 Sidecar 或策略引擎依据工具名称、入参、权限、环境状态完成审批。付款、删除、消息推送、内容发布等高风险操作,需支持预览、人工确认或两阶段执行,操作完成后重新核验环境真实状态。
幂等、取消与状态查询为一等工具语义
面对网络超时,系统需区分操作未执行或是操作已执行但响应丢失。写操作必须具备幂等键、任务 ID、状态查询能力以及明确的取消语义。具备外部副作用的非幂等动作,不能因状态未知而直接盲目重试。
第五章:Coding Agent 与通用 Agent

Coding Agent 是开放任务中的通用 Agent 原型
代码能力支持文件读取、API 调用、数据转换、结果校验以及新工具生成,就能覆盖大量无法预先枚举的任务。该结论仅适用于开放数字环境,并不代表高风险垂直业务可直接开放完整编程能力。
少量可组合原语即可衍生广泛能力
解释器、Shell、read、write、edit、glob、grep 相互组合,即可形成庞大动作空间,满足业务场景执行需求。因此工具无需无限制扩张,重点应聚焦原语的可观测性、可验证性、可回滚能力,同时保障其运行于受限环境。
Coding Agent 的优势很大程度来源于软件工程反馈
测试、编译器、类型检查、Linter、截图、Git diff,可为 Agent 提供快速、结构化、可复现的环境真实反馈。Coding Agent 的能力成熟,不仅源于模型代码能力提升,同样得益于软件工程提供了更完备的运行框架(Harness)。
错误恢复机制需配套熔断逻辑
API、工具、上下文、控制流产生的各类错误,应采用差异化恢复策略。同一工具及参数持续失败、高频切换备用模型、在错误链路中持续调用 LLM,均可能触发死亡螺旋。重试、降级、恢复分支均需配置资源预算与终止条件。
通用执行环境需警惕“致命三角”
当系统同时涉及私有数据、不可信内容和对外输出通道时,提示注入有可能造成真实数据泄露。默认断网、隔离文件与凭据、约束资源开销,再叠加危险命令语义审计,是开放代码能力的必要前提。
第六章:交互——观察与动作空间的扩展

回合制仅为训练假设,并非真实世界交互
真实世界场景下,用户追加消息、后台任务完成、网页内容变更、机器人持续移动等行为均会发生。系统需明确定义模型思考阶段产生的事件如何纳入执行轨迹,同时界定哪些事件可等待、取消或抢占当前任务。
主动 Agent 依赖事件推送机制
轮询仅可周期性获取环境变更,对真实世界的感知存在间断性。通过 Hook、消息队列、定时任务、心跳及外部消息通道,在环境发生变更时唤醒 Agent,基于事件驱动实现持续的结构化输入。
异步 Agent 需具备生命周期与安全点机制
异步工具将直接返回 task ID,后续通过 progress、completed、failed、cancelled 等事件更新执行状态。系统仅在保障事务一致性的安全点执行抢占操作,被中断任务需留存可恢复现场。
实时交互需实现快慢路径分工
语音与 GUI 场景中,大模型无法同时满足即时响应与深度推理两类诉求。前台负责快速处理、状态确认、交互打断,保障交互连续性,后台负责执行复杂任务。前台可返回 “已收到,正在处理” 类提示,不可在后台任务完成前输出结果承诺。
世界模型无法替代重新观测
GUI 及机器人均采用短步执行模式:可生成复杂规划,但单次仅执行少量动作。执行完成后立即读取页面或传感器数据,获取环境最新状态。模型可对后续状态做预测,唯有真实环境观测才能确认实际状态。
第七章:Agent 的评估

评估对象为 Model + Harness
上下文、工具描述、内容压缩、权限、重试与校验策略均会影响输出结果。模型对比实验需固定 Harness,评估工程机制时则固定模型做消融实验。公开榜单结果不可直接等同于真实业务系统表现。
Pass@k 与 Passᵏ 面向不同评估目标
Pass@k 衡量多次尝试中至少一次成功,偏向表征能力上限。Passᵏ 衡量连续多次全部成功,更贴近业务可靠性诉求。以单次成功率 60% 为例,五次尝试至少一次成功概率约 99%,但连续五次全部成功仅约 7.8%。
最终状态、过程动作与传达信息需分开校验
操作是否真实生效属于最终状态,是否发生越权、跳过确认属于过程动作,是否向用户返回正确结果属于传达信息。三者必须分开校验,避免将 “执行错误但汇报正确”、“执行正确但汇报错误” 误判为任务成功。
确定性验证器优先级高于大模型评判
数据库状态、测试结果、文件内容、工具约束应优先使用代码判定。仅针对语言质量、解释完备度等难以自动化校验的场景,才采用规则集结合大模型评判的方案。因为模型评判本身存在长度偏好、风格偏好以及同源模型偏差等问题。
失败分析需定位首处因果错误
最终输出错误往往只是表象。应沿交互轨迹定位首个偏离正确路径的决策节点,区分根因属于检索、推理、工具调用、控制流还是表达层问题。问题修复后,同时执行边界样本集与回归样本集,验证缺陷被修复且原有正确行为未发生退化。
第八章:模型后训练

预训练、Mid‑training、SFT 与 RL 各司其职
预训练构建模型的基础表征,Mid‑training 补齐领域底层能力,SFT 让模型习得输出协议与典型行为,RL 基于环境奖励优化多步策略。这些手段并非由弱至强的递进式训练,而是作用于不同环节的技术工具。
是否开展训练应优先核查基础能力完备性
若大量采样下任务仍几乎无法达成,RL 将面临全零奖励,此时应当优先补齐基础能力或工具链路。若模型偶有成功但输出格式不稳定,可优先采用 SFT。只有模型能够生成多条可评分的执行轨迹时,才具备 RL 可学习的策略差异。
参数并非所有问题的默认载体
动态事实适合使用 RAG,语言可表达的流程适合 Prompt 或 Skill,精确规则适合程序,高维感知、风格和隐式策略才适合固化至模型参数。逻辑越偏向参数层,对应的影响范围、验证成本与回滚代价越高。
数据与环境的重要性通常高于算法选型
没有稳定重置机制、充足吞吐能力、真实任务分布和可信验证器,即便采用先进 RL 算法,模型也只会拟合噪声。训练环境需配置独立的预留任务,避免模型记住训练场景或利用模拟器漏洞。
奖励机制需同时兼顾结果与路径约束
仅对最终结果做奖励,模型可能采取删除测试、跳过校验等危险捷径来获取高分。仅惩罚违规行为,又会导致模型倾向于不作为。更好的方案是奖励有效任务结果,同时惩罚可被验证的违规路径,并确保存在可落地的合规成功路径。
第九章:Agent 的持续进化

保存经验不等于学习
原始轨迹只是证据,模型反思也只是候选解释。真正的学习需从多条成功与失败轨迹中提炼规律,验证新规则可优化后续任务,且不破坏已有能力。
反思不是证据,而是一次更新提议
模型可为任意输出生成通顺的事后解释,但可能偏离真实的因果关系。反思结果必须结合环境状态、对照轨迹、用户反馈及其他样本完成交叉验证,不可直接升级为生产规则。
经验知识库应采用“两阶段思路”过滤噪声
为了防止偶发成功或偶然失败污染知识,系统应先记录不可变的原始轨迹与单次运行分析,再通过离线的多轨迹聚类、对照与归纳,提炼出包含适用场景和证据来源的正式 Markdown 知识文档。
指令与 Skill 的更新应追求“最小 diff”与严格对照
将失败轨迹提升为系统提示或 Skill 时,应避免模型每次重写整篇文档。系统应生成作用域明确、带来源的局部规则补丁,并在“触发失败的边界集”和“正常工作的保留集”上通过回归测试,确保不引发退化。
Agent 不可修改自身根信任
校验器、核心安全策略、发布准入条件、审计日志、稳定备份及回滚通道,必须置于 Agent 权限边界之外。Agent 允许提交自修改提案,但不得同时生成测试、降低准入门槛并审批自身上线。
第十章:多 Agent 协作

多 Agent 在能引入新信息时才容易产生价值
多 Agent 真正优于单 Agent 的核心判据在于协作过程是否引入了单个 Agent 在生成时无法获得的新信息(如真实的代码执行反馈、视觉渲染或外部工具验证),而非盲目依赖同质讨论或增加步骤预算。
多 Agent 架构由上下文、拓扑两大维度定义
上下文支持共享或隔离模式,拓扑包含对等节点、管理节点、去中心化网络三类形态。共享上下文可完整保留信息细节,但易出现上下文膨胀与角色固化。隔离上下文适配并行作业与权限管控,同时依赖完备的任务封装与结果交互协议。
审核者必须具备独立证据来源
多 Agent 的核心价值不在于角色命名,而在于信息与权限是否真正分离。审核者需读取测试输出、渲染内容、原始素材或二次实现产物,且不得修改验证标准。若缺少外部独立证据的自我修正,甚至会将正确结果修改成错误。
并行竞速选取首个通过验证的输出
多个 Agent 可以同时尝试不同路径,系统只采纳首个经过校验器校验通过的结果,然后幂等结算并取消其他任务。若直接采信最先上报完成的 Agent 输出,会形成机制性激励,忽视验证的重要性。
多 Agent 协作本质属于组织与治理议题
多 Agent 体系会引入数据竞争、语义冲突、错误链式传导、责任边界模糊、同质化共识、循环爆炸等问题。群体系统的整体能力,取决于信息流转质量、分工合理性、对齐真实目标的激励机制、冲突仲裁能力、故障隔离手段与审计能力。
贯穿全书的五个设计模式
提议者—审核者
输出方不得评审自身产出。审核者必须掌握测试数据、环境状态、原始证据等外部信息,且无权修改验证标准。
渐进式披露
优先提供轻量化目录与触发条件,按需加载 Skill、工具、知识库及完整文本。避免将全部信息一次性注入有限注意力窗口。
原始证据只增不改
轨迹、事件、源数据尽可能采用追加写入模式。摘要、知识与索引允许更新,但必须支持回溯原始证据进行重判。
边界集 + 保留集
每一轮变更,既要验证待修复的失败样本,也要保障原有正确行为不发生退化。该模式可应用于 Prompt、工具、知识库、程序及模型训练场景。
最小 diff + 可回滚
单次变更仅改动核心变量,完整记录变更来源、预期效果与回滚点位。小步迭代的核心价值,是为 Agent 工程保留因果归因能力。
后记
这本书重构了我对 Agent 的认知,填补了诸多知识盲区。依托书中的理论与方法论,后续开展业务 Agent 落地实践将更有把握。期待读者也能从中获益,一起构建出更强大智能体吧!