Function-Calling与Tool-Use
787 字约 3 分钟
domain/aiai/llm
2026-07-24
1. 核心结论
- Function Calling 让大模型能够调用外部工具获取实时信息或执行操作
- 模型不直接执行函数,而是生成函数调用请求,由外部系统执行后返回结果
- 工具描述的质量直接影响模型调用的准确性
- Function Calling 是构建 AI Agent 的核心能力之一
- 合理设计工具集能大幅扩展模型的能力边界
2. 基础概念
Function Calling:模型识别需要调用外部函数时,输出结构化的函数调用请求。
Tool Use:模型使用外部工具(搜索、计算、API 等)增强自身能力。
Tool Description:工具的 JSON Schema 描述,包括名称、参数、功能说明。
Parallel Tool Use:模型同时调用多个工具的能力。
Tool Result:工具执行后返回给模型的结果。
ReAct 模式:Reasoning + Acting,模型交替进行推理和行动。
3. 工作原理
Function Calling 流程:
- 工具注册:向模型提供可用工具的 JSON Schema 描述
- 用户输入:用户发送请求
- 模型决策:模型判断是否需要调用工具
- 生成调用:模型输出结构化的工具调用请求(工具名 + 参数)
- 外部执行:应用程序执行工具调用
- 结果返回:将工具执行结果作为消息返回给模型
- 最终响应:模型基于工具结果生成最终回答
工具描述设计要点:
- 名称清晰:使用动词+名词格式(get_weather、search_products)
- 描述详细:说明工具功能、适用场景、限制条件
- 参数明确:每个参数有类型、描述、是否必填
- 示例补充:复杂工具提供使用示例
主流平台支持:
- OpenAI:function calling、parallel function calling
- Anthropic:tool use
- Google Gemini:function calling
- 开源:LangChain Tools、LlamaIndex Tools
4. 实战场景
- 实时信息查询:天气、股票、新闻
- 数据库查询:自然语言转 SQL
- API 调用:订单查询、用户管理
- 计算工具:数学计算、单位转换
- 代码执行:沙箱环境运行代码
- 文件操作:读取、写入、搜索文件
5. 常见误区
- 工具描述不清晰:模型无法正确理解工具用途
- 参数设计不合理:缺少必要参数或参数类型错误
- 不处理工具调用失败:没有 fallback 机制
- 工具过多导致混乱:模型难以选择合适的工具
- 忽视安全性:工具没有权限控制和输入验证
6. 进阶方向
- 多步工具调用链
- 工具自动发现与注册
- 工具调用评估与优化
- 多 Agent 工具共享
- 工具调用安全沙箱
- 动态工具生成
7. 推荐资料
- OpenAI Function Calling - https://platform.openai.com/docs/guides/function-calling
- Anthropic Tool Use - https://docs.anthropic.com/en/docs/build-with-claude/tool-use
- Google Gemini Function Calling - https://ai.google.dev/gemini-api/docs/function-calling
- LangChain Tools - https://python.langchain.com/docs/concepts/tools