AI Agent 工程 · 05
05.1 Agent Loop:从决定到观察的受控循环
理解 Agent 如何把模型决定、工具执行和环境反馈放进可停止的循环。
学习目标与前置
你会区分“模型建议调用工具”和“程序真的执行工具”,并能为循环写出次数、失败和人工终止边界。前置是 02 Tool Calling、03 MCP、04 Workflow。知识位置:Workflow 的路径由代码预先确定;**Agent 循环(Agent Loop,模型根据观察结果决定下一步的循环)**才让模型动态选择下一步。
白话原理
客服 Agent 不是把一句话交给模型后就结束,而是不断问:现在已知什么?要查订单、查政策,还是向客户追问信息?程序负责执行它提出的工具请求,把真实结果再交回模型;模型不能自己越过授权。
用户目标 → 模型决定 → 程序校验/执行工具 → 工具事实 → 进入下一轮
↑ ↓
拒绝/失败/上限 ← 完成或需要人工
最大轮数、重复工具检测、超时、预算和人工升级都是终止条件。工具报错应成为可读的观察结果,不应被伪装成成功;连续相同失败要停止,避免无限循环。
跨境案例与实践
客户问“XB-1024 能否退款”。Agent 可先查已授权订单,再用 04 的固定退款工作流;它不能因为模型“觉得可以”就退款。运行 npm run test:agent-course,其中 bounded loop 故意让模拟决策连续三次查询,同一受控循环会停止。验收:输出出现 passed: bounded loop 与 passed: authorized loop。
排查:若授权检查失败,先检查调用者 ID,不要为了让循环继续而删除权限判断。主动回忆:为什么工具结果必须回到上下文,而不是只写进控制台?
- 必须记:模型决定不等于工具执行。
- 建议记:终止条件是产品和安全要求,不是补丁。
- 不用记:示例的轮数。