一句话总结:Function Calling 让 LLM 从「说话」变成「办事」——关键是把业务 API 封装成 LLM 可理解的工具 Schema,并做好参数校验、权限控制与失败重试。
Function Calling 工作流程
- 用户提出任务(如「查订单 12345 物流」)
- LLM 判断需调用
get_order_logistics(order_id) - 运行时执行 API,结果回传 LLM
- LLM 组织自然语言回复用户
Schema 设计原则
- 工具粒度:一个工具做一件事,避免「万能接口」
- 参数明确:类型、枚举、必填项写清楚
- 描述准确:
description直接影响 LLM 是否选对工具 - 只读优先:先上线查询类工具,写操作加人工确认
安全边界
| 风险 | 对策 |
|---|---|
| 越权调用 | 工具层校验用户身份与数据范围 |
| 参数注入 | 严格类型校验,禁止拼接 SQL |
| 误操作 | 写操作二次确认或审批流 |
与 MCP 的关系
Function Calling 是模型原生能力;MCP 是标准化工具协议,便于复用与治理。企业可先 Function Calling 快速验证,工具增多后引入 MCP 统一管理。