HOW 技术原理

Agent 与工具调用:流程固定的才稳定

让它自己决定下一步,听着聪明,实际是误差会累加。步数越多,跑偏概率越高。

Agent 与工具调用:流程固定的才稳定
题图 / Unsplash

工具调用是什么

你给模型一份工具清单:名字、作用、参数格式。它需要用时,输出一段结构化的调用请求,你的代码去执行,再把结果喂回去。

模型不执行任何东西。它只是输出了一段“请帮我调这个函数”的文本。

干活的是你的代码。这一点很重要:权限、校验、超时,都在你这边控制。

所以工具调用的安全性,说到底是你接口的安全性。模型只是发起请求的客户端。

暗色多窗口代码,多步流程
场景配图 / Unsplash

一个循环长什么样

想一步,调一个工具,看结果,再想下一步。循环到它认为任务完成,或者达到步数上限。

每一步的输入都包含前面所有步骤的结果。所以上下文会迅速变长,成本也跟着涨。

五步的任务,上下文可能是单次问答的十倍。这也是 Agent 贵的原因,不只是调用次数多。

成本估算要按步数算,不是按任务算。五步的任务按十倍单次成本估,通常不会差太多。

哪几步容易出错

第一步就选错工具。工具一多,它容易挑一个名字最像的,而不是最合适的。

参数格式错。日期格式、枚举值、必填项,错一个就报错,报错信息它还可能理解错。

错误累积。第三步拿到的结果是错的,第四步基于错的结果继续做,越走越偏,而且它不知道自己偏了。

停不下来。任务定义模糊时,它会一直尝试,直到步数上限。

还有一种是重复调用同一个工具,参数几乎一样,它在原地打转。

屏幕上的调用代码
场景配图 / Unsplash

什么场景能用

流程固定、步骤可枚举的。查订单、改地址、生成报表,每一步都能写清楚。

工具数量少的。三到五个工具,它选错的概率低;二十个工具,选择本身就成问题。

失败可回滚的。读操作随便试,写操作要有确认和回滚。

反过来的三类别上:开放式研究、需要长期规划的任务、后果不可逆的操作。这三类现在还得人来。

如果一定要试,把范围缩小,加上人工确认,别一上来就放开权限。

补充一句给 Agent 的工具,权限按最小化配。一个查天气的助手,不该有发邮件的权限。
笔记本上画流程图
场景配图 / Unsplash

常见问题

步数上限设多少?

按最复杂任务的步数乘一点五。超过就停,让人接手,别让它自己找路。

怎么减少选错工具?

工具描述写清楚使用场景和不适用场景。只写名字和参数,它只能靠猜。

Agent 能自己纠错吗?

能发现明显的报错,发现不了逻辑错误。所以关键节点要有人看结果。