最近在做一个简单的AI Agent,用LangChain串了三个工具调用(查天气→推荐穿搭→生成文案)。发现一个头疼的问题:单步Prompt效果还行,但一旦放进Agent流程里,模型经常忽略我给的格式约束,比如让它输出JSON,它非要带markdown,或者直接开始自由发挥。我试过把Prompt写得更详细,但好像越改越乱,有时候改完反而更不稳定。
最近在做一个简单的AI Agent,用LangChain串了三个工具调用(查天气→推荐穿搭→生成文案)。发现一个头疼的问题:单步Prompt效果还行,但一旦放进Agent流程里,模型经常忽略我给的格式约束,比如让它输出JSON,它非要带markdown,或者直接开始自由发挥。我试过把Prompt写得更详细,但好像越改越乱,有时候改完反而更不稳定。
我之前也踩过这个坑,后来发现问题往往不在prompt本身,而是Agent把多步的上下文全揉在一起了。你可以试试在每步工具调用前单独设一个精简的system prompt,只强调当前任务的输出格式,别把上一轮的结果一股脑全塞进去。另外,用Pydantic或函数调用来强约束输出结构,比靠语言描述靠谱得多,模型就没机会自由发挥了。改prompt时最好一次只动一个变量,不然确实越改越玄学。