Function Calling
一句话定义:LLM 输出结构化函数调用(函数名+参数 JSON),由外部代码执行后回传结果,让模型能"动手"。
1. 机制
- 宿主把工具描述(名称/描述/参数 schema)注入。
- 模型决定调哪个函数、填什么参数。
- 输出结构化
{"name":..., "arguments":...}。 - 宿主执行真实函数。
- 结果作为消息回传,模型继续。
2. 与 Agent 关系
- Function Calling 是"单次行动"。
- Agent 是"多步循环",每步可能是一次 Function Calling。
- 是 Agent 的执行原语。
3. 工具设计原则
- 名称与描述清晰,说明用途与边界。
- 参数用 JSON Schema 约束类型/枚举/必填。
- 危险操作加审批/白名单。
- 返回裁剪,避免上下文膨胀。
- 错误返回结构化,便于模型重试。
4. 注意事项
- 描述不清会误选/误填。
- 模型可能幻觉参数值。
- 防注入:工具返回内容可能含恶意指令。
- 多工具时按场景分组。
5. 学习要点
- Function Calling 让 LLM 从"说"变"做"。
- 工具描述质量决定调用准确率。
- 是 Agent 与 MCP 的底层执行原语。
6. 参考资料
- OpenAI Function Calling 文档
- "Toolformer: Language Models Can Teach Themselves to Use Tools"
评论
评论加载中…