返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

大模型是怎么“用工具”的:一文讲透 Function Calling 策略

[复制链接]
链载Ai 显示全部楼层 发表于 半小时前 |阅读模式 打印 上一主题 下一主题

当用户说“帮我算一下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 策略下,大模型的角色只有三个:

  1. 理解你的问题
  2. 匹配哪个工具最合适
  3. 输出符合格式的 JSON 调用指令

想让模型调用得准,重点优化这两块:

  • 工具描述写清楚
  • 给系统写个引导 prompt,例如:
system_prompt ="你是一个可以调用工具的智能体。遇到适合使用工具的问题,请优先使用工具。"

训练依赖:模型得支持Function Calling

Function Calling 是靠模型“训练”出来的。只有经过结构化函数调用数据训练/微调的大模型才能做到:

  • 阅读工具描述

  • 匹配用户意图

  • 自主生成 JSON 函数调用格式

  • 执行结果后再续写内容

代表模型:GPT-4、Claude 3、qwen-plus等。


Function Calling 的优点:

  • ✅ 调用标准、结构清晰
  • ✅ 非常适合标准 API、函数库、数据库接口等
  • ✅ 不需要来回猜测“模型到底想调用哪个函数”
  • ✅ 更安全、可控

小结一句话:

Function Calling 就是让大模型当“项目经理”,提出清晰的“调用需求”,让智能体来跑流程。比起靠 prompt 引导的混沌行为,Function Calling 是结构化、可控、工程化的解决方案。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