>_Skillful
Need help with advanced AI agent engineering?Contact FirmAdapt
All Posts

AI 智能体如何从失败的工具调用中学习

失败的工具调用并不只是错误,它本身就是信息。最优秀的智能体会借助失败调整策略、尝试替代路径,避免重蹈覆辙。本文介绍其内在机制。

April 26, 2026Basel Ismail
ai-agents error-handling learning reliability

失败即信息

当一个 AI 智能体调用 MCP 服务器工具并失败时,错误信息会进入智能体的上下文。与遵循既定错误路径的脚本程序不同,智能体可对错误本身进行推理,并依据错误所揭示的内容选择应对方式。

"table not found" 错误,提示智能体核对表名;"permission denied" 错误,告诉智能体无论如何重试都行不通;"timeout" 错误,则提示在再次尝试或简化参数后操作可能成功。优良的错误信息使这种推理成为可能,而糟糕的错误信息只会让智能体陷入猜测。

重试策略

并非所有失败都该用同一种方式回应。智能体需要区分瞬时错误(重试可能成功)与永久错误(重试无济于事)。网络超时属于瞬时错误,缺失的表则属于永久错误,而 rate limit 错误虽属瞬时,却需要在重试前等待。

设计良好的智能体会实施分级重试:对意外错误立即再试一次,对限流错误延时后重试,对永久性失败则切换到替代方案。这种做法比简单的"重试三次"模式更加成熟,也能带来更优结果。

替代路径

对失败最具价值的回应,是为同一目标找到一条不同的路径。如果某张特定表的查询失败,智能体能否从另一张表中获取数据?某个 API 端点宕机时,是否存在替代端点?某个文件无法直接读取时,智能体能否先搜索定位再读取?

这种寻找替代路径的能力,正是智能体相对于僵硬脚本的关键优势之一。脚本只走一条路,路被堵住便止步;智能体却能就替代路径进行推理并尝试,常常在脚本本会放弃之处获得成功。

避免重复失败

优秀的智能体会在同一会话内记住失败过的尝试。如果对带有特定名称的表进行查询失败,智能体不应在三步之后又执行一次完全相同的查询。看似显而易见,但若缺少明确的失败追踪指令,智能体有时确实会自我重复,尤其是在原始失败已滚出活跃注意力的长任务中。

在智能体的提示词中加入诸如"若工具调用失败,请记下该失败,且勿以相同参数再次调用"之类的指令,有助于避免无谓的重试。


延伸阅读

Skillful.sh 发现 AI 智能体搜索 137,000 多款 AI 工具