
141、Agent的Prompt自动优化那天晚上排查一个Agent的循环调用问题,日志里反复出现同一句“I don’t have enough information”,明明系统提示词里已经把知识库路径、工具用法、甚至兜底话术都写清楚了,可模型就是不肯用。我盯着那几行Prompt看了一个钟头,忽然意识到问题不在Prompt本身,而在于我的Prompt从来都是“一次成型”,从来没让Agent自己改过自己。后来我加了一层自动优化逻辑,让Agent根据失败样例回写Prompt,问题才真正解决。这就是今天想聊的:Agent的Prompt自动优化。别把自动优化想成什么玄学。本质就是让LLM当自己的Prompt工程师,用一小段元指令加上历史错误案例,生成新的系统提示词,再替换旧版本去跑下一轮。听起来简单,落地全是坑。先说我踩过的第一个坑:拿完整对话历史去优化Prompt。这样做Token消耗大不说,模型很容易被带偏,学到一些语气词和无关细节,甚至把用户的不规范输入当成标准。正确做法是只提取“失败轨迹”:哪一步调用出了问题、模型输出了什么、期望输出是什么、当时的工具返回了什么。做成结构化记录,再喂给优化器。比如这样构造优化输入:失败案例1 任务: 查询天气 期望: 调用get_weather工具并传城市名 实际: 模型直接回答“我不知道天气” 推断原因: 没有在Prompt中强调必须调用工具 /失败案例1这里有个关键点,优化器不仅要看失败案例,还要看当前Prompt全文。让LLM对比“现在的Prompt”和“哪里没约束住”之间的差距,然后给出修改建议。别让LLM自由