前言
随着 AI 的迅速崛起,有很多词汇你可能会经常听到,但是让你来详细地说一下它们各自的区别与联系,有很多人还是回答不上来的,这期咱们就来详细地讲解一下它们各自的区别与联系,让你对它们有更多的了解。
可以把它们想象成构建一个智能应用(比如一个智能助手)的不同层次和组件,从最基础的指令,到高级的交互协议。
1. 核心概念定义
Prompt(提示词/提示工程)
- 是什么:这是用户与 AI 模型交互的最基本形式。它是你输入给大语言模型(LLM)的一段文本,用来引导模型生成你想要的回复。
- 本质 :可以看作是写给 AI 的"使用说明书"或"指令" 。它本身不执行动作,只是告诉模型应该做什么、扮演什么角色、输出什么格式。
- 示例:你问"法国的首都是哪里?",这就是一个简单的 Prompt。复杂的 Prompt 可能包括:"你是一个专业的旅游顾问,请为我规划一个为期 3 天的巴黎行程,并以列表形式输出。"
Agent(智能体/代理)
-
是什么 :Agent 是一个更复杂的系统,它利用 LLM 作为核心"大脑"或"决策引擎",来自主地完成一个相对复杂的任务。它通常具备规划、记忆、以及使用工具的能力。
-
本质 :Agent 是一个能"行动"的实体。它不仅仅是被动地回答问题,而是会主动思考:要实现这个目标,我需要做哪些步骤?第一步该做什么?如果失败了怎么办?
-
工作流程示例:你让它"帮我预订一张下周五从北京到上海的机票"。Agent 会:
- 规划:需要查询航班、比较价格、选择航班、然后下单。
- 调用工具:它可能会调用一个"查询航班"的工具(Function Call)。
- 执行与反馈:拿到查询结果后,它会整理信息,再询问你要选哪个,最后帮你下单。整个过程中,它可能需要进行多次"思考-行动-观察"的循环。
Function Call(函数调用)
-
是什么 :这是 LLM 的一种能力。在请求模型时,你可以向它描述一系列函数(包括函数的功能、参数等)。当用户的问题需要执行特定操作或获取实时信息时,模型不会自己去执行代码,而是返回一个"调用某个函数"的请求,并附带好相应的参数。
-
本质 :这是连接 LLM 与外部世界(数据、系统、API)的"桥梁" 。它让 LLM 从只能"说话"升级为可以"动手"的接口。
-
示例:你问"北京天气怎么样?"。
- 你在 Prompt 中向模型描述了一个
get_weather(city: string)函数。 - 模型判断出需要调用这个函数,于是返回一个特殊格式的回复,内容类似于:
{ "function": "get_weather", "parameters": {"city": "北京"} }。 - 你的程序收到这个请求,然后去执行真正的天气 API 调用,获取数据,最后把数据返回给模型,让模型用自然语言告诉你"北京今天晴,10-20度"。
- 你在 Prompt 中向模型描述了一个
Skill(技能)
- 是什么 :这是一个偏产品和应用层的概念。一个 Skill 可以理解为赋予 Agent 的一种特定能力或"插件" 。它通常封装了一系列用于完成特定领域任务的 Prompt、工作流和 Function Call。
- 本质 :可以看作是 Agent 的 "应用程序" 。安装一个"音乐技能",Agent 就能放歌;安装一个"办公技能",Agent 就能帮你处理文档。
- 示例:在一个智能音箱里,"闹钟技能"包含了设置闹钟、取消闹钟、查询闹钟等功能。对于 Agent 来说,一个 Skill 可能对应着一个或多个底层的 Function Call,也可能结合了特定的 Prompt 模板来指导 Agent 如何使用这些功能。
MCP(模型上下文协议 / Model Context Protocol)
- 是什么 :这是一个开放的、标准化的协议 ,由 Anthropic 提出。它旨在解决一个问题:如何让 AI 模型(特别是 Agent)能够以一种统一、安全的方式,动态地发现和使用各种外部工具和数据源。
- 本质 :可以看作是 AI 世界的"USB-C 接口" 。想象一下,以前每个外部设备(打印机、键盘、显示器)都需要不同的接口和驱动。MCP 就是想成为一个通用的标准接口。只要你的 AI 应用支持 MCP,它就能即插即用地连接到任何也支持 MCP 的数据源或工具服务器。
- 工作流程 :一个支持 MCP 的 Agent 可以通过 MCP 客户端,去连接一个 MCP 服务器(比如一个 Google Drive 服务器,或一个本地文件服务器)。服务器会告诉客户端:"我有这些工具:
list_files、read_file、search_docs"。Agent 就可以像使用本地 Function Call 一样,去调用这些远程工具。
2. 区别与联系
现在,我们用一张图和一个类比来串联它们。
关系图
编辑
核心区别与联系
| 概念 | 核心角色 | 层次 | 核心问题 | 相互关系 |
|---|---|---|---|---|
| Prompt | 指令 | 交互层 | 我该怎么告诉 AI 我想要什么? | 是一切交互的基础。Agent 的思考过程、Function Call 的描述,本质上都是在使用 Prompt。 |
| Agent | 执行者 | 应用层 | 我如何自主地完成一个复杂目标? | 它是"老板",负责统筹规划。它使用 Function Call 作为手脚,管理着各种 Skill。 |
| Function Call | 接口 | 模型能力层 | LLM 如何请求调用外部工具? | 它是"手脚",是 Agent 执行具体操作的方式。一个 Skill 可以封装多个 Function Call。 |
| Skill | 能力包 | 应用/产品层 | 如何将一组相关功能打包,方便 Agent 调用? | 它是"技能包"或"应用",是组织 Function Call 和 Prompt 的高级单元。Agent 通过拥有 Skill 来获得能力。 |
| MCP | 协议 | 基础设施层 | 如何让 Agent 能通用、安全地发现和连接任何工具? | 它是"万能接口标准"。它标准化了 Function Call 的发现和调用过程,让 Skill 的开发和使用更加模块化和解耦。 |
3. 综合类比:一个智能厨房
为了更好地理解,我们把这个过程比作一个智能厨房:
- Prompt(指令) :你对厨房机器人说:"我饿了,给我做一份番茄炒蛋。" 这就是 Prompt,是你下达的初始指令。
- Agent(智能厨房机器人) :机器人本身就是 Agent。它听到你的话,开始思考:做番茄炒蛋需要先洗番茄、切番茄、打鸡蛋、炒菜......这是一个有规划的过程。
- Function Call(具体动作) :机器人的手臂开始执行具体动作:"拿起番茄"(这是一个 Function Call)、"打开水龙头"(另一个 Function Call)、"开启炉灶"(又一个 Function Call)。LLM 本身不做这些,但它会决定何时调用这些动作。
- Skill(烹饪技能包) :机器人内部安装了一个"中式烹饪技能包",这个技能包里包含了"洗菜"、"切菜"、"炒菜"等一系列相关的 Function Call 的说明书和操作流程。如果装的是"西式烘焙技能包",那它就会调用和面、烤箱相关的功能。
- MCP(通用厨房接口标准) :假设你的厨房还有一台独立的智能冰箱和智能烤箱,它们各自有不同的接口。如果它们都遵循 MCP 标准,那么你的厨房机器人就可以通过标准的"查询库存"接口访问冰箱,通过标准的"设置温度"接口控制烤箱,无需为每个设备单独写一套连接代码。
总结
- Prompt 是语言,告诉 AI "要什么" 。
- Function Call 是工具,赋予 AI "怎么做" 的能力接口。
- Skill 是技能包,将相关工具打包,让 AI 的能力模块化。
- Agent 是执行者,利用大脑(LLM)规划,使用手脚(Function Call/Skill)去自主完成任务。
- MCP 是标准接口,让 AI 能通用、便捷地连接任何外部工具,是整个生态的"基础设施"。