文章总结:Function Calling策略使大模型能准确调用函数处理用户问题,包括注册工具、生成调用指令、由智能体系统执行并返回结果给大模型。大模型负责理解问题、匹配工具、输出JSON调用指令,需经过结构化函数调用数据训练。Function Calling优点是标准、清晰、安全可控,是大模型的结构化、工程化解决方案。
当用户说“帮我算一下33加77”,大模型为啥能准确调用函数来算?
这背后用的就是 —— Function Calling 策略。
今天我们就把这个机制讲明白。
第一步:注册工具
开发者需要先把工具“挂到菜单上”,供大模型选择使用:
{
"name": "add",
"description": "执行加法运算",
"parameters": {
"type": "object",
"properties": {
"a": { "type": "number" },
"b": { "type": "number" }
}
}
}
👆这相当于告诉大模型:“你有个叫 add 的工具,能处理两个数字相加。”
注意几点:
- 名字不能模糊(get_weather总比tool_1好)
- 描述要清晰,别让模型靠猜
第二步:生成调用指令
用户提问:“33加77等于多少?”
大模型不是直接算答案,而是生成一个结构化的调用请求:
{
"tool_call":
{
"name": "add",
"arguments": { "a": 33, "b": 77 }
}
}
这叫 工具调用意图,本质是模型说:“我打算调用这个函数,参数如下。”
第三步:谁来执行?
不是模型自己执行工具调用,而是“外面的智能体系统”根据 JSON 指令去找对应函数执行,然后把结果再交回给大模型。
可以简单理解成:
大模型:“我判断要用加法函数。” 智能体:“好的我来调。” 大模型:“收到结果,我来组织答案。”
模型到底做了什么?
Function Calling 策略下,大模型的角色只有三个:
- 理解你的问题
- 匹配哪个工具最合适
- 输出符合格式的 JSON 调用指令
想让模型调用得准,重点优化这两块:
- 工具描述写清楚
- 给系统写个引导 prompt,例如:
system_prompt
= "你是一个可以调用工具的智能体。遇到适合使用工具的问题,请优先使用工具。"
训练依赖:模型得支持Function Calling
Function Calling 是靠模型“训练”出来的。只有经过结构化函数调用数据训练/微调的大模型 才能做到:
·阅读工具描述
·匹配用户意图
·自主生成 JSON 函数调用格式
·执行结果后再续写内容
代表模型:GPT-4、Claude 3、qwen-plus等。
Function Calling 的优点:
- ✅ 调用标准、结构清晰
- ✅ 非常适合标准 API、函数库、数据库接口等
- ✅ 不需要来回猜测“模型到底想调用哪个函数”
- ✅ 更安全、可控
小结一句话:
Function Calling
就是让大模型当“项目经理”,提出清晰的“调用需求”,让智能体来跑流程。比起靠 prompt 引导的混沌行为,Function Calling 是结构化、可控、工程化的解决方案。
阅读 110
修改于2025年07月15日
原文出自:https://mp.weixin.qq.com/s/TUsiO3_KR5DdMvvUzmAj0w
本文档由网友提供,仅限参考学习,如有不妥或产生版权问题,请联系我们及时删除。
客服请加微信:skillupvip