LLM · Function Call · MCP Tools · Agent · Skills 是什么关系?一张图 + 一个例子,5 分钟彻底搞懂。
LLM · Function Call · MCP Tools · Agent · Skills 是什么关系?
一张图 + 一个例子,5 分钟彻底搞懂。
先看全局

五个概念,从底到顶,层层依赖。下面用一个真实场景串起来讲清楚。
场景:「帮我订明天飞上海的机票」
① LLM — 大脑
LLM 读懂了你的意图:查航班 → 选一张 → 完成支付。
但它只会思考和输出文字,自己不能打开浏览器、不能调用 API,就像一个绑着双手的聪明人。
用户:帮我订明天飞上海的机票
LLM 内心:我需要先查航班,但我自己做不到,
我要告诉外部程序去查…
② Function Call — 调用接口
LLM 推理出"需要查航班"后,不是直接执行,而是输出一段结构化 JSON,告诉外部程序要调什么:
{
"name": "search_flights",
"arguments": {
"date": "2024-12-25",
"from": "北京",
"to": "上海"
}
}
外部程序解析这段 JSON,真正去调接口。结果返回后,再喂给 LLM 继续推理。
关键点: Function Call 是 LLM 和外部世界沟通的"语言规范",LLM 说,程序做。
③ MCP Tools — 工具箱
search_flights() 只是众多工具之一。一个完整的工具箱可能长这样:
| 工具名 | 能力 |
|---|---|
search_flights() |
查询航班信息 |
read_calendar() |
读取用户日历 |
book_ticket() |
执行购票 |
send_email() |
发送确认邮件 |
MCP(Model Context Protocol) 是 Anthropic 推出的开放标准,定义了工具如何向 LLM 描述自己、传参、返回结果。就像 USB 接口——标准统一,即插即用,不同厂商的工具都能被同一个 LLM 调用。
没有 MCP:每个工具各写各的接入方式,LLM 要适配 N 套格式
有了 MCP:工具按标准注册,LLM 统一调用,维护成本大幅降低
④ Agent — 执行者(协调器)
光有 LLM + 工具还不够。订机票不是一步完成的:
查航班 → 发现有 3 个选项 → 根据用户偏好筛选
→ 确认价格 → 检查日历有没有冲突 → 执行购票
→ 发送确认邮件 → 完成
Agent 是让这个循环跑起来的引擎,它的工作逻辑:
while 任务未完成:
让 LLM 思考下一步
如果 LLM 要调工具 → 执行工具 → 把结果返回给 LLM
如果 LLM 说完成了 → 结束
Agent 本身不聪明,它只是个协调器,聪明的是 LLM,能干活的是 Tools。
⑤ Skills — 能力模板
「订机票」是个常见任务,可以提前把它的流程固化下来:
skill: book_flight
描述: 帮用户预订机票
工具: [search_flights, read_calendar, book_ticket, send_email]
流程:
1. 查询用户偏好(时间、舱位、价格区间)
2. 搜索航班
3. 检查日历冲突
4. 确认后购票
5. 发送确认邮件
出错处理: 查不到航班时提供备选日期
下次遇到「订机票」类请求,Agent 直接套用这个 Skill,不用 LLM 从零摸索,更稳定、更高效、更可复用。
Skills 是经验的沉淀,把最佳实践模板化。
一句话总结
| 概念 | 类比 | 职责 |
|---|---|---|
| LLM | 大脑 | 理解、推理、决策 |
| Function Call | 嘴 / 接口规范 | LLM 表达"我要调什么" |
| MCP Tools | 双手 / 工具箱 | 实际执行具体动作 |
| Agent | 控制器 | 协调循环,驱动任务完成 |
| Skills | 操作手册 | 预定义流程,提升稳定性 |
LLM 是大脑,Function Call 是嘴,MCP Tools 是手,
Agent 让它们协作起来,Skills 是提前写好的操作手册。
常见误区
误区 1:Agent = LLM
不对。LLM 只是 Agent 的一个组件,Agent 还包含工具执行、状态管理、循环控制等逻辑。
误区 2:Function Call = 直接执行代码
不对。LLM 只是"声明"要调什么,真正执行的是外部程序,LLM 无法直接运行代码。
误区 3:MCP Tools 和 Function Call 是同一回事
不对。Function Call 是调用协议(怎么说),MCP Tools 是工具本身(做什么)。两者配合使用。
误区 4:Skills 是 LLM 自带的能力
不对。Skills 是开发者预先定义的任务模板,需要显式设计和配置。
本文适合有基础编程经验、想快速理解 LLM 应用架构的读者。
更多推荐


所有评论(0)