@hanakoxbt:你的智能体有三十个工具。它只调用了其中两个。另外二十八个并没有闲置在某个地方。它们就在请求中…

X AI KOLs Following 新闻

摘要

AI 智能体工具集中未使用的工具仍然会消耗令牌,并给工具选择增加噪音,因此智能体应只加载当前任务所需的工具。

你的智能体有三十个工具。 它只调用了其中两个。 另外二十八个并没有闲置在某个地方。它们就在请求里,每一个请求里,而且它们同时在两个地方造成损害。 首先是显而易见的一点。工具 schema 会进入提示词,而 schema 不只是一个名字。 它是一段描述、参数列表、类型、必填字段、一个示例。三十个这样的 schema 就是几千个 token,每次调用都要带上,包括智能体只是说声“谢谢”然后结束的那些调用。 你在为二十八个从未触发过的工具支付租金。 第二点,也是代价更高的一点。 当请求说“取消订单”时,模型会对照所有可用的东西进行匹配选择。你的工具中有四个看起来都可能:cancel_order、refund_order、update_order、void_order。 它是在根据你几个月前某个下午写下的描述来从中选择。 你每增加一个工具,就是给那个候选名单多添一个候选者。你从未调用的那二十八个并不是中性的。它们是在决定运行是否成功的那一个决策中的噪音。 > 为什么它会在没有人刻意决定的情况下不断膨胀 没有人会故意添加三十个工具。 你为了一个任务添加一个,它起作用了,它就留下来。六个月后,注册表变成了一本目录,而且从来没有人删除过任何东西,因为删除一个工具感觉有风险,而添加一个工具感觉没有成本。 而且没有任何反馈告诉你不是这样。那些未使用的工具从不报错。它们从不出现在失败的追踪记录里。它们之所以隐形,正是它们得以累积的原因。 > 实际该怎么做 统计最近一千次运行中每个工具的调用次数。这只是一个 group-by,但通常会让人们震惊。那些为零的工具就是纯粹的成本。 只交付任务需要的工具,而不是整个注册表。研究阶段不需要部署。写作阶段不需要数据库。 在不同阶段之间切换工具集,而不是一开始就全部加载。同一个智能体,不同的工具,取决于运行进行到哪一步。 而当两个工具都可能合理地回答同一个请求时,这不是你可以忽略的冗余。这是你内置在系统里的一次抛硬币。 那二十八个工具并非未被使用。 它们每一次都在被使用,被你看不见的那部分运行所使用。
查看原文
查看缓存全文

缓存时间: 2026/08/10 03:31

你的智能体有三十个工具。

它调用了其中两个。

另外二十八个并非闲置在某处。它们就在请求里——每一次请求——同时在两个地方造成损害。

首先是显而易见的那一点:工具 schema 会进入提示词,而 schema 并不只是一个名字。

它包含描述、参数列表、类型、必填字段、示例。三十个这样的 schema 就是几千个 token,每次调用都要附带,包括智能体只是说声谢谢然后结束的那些调用。

你正在为二十八个从未触发过的工具支付租金。

其次,这才是代价更高的那个。

当请求说“取消订单”时,模型会通过与所有可用工具进行匹配来选择。你的四个工具看起来都合理:cancel_orderrefund_orderupdate_ordervoid_order

它是在根据你几个月前某个下午写的描述来从中选择。

你每增加一个工具,就是那个候选清单里的新一个候选。你从不调用的那二十八个并不是中性的。它们是噪声,恰好干扰决定运行成败的那一次决策。

为什么它会在没人决定的情况下不断增长

没有人会刻意添加三十个工具。

你为某个任务加一个,它成功了,它就留下来了。六个月后,注册表变成了一个目录,而且从来没有人移除过任何东西,因为移除一个工具感觉有风险,而添加一个工具感觉毫无代价。

并且没有任何反馈告诉你情况并非如此。未使用的工具从不出错。它们从不出现在失败的追踪记录中。它们以一种正好能让它们不断累积的方式隐形。

实际该怎么做

统计过去一千次运行中每个工具的调用次数。这就是一次 group-by 操作,通常会让人震惊。调用次数为零的那些工具是纯成本。

只发布任务需要的工具,而不是整个注册表。研究阶段不需要部署工具。写作阶段不需要数据库工具。

在阶段之间切换工具集,而不是一次性加载所有工具。同一个智能体,不同的工具,取决于运行所处的位置。

而当两个工具都能同样合理地回答同一个请求时,这并不是你可以忽略的冗余。这是你内置于系统中的一次抛硬币。

那二十八个工具并非未被使用。

它们每次都被使用了——被运行中你看不到的那一部分所使用。

相似文章