拓展阅读

Agent基础

执行循环、工具、状态、恢复和协议

阶段 512 项展开讲义正文全部展开

沿着对象与状态理解本章

把模型、宿主、工具画成不同泳道后,问“谁真正改变了文件”就有明确答案。跟踪每条返回消息,再判断需要继续调用模型、执行工具还是结束;不要把模型说完成当成环境已经完成。

下方图解的固定输入在“输入与适用条件”中声明。它用于解释本章机制,不与本章其他独立例子的数值暗中接续。

动态图解 · F22

把一个Agent任务拆成真正发生的几轮

同一句用户任务,为什么可能调用模型不止一次?

LLM生成下一步提议,宿主执行获准的动作,把结果再交给LLM。这是外层任务循环;每次模型调用内部还要经历逐Token生成。外层的一轮工具行动不等于内部生成一个Token,两种“循环”不能混用。

调用标识把某次工具请求与其结果连接的ID。
工具结果程序实际执行后返回的内容。
上下文本轮明确交给模型的信息,而非整个电脑状态。

输入与适用条件:构造的只读教学任务:文件config.txt含timeout=30。泳道展示职责边界,不声称调用了真实商业API;数据和动作顺序固定。

1 / 8 · 1. 用户任务:读config.txt中的timeout

第1步,共8步

窄屏可左右滑动图形,或点击“放大图形”。文字解释紧随图后。

把一个Agent任务拆成真正发生的几轮:1. 用户任务:读config.txt中的timeout用户宿主LLM文件工具用户任务:读config.txt中的timeout模型请求:任务+read_file工具定义模型输出:call_id=c1,path=config.txt宿主校验后读取文件工具结果:timeout=30下一轮输入:原任务+调用+结果模型回答:配置的timeout为30宿主显示回答;任务结束

模型尚未看到磁盘文件。先区分用户给的任务与环境真实内容。

未读取

默认静止。用“下一步”看完解释再继续;播放到最后一步自动停止。键盘聚焦播放器后,可用左右键逐步查看、空格播放/暂停。图中颜色辅助区分,含义同时用文字注明。

为什么需要

模型可以借助工具获得新证据,而不把一切都塞入参数。

怎样实现

按请求、校验、执行、结果回填、继续决策组织循环。

可能的代价与误解

忘记回填工具结果会让模型重复请求;把输出文本当执行证明会误报完成。

如何判断是否做对

对照每轮模型输入和工具日志,确认结果与call_id匹配。

从响应到决策循环

Agent把模型输出连接到真实环境,再把观察交回模型。ReAct研究推理、行动与观察交替;重要启发是行动取得新信息,新信息又修正下一步。它不要求生产系统公开全部内部推理,也不证明链条越长越好。[S052]

最小系统包含模型、工具、状态和循环控制。模型提出动作,程序执行并记录,控制器检查预算、权限和结束。框架封装这些职责,但不能让责任消失。[S053][S055]

# 厂商无关教学伪代码,不是任何SDK的完整接口
while not state.terminal:
    context = assemble(task, state, tools)
    proposal = model.generate(context)
    if proposal.is_final:
        verify_before_finish(proposal, state)
        break
    call = validate_and_authorize(proposal)
    result = execute(call)
    state.record(call, result)

真实实现还需要超时、取消、重试与持久化。最初可以简单,但副作用和恢复不能只靠模型“记住”。

Workflow与Agent如何组合

已知步骤的流程适合显式编排;依赖新观察才能决定的步骤适合动态决策。固定报表提取不必启用复杂探索;未知Bug调查则可能需要搜索、复现和回溯。两者可组合,外层流程限制阶段与权限,内层Agent探索未知。[S003][S125]

原创判断:在看到观察前,下一步是否已能可靠确定?能确定的部分尽量程序化;需要理解新证据的部分交给模型。任务稳定后,可以把反复有效的方法沉淀为代码和测试,而不是永远重复推理。

工具设计就是操作界面设计

工具要说明用途、输入单位、范围、结果与失败。太细会增加往返,太宽会增加权限和噪声。搜索结果应含路径、片段和截断标识;写入结果应说明实际修改,而非只表示请求已接受。[S058][S132]

