导语:AI Agent最容易被误解成“会自动调用工具的聊天机器人”。真正稳定的Agent流程,需要把任务目标、工具输入、执行结果和下一步判断拆开,否则一旦工具返回异常,模型就可能继续重复调用,甚至把错误结果当成事实。

先把Agent任务拆成四个阶段
一个可控的工具调用流程,至少可以分成规划、执行、观察和校验。规划阶段决定要解决什么问题、需要哪些工具;执行阶段只调用当前一步需要的工具;观察阶段读取结果和错误;校验阶段确认结果是否满足任务要求。
这四个阶段不一定要做成四个独立服务,但边界应该在代码和日志里体现出来。
规划阶段要限制工具选择
工具越多,模型越容易选错。规划阶段可以先按任务类型筛选工具,例如查询类、写入类、计算类和通知类。对于有副作用的工具,最好要求额外确认,不要让模型默认执行。
- 只暴露当前任务需要的工具;
- 危险操作单独标记并增加确认;
- 工具描述写清楚适用场景和不适用场景。
执行阶段要校验输入参数
工具参数不能只依赖模型生成。服务端仍然要检查必填字段、类型、长度、枚举值和权限范围。涉及文件、数据库、支付或外部发布的操作,还要限制目标资源,避免模型把自然语言中的模糊对象直接当成真实ID。
if (!isset($input['resource_id']) || !ctype_digit((string)$input['resource_id'])) {
throw new InvalidArgumentException('resource_id is invalid');
}
观察阶段要区分成功和可用
工具返回HTTP 200,不代表业务结果一定可用。观察阶段要检查响应结构、业务状态、数据完整性和是否需要分页。空结果、部分成功、超时和权限不足都应该有明确状态,不能统一包装成“调用成功”。
校验阶段要回答任务是否完成
Agent不能只判断“工具调用结束”,还要判断用户目标是否完成。例如文章发布任务至少要确认文章ID、页面状态、封面地址和正文图片是否有效。查询任务则要确认结果是否覆盖用户要求的时间范围和筛选条件。
如何避免无限循环
每个任务都应设置最大步骤数、单工具调用次数、总耗时和失败重试次数。连续两次返回同样错误时,不要继续原样重试,可以切换方案、请求人工确认或直接返回可解释的失败原因。
日志要记录决策链而不是隐私
日志应记录任务ID、阶段、工具名、参数摘要、耗时、结果状态和下一步动作。密钥、用户隐私和完整文件内容不能直接写入。这样既方便复盘,也不会因为排错把敏感数据扩散到日志系统。
总结
AI Agent工具调用的稳定性来自流程边界,而不是单纯依赖模型能力。把规划、执行、观察和校验分开,限制工具和参数,设置循环上限,才能让Agent在复杂任务中保持可控。
评论 0