最近一个月一直在折腾Agent从prototype到production的落地,踩了不少坑,分享几个印象深的:

1️⃣ LLM幻觉在Agent架构里会被放大 — 单次问答LLM说了句错的不致命,但Agent里一步错后面全跟着错,而且还不会自己回头。我试过的方案里,加一个「验证节点」让模型执行完关键步骤后自我检查一下,能拦掉一部分但不够彻底。

2️⃣ 工具调用的Timeout处理 — Agent调外部API不能无限等,但LLM自己不会主动超时,必须代码层面加硬超时兜底,然后超时后给LLM返回「这个工具超时了,你换个思路试」。不处理好这个,Agent会卡死在等一个永远不会回来的API上。

3️⃣ 上下文窗口不是越大越好 — 一开始想着把所有历史都塞进去让模型看清楚,结果发现把完整对话历史全丢进去,模型反而分不清哪些信息更重要。现在做的一个改进是加了个「裁剪器」,按重要性过滤历史再投喂,效果比全量输入好。

4️⃣ 状态管理比想象中复杂 — Agent执行到一半用户关页面、切设备、或者网络断了,状态怎么恢复是个大坑。目前的做法是把每一步的执行快照都存到数据库,但这么做存储开销不小。

5️⃣ 测试成本很高 — 单次问答手动测测还行,Agent多轮工具调用每次都走真实API,CI里跑几轮测试Token就烧完了。现在在试mock工具调用+只测关键路径的方法,但mock的逼真度又是个问题。

大家做Agent落地的时候,最头疼的问题是什么?有没有什么好的解决方案?