Tool Calling
Tool calling 的核心不是“让模型自己执行代码”,而是让模型判断什么时候该借助外部能力。
为什么需要工具
模型本身擅长语言理解和生成,但不擅长这些事情:
- 获取最新事实
- 做精确计算
- 查询数据库
- 调用业务接口
- 修改外部系统状态
这些动作最好交给程序或外部服务。
基本流程
一个典型的 tool calling 循环是这样的:
- 你把可用工具清单告诉模型。
- 模型根据任务判断是否调用工具。
- 程序解析工具调用请求。
- 真正执行工具。
- 把结果回传给模型。
- 模型结合工具结果继续回答。
设计工具时要注意什么
工具描述必须清晰
工具名、参数、用途都要尽量明确,否则模型会乱调或误调。
参数要结构化
能让模型输出结构化参数,就不要让它拼自由文本。参数越明确,系统越稳。
工具结果要可消费
返回结果不要过度原始,最好做一层整理,让模型更容易继续推理。
常见错误
- 给了太多重叠工具,模型难以选择
- 工具命名含糊,边界不清
- 没做权限控制和异常处理
- 以为模型“会自动知道什么时候不能调用”
什么时候该用 tool calling
当任务需要真实世界动作、精确信息、外部状态或确定性计算时,tool calling 通常是比纯 prompt 更靠谱的方案。
对应示例
可以配合仓库里的最小示例一起看: