大模型除了说话什么都干不了?因为你没给它"装电话"
你肯定听过这些词——Function Calling、工具调用、Agent 智能体。
大模型能聊天,但好像除了说话什么都干不了?它能联网查资料吗?能帮你执行操作吗?
这篇就是帮你搞清楚一件事:大模型是怎么从"只会说话"变成"能动手做事"的。
先回答最根本的问题:大模型能"动手"吗?
先泼盆冷水:大模型本身什么也干不了。
它能聊天、能写文章、能分析代码——但这些都是"说"出来的。它不能联网查数据,不能计算复杂数学题,不能操作你的数据库,不能帮你发邮件。
不是它不想,是它没有这个能力。
大模型的本质是什么?我们在第一篇讲过——它就是一个读了超级多书的程序,根据前文预测下一个词。它没有手臂、没有网络、没有计算器,它只能输出文字。
那为什么现在很多 AI 应用能做到"查天气""搜新闻""操作数据库"?
答案就是这一篇要讲的:Function Calling。
Function Calling:大模型的"电话亭"
Function Calling(函数调用) ,简单说就是:让大模型能够调用外部工具的机制。
你把大模型想象成一个只会说话的顾问。这个顾问脑子特别好使,但有个致命问题——他没有手,只能说话。他不能帮你打电话、不能帮你查资料、不能帮你操作任何东西。
现在给他配一部电话。遇到需要动手的事情,顾问就说:"你帮我打这个电话给计算器部门,让它们算一下这个数学题。"然后你的系统去执行这个"打电话"的操作,把计算器返回的结果告诉顾问,顾问再继续他的分析。
这就是 Function Calling。
核心机制:模型不执行,只"指挥"
最重要的一点:Function Calling 时,模型本身并不执行任何函数。
模型做的事情是:
- 判断:看到你的问题,判断需不需要调用工具
- 输出:输出一段结构化的"调用指令",告诉你要调哪个函数、传什么参数
- 等待:等你的代码执行完,把结果传回来
- 继续:拿到结果后,继续生成回答
实际执行这些函数的,是你的代码、你的服务器,不是大模型本身。
举一个具体的例子。你问 AI:"帮我查一下北京今天的天气。"
没有 Function Calling 时,AI 会瞎编一个天气,或者告诉你它不知道。
有了 Function Calling 时,AI 会输出这样的内容(伪代码):
{
"name": "get_weather",
"arguments": {
"location": "北京",
"unit": "celsius"
}
}
你的代码看到这段输出,就会去调用真正的天气 API,把真实数据拿回来,再传回给 AI。AI 拿到"北京今天 25 度,晴"这个结果,再组织成自然语言回答你。
整个过程中,AI 只是在"说话",它告诉你该调什么函数、该传什么参数。真正打电话的是你。
常见的使用场景
- 联网搜索:AI 遇到实时信息需求,调用搜索工具
- 计算器:AI 遇到复杂数学运算,调用计算函数(而不是自己硬算)
- 数据库查询:AI 根据你的问题生成 SQL,调用数据库工具执行
- 发送消息:AI 生成邮件内容,调用邮件 API 发送
- 调用第三方 API:任何外部系统的操作,都可以通过 Function Calling 实现
一句话总结:Function Calling 就是给大模型装了一部电话,让它能"指挥"外部工具帮它做事——但它自己不动手,执行的是你。
Tool Use:不同的叫法,同一件事
你可能会在不同的文档里看到不同的词——OpenAI 叫它 Function Calling,Anthropic 叫它 Tool Use,Google 叫它 Extensions。
它们说的是同一件事:让模型能够调用外部工具的机制。
不同厂商的叫法:
| 厂商 | 叫法 |
|---|---|
| OpenAI | Function Calling |
| Anthropic | Tool Use |
| Google (Gemini) | Extensions / Tool Use |
| 通义千问 | Function Calling / 工具调用 |
本质完全一样,不用纠结叫什么,记住它的作用就行。
一句话总结:Tool Use 是 Function Calling 的广义说法,不同厂商叫法不同,作用都是让模型能调用外部工具。
Agent(智能体):会自己做决定的程序
现在你有了 Function Calling,大模型能调用各种工具了。
但还有一个问题:谁来决定什么时候调什么工具?按什么顺序调?调完结果怎么处理?
这就是 Agent 要解决的问题。
Agent(智能体)= 大模型(大脑)+ 工具(手脚)+ 编排逻辑(手脚怎么动)
你可以把 Agent 理解成一个升级版的顾问。不再是你问他答、答完结束,而是:
- 给你一个目标
- 顾问自己决定该用哪些工具
- 按他自己判断的顺序调用
- 根据每次调用的结果,决定下一步该干什么
- 直到达成目标,或者判断无法达成
简单说,Agent 是能自主做决策的程序。它不只是回答问题,而是会自己规划、自己执行、自己调整。
Agent 不是新模型,是一种架构
最重要的一点:Agent 不是一种新的大模型。
Agent 是在现有大模型基础上,用一套逻辑把模型和工具组织起来的方式。就像一个人脑子够用,但需要有人告诉他什么时候该干什么;Agent 就是那套"告诉他什么时候干什么"的逻辑。
所以你会看到,同一个大模型,可以跑在不同的 Agent 框架里(LangChain、AutoGen、CrewAI 等),表现出来的"能力"完全不一样——不是模型变了,是组织方式变了。
Agent 的基础工作流程
一个最简单的 Agent 循环:
- 感知(Perceive) :接收用户的问题或当前状态
- 思考(Think) :让大模型判断该做什么
- 行动(Act) :调用工具执行操作
- 观察(Observe) :获取工具返回的结果
- 循环:把结果反馈给大模型,继续思考下一步
直到任务完成,或者达到某个终止条件(比如循环次数超限)。
这就是经典的 OODA 循环(Observe-Orient-Decide-Act)的变体。
常见的 Agent 能力
- 自主规划:把一个大任务拆成多个小步骤
- 工具选择:判断当前该用什么工具
- 自我纠错:执行后发现结果不对,调整策略重来
- 记忆:把之前的交互结果存下来,影响后续决策
一句话总结:Agent 是在 Function Calling 基础上,让模型能自主决定"调什么工具、按什么顺序调、调完怎么办"的程序——它不是新模型,是用大模型做大脑、用工具做手脚的软件系统。
Function Calling 和 Agent 是什么关系?
讲到这里,两者的关系就很清楚了:
- Function Calling:基础能力,让模型能"调用工具"。模型输出调用指令,你来执行。
- Agent:在 Function Calling 基础上,加上了"自主决策"的逻辑。模型自己决定什么时候调什么、调完怎么干。
打个比方:
- 大模型 = 只会说话的顾问
- Function Calling = 给顾问配了一部电话,能叫人帮忙
- Agent = 让顾问当组长,自己决定什么时候叫谁、叫来干什么、结果怎么用
Function Calling 是 Agent 的基础能力,但有了 Agent 才是真正能"自主做事"的开始。
这篇我们只讲基础概念。复杂的多 Agent 协作、Agent 的深度架构设计,我们留到 06 篇。
小结
| 概念 | 一句话 |
|---|---|
| Function Calling | 给大模型装了一部电话,让它能"指挥"外部工具——模型不执行,只输出调用指令 |
| Tool Use | Function Calling 的广义说法,不同厂商叫法不同,本质一样 |
| Agent | 在 Function Calling 基础上,让模型能自主决定"调什么工具、按什么顺序调"的程序 |
常见误区
误区一:"Function Calling 是让 AI 自己执行函数"
不是。Function Calling 时,模型只是输出一个"调用指令"(JSON 格式),告诉你的代码该调哪个函数、传什么参数。实际执行这个函数的,是你的代码,不是模型本身。
误区二:"Agent 是一种新的大模型"
不是。Agent 不是模型,是一种架构、一种组织方式。同一个大模型,跑在不同的 Agent 框架里,可以表现出完全不同的能力——这不是模型变了,是"大脑指挥手脚的方式"变了。
误区三:"有了 Agent 就不用写代码了"
不是。Agent 只是降低了"让 AI 操作工具"的门槛,但你仍然需要:
- 定义好这个 Agent 能用哪些工具
- 设计好 Agent 的决策逻辑
- 处理各种边界情况和错误
- 把 Agent 的输出接入到你的实际业务里
Agent 是一个组件,不是一个能独立运行的系统。
概念速查卡片
表格
| 术语 | 英文 | 大白话 |
|---|---|---|
| Function Calling | Function Calling | 给大模型装电话,让它能"指挥"外部工具,模型不执行只输出指令 |
| 工具调用 | Tool Use | Function Calling 的广义说法,不同厂商叫法不同 |
| Agent | Agent / 智能体 | 能自主决定"用什么工具、怎么用"的程序,大模型做大脑,工具做手脚 |
下一篇我们聊:06 篇把 Agent 深度讲透——ReAct、Plan-and-Execute、RAG、Skill、MCP,这些名词怎么配合在一起,让 AI 真正变成你的得力助手。
这是「老开发的 AI 笔记」专栏的第 5 篇,用开发者听得懂的话讲 AI。觉得有用的话,点赞收藏走一波,后续持续更新。