@hanakoxbt:你的智能体有三十个工具。它只调用了其中两个。另外二十八个并没有闲置在某个地方。它们就在请求中…
摘要
AI 智能体工具集中未使用的工具仍然会消耗令牌,并给工具选择增加噪音,因此智能体应只加载当前任务所需的工具。
查看缓存全文
缓存时间: 2026/08/10 03:31
你的智能体有三十个工具。
它调用了其中两个。
另外二十八个并非闲置在某处。它们就在请求里——每一次请求——同时在两个地方造成损害。
首先是显而易见的那一点:工具 schema 会进入提示词,而 schema 并不只是一个名字。
它包含描述、参数列表、类型、必填字段、示例。三十个这样的 schema 就是几千个 token,每次调用都要附带,包括智能体只是说声谢谢然后结束的那些调用。
你正在为二十八个从未触发过的工具支付租金。
其次,这才是代价更高的那个。
当请求说“取消订单”时,模型会通过与所有可用工具进行匹配来选择。你的四个工具看起来都合理:cancel_order、refund_order、update_order、void_order。
它是在根据你几个月前某个下午写的描述来从中选择。
你每增加一个工具,就是那个候选清单里的新一个候选。你从不调用的那二十八个并不是中性的。它们是噪声,恰好干扰决定运行成败的那一次决策。
为什么它会在没人决定的情况下不断增长
没有人会刻意添加三十个工具。
你为某个任务加一个,它成功了,它就留下来了。六个月后,注册表变成了一个目录,而且从来没有人移除过任何东西,因为移除一个工具感觉有风险,而添加一个工具感觉毫无代价。
并且没有任何反馈告诉你情况并非如此。未使用的工具从不出错。它们从不出现在失败的追踪记录中。它们以一种正好能让它们不断累积的方式隐形。
实际该怎么做
统计过去一千次运行中每个工具的调用次数。这就是一次 group-by 操作,通常会让人震惊。调用次数为零的那些工具是纯成本。
只发布任务需要的工具,而不是整个注册表。研究阶段不需要部署工具。写作阶段不需要数据库工具。
在阶段之间切换工具集,而不是一次性加载所有工具。同一个智能体,不同的工具,取决于运行所处的位置。
而当两个工具都能同样合理地回答同一个请求时,这并不是你可以忽略的冗余。这是你内置于系统中的一次抛硬币。
那二十八个工具并非未被使用。
它们每次都被使用了——被运行中你看不到的那一部分所使用。
相似文章
当工具数量达到多少时,你的代理开始变笨?
作者讨论了AI代理的推理能力如何因工具过多而下降,指出Genie Code将MCP工具数量限制在20个,并邀请社区讨论解决方案。
智能体在增加更多工具后是否变得更难维护?
探讨了随着集成工具数量的增加,维护AI智能体可能面临的挑战,质疑其可扩展性和复杂性。
@alex_prompter: 我的智能体每次我给它们更多工具时,它们都变得更笨了。原因是机械性的。你连接的每个 MCP 服务器…
Ratel 是一个开源工具,通过使用 BM25 索引仅加载所需的工具(而不是所有可用工具),将输入令牌减少 79%,并提高了 AI 智能体的工具选择准确性。
我目前正在运行的20个真正有用的Agent(没有理论,只有实际能用的)
一位实践者分享了20个用于销售、运营、内容、开发和财务的真实AI Agent,它们正在被积极使用且已存活超过第一周,强调单任务Agent、审批门控和结构化输出。
@PrajwalTomar_:停一下。在你添加另一个AI代理之前,请先阅读。人们现在并行运行20个编码代理。二十个。而且工具…
该推文认为,并行运行过多AI编码代理会降低代码库质量,并提倡使用少数几个专门代理的结构化设置。它还提到了Jcode的发布,这是一个开源代理,声称内存效率提高20倍。