Sunday 的面试指南

Agent 结果校验:空结果、证据冲突与失败恢复

《Agent 大模型 0 到 1 系统课》 · 程序员 Sunday

你正在阅读本节的免费试读。完整课程 ¥499,可在文末添加作者微信购买。

上一节,咱们给 Agent Loop 加上了 Runtime。

它会限制模型调用次数、工具调用次数和 Token 消耗,也能识别重复 Action 和连续无进展的循环。

工具返回 Observation 以后,recordObservation 还会根据 source 更新 Plan State。

看起来已经挺完整了吧。

但是!这里还隐藏了一个问题。

假设日志工具返回了下面的 Observation:

{
	ok: true,
	source: 'primary_logs',
	evidenceKey: 'primary_logs:payment-service',
	data: {
		records: [],
		summary: '请求成功,但没有查到日志。'
	}
}

这次工具调用没有报错,可是 records 是空数组,也就是没有查到对应数据。

如果直接把这份 Observation 写进 Agent Run State,对应的 Plan Step 就可能被标记为 completed。最后,Agent 拿着一份根本没有内容的“证据”结束了任务。

这肯定是不行的。

所以,这一节咱们要在 executeTool 和 recordObservation 之间,加上 结果校验 与 失败恢复,流程类似于下面这样:

Codex 图像 2026年8月3日 12_20_00

大家仔细看上面的 恢复路线 部分,这里面涉及到了 4 个小概念,这四个小概念对应的就是在遇到不同错误场景下的处理方案,大家做个了解就行,不需要专门去记

  • Retry(重试):同一个 Action 因为临时故障执行失败时,在预算范围内使用原来的参数再执行一次。
  • Fallback(备用路线):原来的工具、模型或数据源无法继续使用时,保持任务目标不变,切换到提前准备好的备用方案。
  • Replan(重新规划):当前计划已经无法继续推进任务时,根据已有结果修改 Plan State,取消失效步骤并增加新的执行步骤
  • Human Handoff(转交人工):自动恢复无法安全完成任务时,暂停当前 Agent Run,并把失败原因、运行状态和已有证据交给人工处理。

这几个概念相对比较好理解,咱们就不多说了。

这四个概念对应三种不同的场景,咱们直接通过代码来看

实现一个带结果校验的 Agent Runtime

课程源码:https://github.com/lgd8981289/Agent--Code

本小节完整代码位于:Code/Node/

本节试读已结束

继续学习,解锁完整课程

购买《Agent 大模型 0 到 1 系统课》,
继续阅读本节剩余内容与后续课程。

扫码添加作者微信,备注「Agent 课程」

添加作者微信 · 购买完整课程

解锁完整课程 ¥499

《Agent 大模型 0 到 1 系统课》
扫码添加微信,备注「Agent 课程」,购买后由 Sunday 提供完整内容的学习方式。

扫码添加作者微信 LGD_Sunday,购买 499 元 Agent 课程

微信昵称:LGD_Sunday
手机上可长按保存二维码,再用微信扫一扫识别。

保存微信二维码