search(query, root, glob, limit)比“搜索全部”更易控制。只返回文件名会导致重复读取,返回整个仓库又增加干扰。适当粒度需要按任务验证。

工具执行失败不能用空字符串冒充成功。区分无匹配、无权限、超时和语法错误,才能让模型采取正确恢复动作。自动执行器仍要验证模型参数,不应因为Schema合法就允许任意路径或命令。

对话、执行与环境三种状态

对话状态是可见消息和压缩信息;执行状态是调用、待审批和验证记录;环境状态是真实文件与远端变化。丢失对话不会自动回滚环境,程序重启也不意味着远端动作没发生。

原创例子:创建PR成功,但网络返回丢失。盲目重试可能创建重复PR。应先查询实际状态,再决定重试。幂等键、动作ID和结果查询能帮助处理,不能只写“不要重复操作”。[S062][S142]

Checkpoint保存可恢复点,长期记忆保存可复用知识。二者都持久化,却不是同一对象。恢复后若代码已变化,旧测试通过记录也必须重新判断。

反馈、反思与停止

Toolformer研究在训练中学习工具使用;Reflexion利用语言反馈影响后续尝试。一次会话总结不等于参数训练,模型自我批评也不保证正确。[S056][S057]

“nested_paths测试在输入src/a.py时错误保留”比“请更认真”更可行动。终止状态应包含成功、证据不足、权限缺失、环境失败和预算耗尽,避免模型为交终稿伪装完成。

MCP与A2A的边界

MCP连接Host、Client和Server,区分工具、资源与提示。协议标准化交互,但不保证服务可信、权限继承或模型一定调用。版本、认证与能力协商仍需核验。[S059][S060]

代码执行可先筛选、聚合大工具结果,减少搬进上下文的内容;这需要执行环境与安全边界,并非所有MCP客户端自动支持。A2A关注Agent之间的发现和任务通信,与工具接入不是同义。[S061][S063]

自检:Checkpoint能否撤回已发送消息?不能,恢复状态与撤销副作用不同。多个模型互相同意就可靠?不一定,它们可能共享同一错误前提。

逐项中文讲义

保留拓展阅读目录编号与A/B/C优先级;每项包括机制解释、边界与原创练习。

A5.1 · 推理、行动与观察

对应资料:ReAct

ReAct把推理与行动交替组织,行动获取新信息,观察帮助修正后续判断。它区别于只在固定输入中一直生成答案。

关键是信息闭环,而非必须输出某种长格式。行动可以失败,观察可能不完整,模型应依据真实结果继续,而不是沿原计划假装成功。

运行示例 · R05-01

ReAct中的观察改变下一步

输入与条件。第一次搜索foo返回无结果。

步骤与对象内部动作中间结果 / 新状态
1推理/行动提出检查符号名与目录不是马上编造foo实现。
2观察目录列表发现名称为foo_v2获得新证据。
3下一步读取foo_v2定义行动由观察更新。

把过程连起来。循环的价值是接入环境反馈,不是把三种标签写在回答里。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:对一个未知函数错误先搜索,再读定义,再运行最小测试。每一步写出新增事实与被排除假设,指出什么时候没有必要继续探索。

完成标准是能解释行动如何减少不确定性。工具数量和循环轮次不是能力指标,若没有新证据,反复推理可能只是浪费。

拓展阅读目录事实依据 [S052] · 练习与工程推导为本书独立编写。

A5.2 · 构建Agent的实践方法

对应资料:A Practical Guide to Building Agents

实用Agent指南将模型、工具和指令作为基本组成,并讨论何时需要动态决策。Agent适合某些复杂流程,但不是所有自动化都需要LLM控制每一步。

先明确目标与可验证结果,再选择模型和工具。低风险确定步骤可程序化,未知判断交模型,高风险副作用保留边界。

运行示例 · R05-02

先确定一个最小可交付任务

输入与条件。目标只读报告测试失败原因,不自动修改。

步骤与对象内部动作中间结果 / 新状态
1工具集合read/search/test只读或受控不提供提交权限。
2成功条件定位失败断言与相关代码不能只泛泛建议重试。
3失败条件测试环境无法运行如实报告缺口并给已取得证据。

