🤖 Function Calling、MCP、Agent:AI时代的“打工人”分工图谱

发布于:2025年10月9日
关键词:Function Calling、MCP、Agent、大模型、AI应用、RAG


你有没有想过:
为什么 AI 能查天气、订机票、写周报?
它真的“会”这些事吗?还是背后有人“替它干活”?

其实,大模型本身就像一个超级学霸——知识渊博、文采飞扬,但不会动手做事
要想让它“落地干活”,就得靠三个“帮手”:
👉 Function Calling
👉 MCP
👉 Agent

这三个词听起来高大上,其实本质上都是在解决同一个问题:

如何让大模型“连接世界”,而不仅仅是“嘴炮”?

但它们的“工作方式”和“职位高低”完全不同。
今天我们就用公司打工人的比喻 + 真实例子,一口气讲清楚它们的共性与区别


一、先看共性:它们都是“桥梁”

概念 本质 共同目标
Function Calling 让模型调用外部函数 把大模型的“想法”变成“行动”
MCP 统一管理外部工具 让模型能安全、规范地使用工具
Agent 让模型自主决策 + 执行 实现“AI自动完成任务”

一句话总结共性
它们都是连接大模型与外部世界的“中间人”,让 AI 从“聊天”走向“做事”。


二、用一个例子贯穿全文:帮你订一张明天的机票

假设你说:

“帮我订一张明天北京飞上海的机票,越便宜越好。”

我们来看看这三者分别怎么工作。


三、角色1:Function Calling —— “执行专员”

🧑‍💼 职位:一线执行员工

🎯 特点:听指令,做动作

Function Calling 就像一个听话的执行专员
你给它一个明确指令,它就去调用某个函数(API)完成任务。

🔄 工作流程:

  1. 你输入:“订机票”
  2. 模型理解意图 → 生成一个函数调用请求
  3. 系统调用 search_flight(origin="北京", dest="上海", date="2025-10-10")
  4. 返回结果 → 模型再组织语言回复你

📝 代码示意(伪代码):

{
  "function": "search_flight",
  "arguments": {
    "origin": "北京",
    "dest": "上海",
    "date": "2025-10-10"
  }
}

✅ 优点:

  • 简单直接,适合固定任务
  • 开发成本低

❌ 缺点:

  • 只能“单步执行”
  • 不能自主决策(比如比价、选航班)

🌰 类比
你让助理查一下航班,他查完就回来了,不会自己决定买哪张。


四、角色2:MCP(Model Context Protocol)—— “工具管理员”

🧑‍💼 职位:IT部门工具管理员

🎯 特点:统一管理,安全可控

你可能会问:
“模型怎么知道有哪些函数可用?参数怎么写?权限怎么管?”

这就轮到 MCP 上场了。

MCP 不是一个“执行者”,而是一个工具接入规范,就像公司 IT 部门制定的“软件使用手册”。

🧩 MCP 的核心作用:

  1. 注册工具:把 search_flightbook_ticket 等函数注册到系统
  2. 定义接口:说明每个函数需要什么参数、返回什么
  3. 权限控制:谁可以调用?调用频率?
  4. 统一接入:让不同模型(GPT、通义、GLM)都能用同一套工具

🌰 例子:

MCP 定义了一个标准格式:

name: search_flight
description: 查询航班信息
parameters:
  origin: string
  dest: string
  date: string
returns:
  list of flights with price, time, airline

这样,任何支持 MCP 的模型都能“看懂”这个工具,无需重新开发。

✅ 优点:

  • 工具标准化,避免重复开发
  • 安全可控,防止乱调 API
  • 支持多模型、多系统互通

🌰 类比
IT 部门统一管理所有软件账号,员工按规范申请使用,而不是自己随便下载。


五、角色3:Agent —— “项目经理”

🧑‍💼 职位:能独立干活的项目经理

🎯 特点:能思考、能规划、能执行、能反思

如果 Function Calling 是“执行专员”,MCP 是“工具管理员”,那 Agent 就是“项目经理”——他不仅能下命令,还能自己做决策。

🔄 Agent 的工作流程(以订机票为例):

  1. 理解目标:“订一张便宜的北京→上海机票”
  2. 规划步骤
    • Step 1: 查航班
    • Step 2: 比较价格和时间
    • Step 3: 选择最优航班
    • Step 4: 调用订票函数
    • Step 5: 确认订单
  3. 调用工具:通过 Function Calling(可能基于 MCP 注册的工具)
  4. 执行 + 反馈:如果订票失败,自动重试或换航班

🌟 关键能力:

  • 规划(Planning):拆解任务
  • 记忆(Memory):记住已查过的航班
  • 工具使用(Tool Use):调用 search_flight、book_ticket
  • 反思(Reflection):失败后调整策略

✅ 优点:

  • 能完成复杂、多步任务
  • 更接近“自主 AI”

❌ 缺点:

  • 开发复杂
  • 可能出错(比如订错时间)

🌰 类比
项目经理接到任务后,自己安排调研、比价、下单,全程跟进,直到完成。


六、三者关系:谁依赖谁?

我们可以用一个组织架构图来总结:

              Agent(项目经理)
                   ↓
           调用 → Function Calling(执行专员)
                   ↓
           依赖 → MCP(工具管理员)
                   ↓
               外部 API(如航班系统)
  • Agent 可以使用 Function Calling 来执行动作
  • Function Calling 的工具可能通过 MCP 注册和管理
  • MCP 为整个系统提供工具标准化支持

一句话总结关系
MCP 是“制度”,Function Calling 是“操作”,Agent 是“大脑”。


七、对比表格:一目了然

特性 Function Calling MCP Agent
角色 执行者 管理者 决策者
是否主动 ❌ 被动调用 ❌ 静态规范 ✅ 主动规划
是否能多步 ❌ 单步 ❌ 不执行 ✅ 多步
是否需要模型参与 ✅ 是 ❌ 否(系统层) ✅ 是
典型场景 查天气、翻译 工具平台、企业系统 自动客服、AI助手
类比 执行专员 IT管理员 项目经理

八、实际应用场景

场景 用谁? 说明
用户问:“今天天气?” ✅ Function Calling 直接调用 get_weather()
公司有100个API要接入 ✅ MCP 统一注册、权限管理
“帮我写周报,数据从数据库取” ✅ Agent 查数据 → 写报告 → 发邮件
智能音箱控制家电 ✅ Function Calling + MCP 语音指令 → 调用家电API

九、结语:从“聊天”到“做事”的进化

  • 没有 Function Calling:AI 只能“说”,不能“做”
  • 没有 MCP:工具杂乱,难以管理
  • 没有 Agent:AI 只能“响应”,不能“主动”

未来,这三者将越来越紧密地结合:

MCP 提供工具标准,Function Calling 实现调用,Agent 实现自主智能

它们共同推动 AI 从“聊天机器人”走向“数字员工”。


📚 延伸阅读

  • OpenAI Function Calling 文档
  • MCP 官方 GitHub(示例)
  • LangChain Agents 教程
  • 《AI Agents:The Next Frontier of AI》
Logo

更多推荐