HelloCoder HelloCoder
首页
《Java小白求职之路》
《小白学Java》
计算机毕设
  • 一些免费计算机资源
  • 脚手架工具
  • 《从0到1学习Java多线程》
  • 《从0到1搭建服务器》
  • 《可观测和监控》
  • 《k8s学习心得》
随笔
关于作者
首页
《Java小白求职之路》
《小白学Java》
计算机毕设
  • 一些免费计算机资源
  • 脚手架工具
  • 《从0到1学习Java多线程》
  • 《从0到1搭建服务器》
  • 《可观测和监控》
  • 《k8s学习心得》
随笔
关于作者
  • 《从0到1学习Java多线程》

  • 《从0到1搭建服务器》

  • 源码学习

  • 可观测和监控

  • 玩转IDEA

  • AI学习

    • LLM和Agent的区别
    • Agent组成和工作模式
    • Prompt、MCP、Skills有什么区别
    • Function Call
  • 03-RPC

  • 05-《Java日志框架》

  • k8s

  • 专栏
  • AI学习
#FunctionCall
HaC
2026-06-23
目录

Function Call

简单说,Function Call 是 Agent 调用工具的"语言",让 Agent 能"听懂"并"指挥"工具

# Function Call:Agent 的"指令生成器"

Function Call 是让大语言模型能够以结构化方式调用外部函数/API的核心机制。你可以把它理解为:Agent 先理解用户的意图,然后生成一条标准的"指令书",告诉系统该调用哪个工具、传什么参数。

它的工作流程大致是:

  1. 用户提出需求(如:"查询北京的天气")
  2. Agent 识别意图并生成一个标准化的 JSON 调用指令,指定要调用 get_weather 函数,参数为 city: "Beijing"
  3. 系统执行该指令,获取结果并返回给 Agent
  4. Agent 将结果组织成自然语言回复用户

Function Call 的局限在于:它通常依赖于特定模型(如 OpenAI)和预定义的函数集,当工具数量增加或需要更换模型时,适配工作会变得复杂。简单说,它的集成是"一对一"的定制化对接

# 本质是什么

本质上就是:

把“AI 的意图”翻译成“程序能执行的指令”。

假设你让 Agent 帮忙查天气,整个过程可以拆解为三步:

  1. 你问:“今天北京天气怎么样?”
  2. AI 思考:他想调用一个叫 get_weather 的函数。
  3. AI 输出:他不是直接回答你,而是生成一张“表格”:
{
  "function": "get_weather",
  "parameters": {
    "city": "北京",
    "date": "2026-06-23"
  }
}

然后你的代码收到这张表格,去执行真正的天气查询,把结果再送回给 AI,AI 再用自然语言告诉你。

# 类比例子

你可以把 Function Call 想象成:

  • AI 是“点单员”:他记录你要什么(比如“来一杯拿铁”)
  • Function Call 是“点菜单”:点单员把你说的话写成标准格式的菜单(咖啡:拿铁,温度:热,糖:半糖)
  • 程序是“咖啡机”:根据菜单自动制作

AI 并不需要知道怎么操作咖啡机,他只需要会填菜单就行了。 这就是 Function Call 的核心——让 AI 把意图结构化。

如果 Function Call 是点菜单,那么 MCP 就是统一了所有菜单格式和外卖柜的标准:

  • 以前:每家店(工具)都有自己的点菜单格式,AI 要适配每家店的格式
  • 现在:有了 MCP 这个“统一标准”,AI 和所有工具之间用标准格式通信,新工具来了也能即插即用

MCP 像是 USB-C 接口:不用每家店定制不同接口,一个标准通吃所有。

#FunctionCall
上次更新: 2026-06-23 17:08:57
最近更新
01
MySQL支持的锁有哪些
06-23
02
HTTP 是不保存状态的协议, 如何保存用户状态
06-23
03
WebSocket、短轮询、长轮询的区别
06-23
更多文章>
Theme by Vdoing | Copyright © 2020-2026 HaC
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式