给一个代理30个工具后,它在关键工具的使用上表现更差了。
摘要
作者观察到,给AI代理添加更多工具会增加分类复杂度,从而降低其选择正确工具的准确性;并且发现使用多个工具集更窄的小型代理可以提高可靠性。
我正在为支持工作流构建一个代理,并随着新案例的出现不断添加工具。工单查询、退款处理、订单历史、升级,以及其他十几个。看起来无害,提供更多功能和覆盖范围。在添加到20多个工具后,情况发生了变化。代理开始为简单请求选择错误的工具,而在只有五个选项时,它处理得很好。我回头测试了相同的请求,对比了早期版本工具较少的代理。在完全相同的提示下,准确性更高。底层模型没有变化,任务也没有变化。只是在决策时有了更多选项。一旦你想到工具选择对模型来说实际上是一个分类问题,即对工具列表中的所有内容进行分类,随着看似合理的选项数量增加,分类会变得更难,尤其是当多个工具的描述重叠,且听起来都与给定请求合理相关时。例如,对于“客户想要退款”的请求,退款处理和订单历史可能看起来都是正确的选择,具体取决于描述如何措辞,而代理必须猜测哪个真正合适,但没有太多信息来消除歧义。比我预期更有帮助的是:将代理拆分为多个工具集更窄的小型代理,通过一个轻量级的第一步进行路由,而不是一个代理包含所有内容。在实际决策点上,选择更少。虽然感觉不如一个能做一切的代理那么优雅,但这是实际上更可靠的版本。
相似文章
减少智能体工具数量反而提升了其能力
作者认为,给AI智能体更少、更粗粒度的工具,通过减少决策面并防止模型混淆事实与模拟输出,能够提升可靠性和降低成本。
当工具数量达到多少时,你的代理开始变笨?
作者讨论了AI代理的推理能力如何因工具过多而下降,指出Genie Code将MCP工具数量限制在20个,并邀请社区讨论解决方案。
智能体在增加更多工具后是否变得更难维护?
探讨了随着集成工具数量的增加,维护AI智能体可能面临的挑战,质疑其可扩展性和复杂性。
@hanakoxbt:你的智能体有三十个工具。它只调用了其中两个。另外二十八个并没有闲置在某个地方。它们就在请求中…
AI 智能体工具集中未使用的工具仍然会消耗令牌,并给工具选择增加噪音,因此智能体应只加载当前任务所需的工具。
我不再尝试构建一个超级智能体,而是将其拆分为 4 个专用智能体。可靠性大幅提升。
作者描述了如何通过将单个通用智能体替换为专注于接入、调研、执行和审查的四智能体工作流,来提高 AI 智能体的可靠性。这种转变优先考虑系统的可预测性和更轻松的调试,而非纯粹的自主性。