本章建立全库共同语言。Agent 的最小分析单位是一次状态转移:策略读取状态并提出动作,环境执行后产生观察,控制器提交新状态并判断是否继续。循环能否收敛取决于动作是否改变环境、观察是否保留有效差异、终止条件是否可验证。
1. 闭环对象
1.1. 状态与动作
状态保存当前任务所需的可见事实,动作是策略对环境提出的结构化请求。动作只有经过校验和执行才产生环境变化。自然语言计划属于状态中的意图,不属于已经发生的动作。
状态还要区分权威事实与策略工作区。前者由环境读取、工具提交或用户确认产生,后者容纳假设、候选计划与待验证判断。模型可以自由修改工作区,却只能通过受控动作影响权威事实;这条边界使错误推理不会自动变成系统状态。
1.2. 观察与终止
观察应携带动作结果、错误类型和可继续决策的信息。终止由验证器判断,而非由模型自行宣布。预算耗尽、权限拒绝与目标完成是不同终止原因。
把一次运行记为轨迹 。其中 是控制器在第 步提交的状态, 是模型提出并通过校验的动作, 是环境执行后返回的观察。状态更新可写成 。函数 由 Runtime 实现,它决定哪些观察能成为已确认事实,哪些内容仍只是模型假设。
终止函数 同时读取任务状态与剩余预算 ,输出完成、失败、暂停或继续。把预算放入终止函数很重要:一个尚未完成但仍可推进的任务,与已经耗尽调用次数的运行具有不同事实状态,却都不能继续产生动作。
2. 系统边界
2.1. Agent与工作流
工作流的转移主要由预定图决定;Agent 的转移会根据运行时观察改变。实际系统可以混合两者,把稳定步骤固定,把开放决策留给策略。固定节点负责身份校验、审批和结果提交,开放节点由模型根据观察选择动作。判断一个节点是否需要 Agent 决策,应看下一步能否在设计时确定,而不是看该节点是否调用了大模型。
混合结构缩小了需要概率决策的范围。订单付款、数据库提交等关键业务仍走确定程序;搜索资料、定位故障等开放步骤允许策略根据新观察调整。模型因此不必承担事务协调,工作流也不必预先枚举全部未知分支。
2.2. 单轮与多轮
多轮调用并不自动构成 Agent。若后续调用不读取环境差异,系统只是重复采样。有效循环要求观察进入下一轮状态并影响动作分布。
多 Agent 没有改变这个基本单位。每个参与者仍然读取局部状态、提出动作并接收观察,只是环境中增加了消息和其他参与者。角色数量、对话轮数与自主程度不存在固定对应关系,因此本章先固定单个行动循环,多 Agent 的通信与协调留给独立知识库。
循环还要有明确的所有者。模型负责提出候选动作,控制器拥有状态转移权,执行器拥有环境操作权,验证器拥有完成判定权。一项实现可以让同一程序承载多个角色,但日志和接口仍要区分这些职责,否则模型生成的一句“已完成”会被误当成系统终局。
3. 一条具体轨迹怎样展开
3.1. 从需求到第一项可验证事实
设任务是“修复仓库中订单总价偶尔少算优惠的问题,并让相关测试通过”。初始状态包含用户要求、工作目录、未提交修改摘要、可用工具和预算。模型的第一个动作不应直接改代码,而是搜索总价计算与优惠字段的定义。搜索工具返回三个候选文件;控制器把文件路径和命中行作为观察提交,模型再读取最相关实现及测试。
读取结果显示生产代码在金额从字符串转换为整数后才乘折扣,而测试只覆盖整数金额。此时“转换顺序导致小数截断”仍是待验证假设。模型提出运行最小复现,执行器在隔离环境运行测试,观察返回输入 19.99、折扣 0.9、实际结果 17.1 与期望结果 17.99。到这一步,状态里才有足够证据把问题定位为计算顺序,而非数据库读取或显示格式。
3.2. 从修改到完成判定
模型随后提出补丁动作,将金额保持在最小货币单位中计算,并补充小数金额测试。补丁工具只改变指定文件,返回实际差异与新文件版本。控制器没有立即宣布完成,而是进入验证状态:目标测试检查复现路径,订单测试集检查公共函数的已有行为,类型检查确认接口一致。每个结果单独提交,失败会回到行动状态并保留已经确认的诊断。
完成谓词可以写为 : 表示复现用例通过, 表示相关回归测试通过, 表示类型检查通过, 表示工作树差异只包含授权范围内的文件。模型的总结属于交付消息,不属于 。若 失败,运行仍是“验证失败”;模型即使正确解释了修复原理,也不能转到完成状态。
4. 为什么需要分层分析
4.1. 模型错误与系统错误
模型可能选错工具、漏填参数或误读观察;接口可能把合法动作映射到错误资源;环境可能执行失败;验证器可能接受不完整结果。四类错误的表面现象都可能是“任务未完成”,修复位置却完全不同。只查看最终回复,无法知道模型是否提出了正确动作,也无法知道正确动作是否真正作用于环境。
AgentBench 在操作系统、数据库、知识图谱、数字卡牌、横向思维、家庭环境、网购与网页浏览八类交互环境中评测模型。论文把长程推理、决策和指令遵循列为主要障碍。跨环境结果表明,静态问答能力不能直接替代行动能力;环境接口和任务规则也会显著改变得分,因此模型与 Harness 必须分别记录。
4.2. 最小可审计闭环
一个可审计闭环至少能回答六个问题:运行开始时目标与约束是什么;模型当时看到了哪些已提交事实;它提出了哪个动作;执行器实际对哪个资源做了什么;环境返回了什么;哪个完成谓词使运行停止。缺少其中任一项,故障分析就会依赖事后猜测。
可审计不要求公开或持久保存完整内部推理。动作、参数、观察、状态差异、验证结果和面向操作的简短理由足以重建外部行为。这样既能控制敏感文本进入日志,也能让不同模型使用统一事件格式比较。
5. 本章正文
5.1. 循环状态机
1.1-行动循环与状态转移把运行过程写成显式状态机,讨论提交点、失败分类与停止条件。
正文把模型输出定位为候选动作,把控制器定位为状态所有者,并用超时写入、迟到事件和进程重启三个故障检验设计。重点是副作用已经发生时怎样如实记录,而不是靠重试掩盖未知状态。
5.2. ReAct及其边界
1.2-ReAct与闭环推理分析推理与行动交替的贡献,以及自然语言轨迹为何不能替代运行时状态。
两篇正文采用同一套符号,但职责不同。第一篇从控制器出发,研究合法转移、提交点、幂等和重放;第二篇从策略出发,研究推理、动作与观察为何要交替,以及 ReAct 在知识问答和交互环境中的实验说明了什么。读完后再进入工具、记忆和规划章节,可以避免把这些组件误写成一段不断增长的提示词。
章节材料以 ReAct、Reflexion 与 AgentBench 的原始论文和公开环境为参照。实验数字只用于说明特定模型、提示和环境下的机制差异,不外推为当前模型的通用能力。产品框架的类名和 API 变化较快,不作为本章分类依据。