核心要点

  • 能优化工具描述:每个工具写清晰、互不重叠的 description 和参数说明,模型主要靠语义匹配选工具

  • 能控制工具集规模:保持少而正交,工具过多易选错;必要时分层(先选类别再选具体工具)

  • 能用路由/分诊:先按用户意图用检索或分类器筛出候选工具子集,再交给模型决策,减少干扰项

  • 能加推理与回退:用 ReAct 让模型显式推理"为何用该工具",失败时观察 Observation 重选或回退到其他工具

标准回答

根因

工具选错多源于描述含糊、工具集过大、功能重叠。模型靠工具名与 description 的语义来匹配任务,输入越乱选得越差。

主要手段

  • 清晰描述:每个工具用语义化名称 + 明确 description,说明适用场景、输入输出,避免功能重叠造成歧义。
  • 精简工具集:保持工具少而正交;工具多时做分层,先用路由把请求分到某个工具类别,再在子集中选择。
  • 路由/分诊:用检索(按工具描述做语义召回)或意图分类器先筛出 Top-K 候选工具,只把相关工具暴露给模型,显著降低误选。
  • ReAct 推理:让模型在调用前显式写出"思考→选择理由→行动",提升选择可解释性与正确率。

鲁棒性

工具调用失败或结果不符预期时,根据 Observation 重新选择或回退到备用工具,避免在错误工具上死循环。

常见误区

⚠️ 常见踩坑

把所有工具一股脑塞进上下文让模型自己选——工具一多、描述重叠就会频繁误选;应先路由筛候选、保持工具集正交,并对调用失败设计回退。

追问

追问 1工具数量到几十上百个时怎么扩展?

不要全量暴露给模型。建工具的向量索引,按当前任务对工具描述做语义检索召回 Top-K,只把候选子集放进上下文;或分层路由:上层分类器选工具类别,下层在该类内选具体工具。这样既控制提示长度,又减少干扰项导致的误选。

追问 2模型反复选错同一个工具怎么办?

先排查描述歧义或功能重叠,改写 description 让边界清晰;加少量示例(few-shot)演示正确选用;在执行层加校验与失败回退,连续失败时强制换工具或转人工;并把误选案例沉淀进评测集,持续回归验证。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。

🛠️ AI 工具

  • LangChain

    最流行的 LLM 应用开发框架,137K+ stars。提供链式编排、RAG 检索增强生成、Agent 构建等核心能力,覆盖 Python 和 JavaScript 双语言生态,是构建 LLM 应用的基础设施