AI 手记AI 手记

Agent 踩坑记:它不是更好的函数调用器

2 分钟69 阅读

上个月我给自己派了个活:搭一个能自主完成「查资料 → 整理 → 写初稿」流程的小 Agent,跑真实任务,不用玩具数据集。一个月下来,流程能跑了,但我对 Agent 的理解被修正了好几次。记录几个印象最深的坑。

坑一:工具越多,选择越差

一开始我很兴奋,把能想到的工具全挂上:搜索、网页抓取、文件读写、代码执行、日历……十几个。结果 Agent 经常在「用哪个工具」上反复摇摆,或者干脆用代码执行去干搜索工具的活。

后来砍到五个以内,行为立刻稳定了。工具列表不是能力清单,是菜单——菜越厚,点菜越难。

坑二:它会重复自己做对过的事,也会重复做错过的

多步任务里,Agent 对「我已经做过了」的记忆很不可靠。同一个文件它会读三遍,同一个搜索它会换个措辞再搜一次。这不是 bug,是上下文管理的天然缺陷:前面的工具结果一旦被挤出窗口或者被摘要压缩,「做过」这个事实就模糊了。

我的解法很土:强制它在每步之后写一行结构化的「已完成记录」,后续决策只能引用这行记录,不能依赖原文记忆。

坑三:错误处理不能全靠它自己

工具返回 404,它会重试;重试三次还是 404,它会换个参数再试。看起来很努力,其实是在撞墙。真正需要的「这个链接死了,换一个来源」这种决策,得靠提示词里明确的降级策略,或者在工具层就把「永久失败」和「暂时失败」区分开。

一个月后的体感

Agent 最让我惊讶的不是它能自主完成任务,而是它失败的方式特别像新人实习生:热情、勤奋、记性差、不会主动汇报坏消息。带实习生的经验几乎全能用上——任务拆细、检查点密集、别让它自由发挥太久。

所以现在别人问我 Agent 该怎么搭,我都说:先别想它有多聪明,先想它有多健忘。

相关阅读