工具选择:什么时候该模型挑,什么时候该你挑

工具选择:什么时候该模型挑,什么时候该你挑

会用工具的 Agent 在 demo 里看起来很有力,因为模型在选下一步做什么。它在生产里看起来很脆弱,因为模型在选下一步做什么。可用工具的空间随特性线性增长,随边界情况二次增长——超过大约十二个工具之后,模型开始混淆它们的角色,靠工具名表面的相似性来挑选。

工具数量增长时会出什么问题

超过十到十五个工具之后,描述在模型的表征里开始模糊。模型选了搜索工具,而正确答案是数据库查询,因为两者的描述里都有”lookup”。模型选了简单的工具,而本该选复杂的那个,因为简单那个匹配了用户措辞。这一切都不会在单次调用测试里出现——它出现在某个工具悄悄处理了本该由另一个工具处理的请求时,答案技术上有效,但运营上错了。

架构层面的答案,不是 prompt 层面的

把工具按用途分组,把请求路由给只看得到相关子集的子 Agent。给顶层模型暴露的工具,比你内部实际暴露的少——五个目的清晰的可见工具,胜过二十个无差别工具。对破坏性或昂贵的工具,要求显式的名字匹配,而不是模型挑选。

Agent 该挑的工具数量,比你想给它的要少得多。超过某个阈值之后,每多一个工具,都让所有其他选择变得更糟。

相关文章

Agent 失败时:不会无限循环的恢复模式

Agent 失败时:不会无限循环的恢复模式

Agent 的失败不抛异常。它们产出看起来合理但错误的输出,或者用稍微不同的方式悄悄重试同一个坏方法 ...

没有标准答案的 Agent 怎么评测

没有标准答案的 Agent 怎么评测

评测一个 Prompt 已经很难。评测一个在给出答案前要跑十次工具调用的 Agent,是另一个量级的 ...

Agent 护栏:在不阉割 Agent 的前提下

Agent 护栏:在不阉割 Agent 的前提下

给 Agent 加护栏属于那种简单版本太严苛、谨慎版本太宽松的任务。挡得太狠 Agent 拒绝完全合 ...

Planner-Executor 拆分:什么时候该拆,什么时候该合

Planner-Executor 拆分:什么时候该拆,什么时候该合

第一天,让单个模型同时做规划和执行,看起来很优雅。三个月后,trace 日志会讲一个不同的故事:Pr ...

多自主才算太自主

多自主才算太自主

Agent 的自主性是一根滑杆,不是一个开关,正确档位由任务决定的多过由技术决定的。把滑杆推到"完全 ...

Agent 记忆:情景、语义,以及该留下什么

Agent 记忆:情景、语义,以及该留下什么

你建的第一个 Agent 没有当前对话之外的任何记忆,这能撑大约一周。然后用户回来,期望连续性,你开 ...