Function Calling 浅记
Function Calling / Tool Calling
从我的理解来看,Function Calling 本质上是大模型根据提示词(Prompt)、用户输入(Input)以及上下文,生成一种指定格式的结构化文本,用于作为调用工具的参数。
Function Calling 不是真的调用函数,而是生成结构化调用指令。
更深层次地看,根据许多教程与文章大核心能力仍然是:
根据上下文预测下一个 Token(Next Token Prediction)
因此 Function Calling 的本质可以理解为:
需求理解
↓
参数提取
↓
JSON生成
本质上就是:
需求 → 参数提取 → JSON生成
Agent 与 Function Calling
对于 Agent 来说,实际执行过程可以理解为:
ReAct
+
Function Calling
+
Tools
其中:
- ReAct:决定是否需要调用工具,以及调用什么工具
- Function Calling:负责生成工具调用参数
- Tool:负责真正执行对应能力
Function Calling 到 Tool Calling
随着 Agent 逐渐变复杂,调用对象不再只是单一函数,而可能是:
- API
- 数据库
- 搜索引擎
- 浏览器
- MCP Server
- 第三方服务
因此逐渐演变为更通用的 Tool Calling 概念。
简单理解:
Function Calling
↓
调用函数
Tool Calling
↓
调用工具
而函数(Function)只是工具(Tool)的一种实现形式。
Tool Calling 基本流程
用户 Input
↓
LLM 理解需求
↓
Tool Routing(选择工具)
↓
Parameter Extraction(提取参数)
↓
生成结构化调用指令
↓
Agent 框架执行 Tool
↓
返回执行结果
↓
LLM 总结输出