Tool Calling
为什么需要 Tool Calling
普通 LLM 只能"说"——给你一段文字回答,但这段回答不能直接帮你:
- 查真实的天气
- 写入数据库
- 发送一封邮件
Tool Calling 让模型从"能说"变成"能做"——它能发起结构化的调用指令,让外部系统真正执行动作。
什么是 Tool Calling
一句话定义:Tool Calling 是让模型把"我应该做什么"转成"我应该调用哪个工具、传什么参数"的能力。
类比:Tool Calling 就像给模型一张"能力清单"——每个工具是一张卡片,写清楚"什么时候用它"、"需要传什么参数"。模型根据任务需要,选择并填写合适的卡片。
典型例子:
- 调用
get_weather(city)查询天气 - 调用
search_docs(query)搜索知识库 - 调用
create_todo(title)创建待办
模型发起调用后���真正执行的是外部系统——这个过程需要 Function Schema 来定义参数契约,告诉模型每个工具该怎么用。
怎么做:Tool Calling 的关键
1. 工具描述要清楚
query、text这种参数名太抽象city、email_body、invoice_number更明确
2. 参数约束要明确
- 字段类型、必填项、枚举值、默认值
3. 执行结果要回填
- 如果工具执行完没有把结果返回给模型,模型就无法进入下一步推理
调用一次工具只是开始,现实任务往往需要连续调用——这就引出了 ReAct 的概念:思考 → 行动 → 观察 → 再思考的循环闭环。
常见坑
- 不是所有模型都支持 Tool Calling
- 模型不会验证业务正确性:可能拼出格式正确但业务上错误的参数,服务端仍要做校验
- 工具可能失败:超时、权限不足、空结果都很常见
- 工具太多会增加选择难度
记住这一句:Tool Calling 让模型从"能说"变成"能做"——它发起调用指令,真正执行的是外部系统。
相关词条:Function Schema · ReAct
标签
工具调用tool callingfunction calling函数调用