把过程连起来。从边界清楚的小任务开始,比先搭多角色平台更容易验证。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:将一个工作任务拆成确定步骤与需要理解的新信息,构建最小可行循环。逐项说明新增机制防止哪一种真实失败。

完成标准是有可执行闭环而非复杂架构图。框架和指南提供起点,真正的工具语义、状态和验收仍由应用设计。

拓展阅读目录事实依据 [S053] · 练习与工程推导为本书独立编写。

A5.3 · Agent组件与工作流

对应资料:Agents Documentation

Agent文档组织模型、工具、状态与工作流等能力。产品入口会演进,学习时应关注职责,而非把某一界面的全部名称记成永久标准。

应用需要决定信息来源、工具作用域、失败处理和完成条件。托管能力减少部分基础设施工作,却不自动理解用户业务规则。

运行示例 · R05-03

计划节点不等于执行节点

输入与条件。计划写“运行测试”,执行日志却没有测试事件。

步骤与对象内部动作中间结果 / 新状态
1计划表示意图不是事实。
2工具调用产生执行请求也未必完成。
3结果退出码与日志对应当前版本才是验证证据。

把过程连起来。状态机需要明确区分planned/requested/completed。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:为文件调查Agent列出输入、允许工具、状态、输出与异常。再标出哪些交平台、哪些必须自己实现,避免责任空白。

完成标准是理解API调用之外的执行系统。一个模型响应成功只说明某次调用结束,不说明外部目标已达到。

拓展阅读目录事实依据 [S054] · 练习与工程推导为本书独立编写。

A5.4 · 运行器、会话与追踪

对应资料:OpenAI Agents SDK

Agents SDK提供Agent、Runner、会话、交接与追踪等抽象。Runner组织循环,Agent描述配置,工具承担动作;抽象帮助实现,但不能替代需求与安全边界。

会话历史、业务状态与外部环境要分开。SDK保存消息不代表远端副作用可回滚,Trace也不是业务数据库。

运行示例 · R05-04

同一任务的Runner与Session各持有什么

输入与条件。任务T由runner执行,session保存历史,trace记录时间。

步骤与对象内部动作中间结果 / 新状态
1Runner推进调用与工具循环决定何时继续/结束。
2Session保存需要跨轮引用的状态不等于所有外部数据的真相。
3Trace记录调用、工具与耗时用于排查,不自动恢复业务副作用。

把过程连起来。运行、持久化与观测不能只用一个“会话”概念代替。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:用纸面接口设计一个只读研究Agent,列出正常结束、无结果、限流和取消路径。先用假模型与假工具测试控制流,再接真实模型。

完成标准是理解框架背后的状态机。不要在尚未定义失败语义时直接堆叠Handoff和多Agent,否则调试会更困难。

拓展阅读目录事实依据 [S055] · 练习与工程推导为本书独立编写。

B5.5 · 在训练中学习工具使用

对应资料:Toolformer

Toolformer研究让语言模型通过训练学习何时以及如何使用外部工具。它属于能力训练路线,不等于给普通模型列几个工具就复现同样机制。

工具可以补充计算与外部信息,但调用是否有益取决于选择、参数和结果解释。模型可能使用工具却仍错误理解返回。

运行示例 · R05-05

训练工具使用时,外部结果何时进入样本

输入与条件。文本需要精确算17×19,候选工具返回323。

步骤与对象内部动作中间结果 / 新状态
1无工具模型可能猜数错误风险存在。
2插入调用与结果示例含计算器请求及323后续文本可条件化于真实结果。
3训练选择比较调用对目标预测的帮助不是所有位置都必须调用工具。

把过程连起来。工具学习改变何时/怎样请求外部能力;323由算术验证。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:比较心算、计算器和资料检索三种任务,判断何时工具减少不确定性,何时只是增加往返。设计结果验证,而不只检查调用发生。

完成标准是区分训练得到的工具能力与应用层工具协议。工具使用频率高不是更聪明,关键是必要调用能否改善最终任务。

拓展阅读目录事实依据 [S056] · 练习与工程推导为本书独立编写。

B5.6 · 语言反馈与任务反思

对应资料:Reflexion

Reflexion利用任务反馈形成文字反思,影响后续尝试。外部经验可以在不更新参数时改变行为,但反思文本本身可能错误。

失败总结应关联实际观察,而非泛泛“下次更仔细”。如果根因判断错,反思可能把错误固化为后续规则。

运行示例 · R05-06

反思必须保留失败的具体原因

输入与条件。上次修复仍用startswith,ab反例失败。

步骤与对象内部动作中间结果 / 新状态
1记录反馈ab不属于a目录却被排除具体证据。
2形成改进改为目录边界判断行动针对真实失败。
3下轮验证重跑ab反例与子目录正例不是只写“以后更仔细”。

把过程连起来。可复用反思应产生可测试的行为变化。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:对测试失败分别写一条有证据的经验和一条未经证实的猜测,标记它们的状态。下一次相似任务先验证适用条件再使用。

完成标准是把反思当待验证知识而非自我认证。重复生成相同总结也不形成独立证据,多轮反思不一定比一次实际测试更有效。

拓展阅读目录事实依据 [S057] · 练习与工程推导为本书独立编写。

A5.7 · 面向Agent设计工具

对应资料:Writing Effective Tools for Agents

工具设计要让模型知道用途、边界、输入单位和返回语义。名称模糊、参数重叠或结果冗长会增加误用与上下文成本。

过细工具导致多次往返,过宽工具扩大权限并难验证。应围绕典型任务提供适当粒度,并清楚报告截断和失败。

运行示例 · R05-07

工具返回10000行还是10条带来源结果

输入与条件。任务需要最近失败的构建记录。

步骤与对象内部动作中间结果 / 新状态
1筛选服务端限制相关状态与时间减少无关内容。
2返回10条记录附ID、时间、错误、截断标记仍可回取原文。
3不足用户需要更早记录分页或按ID补取,不谎称已给全部。

把过程连起来。压缩工具输出的关键是保留任务信息和恢复入口。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:比较返回所有日志与返回相关错误、命令、退出码和完整日志位置的工具。检查模型是否仍能追溯原证据,是否减少重复读取。

完成标准是用任务成功和误用率评价接口,而非只看函数签名美观。工具描述不能替代执行器对路径、参数和副作用的实际检查。

拓展阅读目录事实依据 [S058] · 练习与工程推导为本书独立编写。

A5.8 · MCP的作用与边界

对应资料:MCP Introduction

MCP为模型应用接入外部能力提供标准化交互。它不是一个模型,也不是所有工具必然可用的保证,更不自动解决授权。

客户端必须支持协议和能力,服务器必须提供实现,Host决定如何向模型暴露。连接成功与模型真正调用是不同状态。

运行示例 · R05-08

装上MCP服务器不等于模型已经能用

输入与条件。服务器启动成功并监听本地端口。

步骤与对象内部动作中间结果 / 新状态
1连接客户端完成协议初始化只是通路建立。
2发现tools/list取得工具定义模型未必收到。
3暴露授权宿主挑选本轮允许的工具此后才可能生成可执行提议。

把过程连起来。连接、发现、可见和授权是四道不同门。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:画本地Agent、MCP客户端和文件服务器之间的关系,标出发现工具、发起调用和返回结果。再模拟服务器可访问但工具未暴露的情况。

完成标准是能定位连接、能力发现、权限和模型选择分别在哪层失败。不要把“支持MCP”当作一项能自动提升所有任务的模型能力。

拓展阅读目录事实依据 [S059] · 练习与工程推导为本书独立编写。

A5.9 · MCP主机、客户端与服务器

对应资料:MCP Architecture Overview

MCP架构区分Host、Client与Server,并组织工具、资源与提示等原语。工具执行动作,资源提供内容,提示提供可复用交互结构,职责不同。

协议版本、传输、认证和能力协商可能影响互操作。服务端返回的数据仍需按可信边界处理,不因通过标准协议就成为高优先级指令。

运行示例 · R05-09

Host、Client、Server各自处理哪条消息

输入与条件。编辑器内运行Agent,要读MCP文件服务。

步骤与对象内部动作中间结果 / 新状态
1Host管理用户任务与模型决定是否提供工具。
2Client维护协议连接与请求ID发送tools/call。
3Server执行已授权读取并返回不自动决定用户整体任务。

