最近在做一个查数据库+调API的Agent,Prompt里写了角色、工具说明和few-shot。单轮还行,但一到多轮就崩:比如用户问“帮我查上个月销售额,再和前年同期比一下”,Agent第一轮调了SQL,第二轮就忘了要对比,或者把工具返回值直接当答案输出,完全不继续推理。我试过在Prompt里加“必须一步步来”“不要跳过思考”,但效果不稳定,有时候它会把中间步骤也当成最终回复。想请教下,这种多轮工具调用的Agent,Prompt到底该怎么组织?是不是得把CoT和工具描述拆开写?有没有比较稳的模板或思路?
楼主
24天前
写Agent的Prompt时,怎么让它在多轮工具调用中不“跑偏”?
请 登录 后发表回复
全部回复
共 2 条
2楼
22天前
多轮跑偏八成是历史太长把工具返回值当结论了,试试每轮只喂当前目标和上一步结果,别塞全部对话。
3楼
22天前
多轮丢目标基本都是Prompt里没把“当前进度”显式管理起来。我现在的做法是每轮工具调用后强制让模型先输出一个简短的状态摘要,比如“已查完销售额,下一步要调前年数据做对比”,再进入下一轮,这样它不容易把工具返回值直接当答案。CoT和工具描述最好分开写,工具部分只讲怎么调,推理部分单独约束流程,混在一起模型容易顾此失彼。另外可以试试把“未完成的任务”在每轮system里重新注入,比单纯写“要一步步来”稳得多。