核心要点
能优化工具描述:每个工具写清晰、互不重叠的 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 应用的基础设施