把过程连起来。协议角色与LLM角色不是一对一同义词。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:为一个代码文档服务选择哪些作为资源、哪些作为搜索工具、哪些只是提示模板。再明确用户允许读取不等于允许写入。

完成标准是理解协议如何降低集成摩擦,同时识别它不负责业务正确性、数据新鲜度和安全授权的全部问题。

拓展阅读目录事实依据 [S060] · 练习与工程推导为本书独立编写。

B5.10 · 通过代码组合工具

对应资料:Code Execution with MCP

通过代码执行组合MCP工具,可以在执行环境中筛选、聚合大结果,再把必要信息交给模型。这减少上下文搬运的思路不等于所有客户端自动支持。

执行代码增加灵活性,也增加环境、权限与调试负担。不能因为少传Token就忽视脚本错误或敏感数据流向。

运行示例 · R05-10

用代码组合三次查询,哪些数据不必进模型

输入与条件。程序取3页数据,每页100条,只需统计failed数量。

步骤与对象内部动作中间结果 / 新状态
1代码执行在受控环境拉取与遍历300条不必全部转成对话。
2聚合failed计数分别2、3、1总6。
3反馈返回6、查询范围及错误/分页状态不能漏掉某页失败还称完整。

把过程连起来。确定性聚合可减少上下文,但环境权限、来源和完整性仍须保留。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:假设工具返回一万条记录,比较全部传模型与先程序筛选相关项。保留查询条件、计数和原始结果位置,避免过滤后无法审计。

完成标准是同时评价信息保留、程序正确性与成本。代码聚合是工程选择,不应被写成无需验证的万能压缩方式。

拓展阅读目录事实依据 [S061] · 练习与工程推导为本书独立编写。

B5.11 · 检查点、恢复与状态持久化

对应资料:LangGraph Persistence

持久化与Checkpoint保存执行状态,使中断后可以继续。它不自动复制所有环境,也不等于外部副作用回滚。

恢复需要知道保存点对应哪个代码版本、哪些动作已发生、哪些只是计划。网络超时后若远端操作已成功,重试可能重复。

运行示例 · R05-11

检查点后追加的事件也要恢复

输入与条件。检查点记录到10,随后事件11写成功,12测试通过。

步骤与对象内部动作中间结果 / 新状态
1加载点先恢复状态10不能直接当最新。
2应用后缀重放11/12到本地状态得到最新已验证状态。
3外部操作不因重放11再写一次文件重放与重执行分离。

把过程连起来。恢复等于检查点加未包含事件,不是只读一份摘要。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:模拟创建记录后响应丢失,设计动作ID、状态查询和幂等策略。恢复时先核查事实,不把“没收到成功”当“没执行”。

完成标准是区分消息历史、控制状态和真实环境。选择持久化库不能替代对重放、取消、并发和副作用语义的设计。

拓展阅读目录事实依据 [S062] · 练习与工程推导为本书独立编写。

C5.12 · 跨Agent通信协议

对应资料:Agent2Agent Protocol

A2A面向Agent之间的发现、任务与消息交互。它与MCP工具接入有不同重点,不是给同一协议换个名称。

跨系统协作还要处理任务状态、权限、身份、结果和失败。标准消息结构不保证对方Agent的结论正确或执行符合本地要求。

运行示例 · R05-12

跨Agent收到结果不等于结果可执行

输入与条件。Agent B返回“部署v8”,父任务只允许研究。

步骤与对象内部动作中间结果 / 新状态
1协议层消息传输与身份关联成功通信完成。
2业务层检查是否在原任务范围研究不授权部署。
3结果使用把建议作为参考,不执行写操作父级承担权限与整合责任。

把过程连起来。A2A互操作不替代授权和真实性判断。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:一个研究Agent委派另一个Agent处理独立材料,明确输入范围、返回证据和结束状态。再模拟超时、部分完成与拒绝授权。

完成标准是因真实互操作需求选择协议,而不是为单进程小任务增加跨服务架构。协议解决通信契约,业务验收仍需自己定义。

拓展阅读目录事实依据 [S063] · 练习与工程推导为本书独立编写。

记录保存在本机浏览器。

输入关键词即可检索。

↑ ↓ 选择 Enter 打开Esc 关闭 · 仅本地搜索

阅读设置

阅读设置仅保存在本机浏览器,不上传任何数据。