你分得清 Prompt、Agent、Function Call、Skill、MCP 吗?

前言

随着 AI 的迅速崛起,有很多词汇你可能会经常听到,但是让你来详细地说一下它们各自的区别与联系,有很多人还是回答不上来的,这期咱们就来详细地讲解一下它们各自的区别与联系,让你对它们有更多的了解。

可以把它们想象成构建一个智能应用(比如一个智能助手)的不同层次和组件,从最基础的指令,到高级的交互协议。

1. 核心概念定义

Prompt(提示词/提示工程)

  • 是什么:这是用户与 AI 模型交互的最基本形式。它是你输入给大语言模型(LLM)的一段文本,用来引导模型生成你想要的回复。
  • 本质 :可以看作是写给 AI 的"使用说明书"或"指令" 。它本身不执行动作,只是告诉模型应该做什么、扮演什么角色、输出什么格式。
  • 示例:你问"法国的首都是哪里?",这就是一个简单的 Prompt。复杂的 Prompt 可能包括:"你是一个专业的旅游顾问,请为我规划一个为期 3 天的巴黎行程,并以列表形式输出。"

Agent(智能体/代理)

  • 是什么 :Agent 是一个更复杂的系统,它利用 LLM 作为核心"大脑"或"决策引擎",来自主地完成一个相对复杂的任务。它通常具备规划、记忆、以及使用工具的能力。

  • 本质 :Agent 是一个能"行动"的实体。它不仅仅是被动地回答问题,而是会主动思考:要实现这个目标,我需要做哪些步骤?第一步该做什么?如果失败了怎么办?

  • 工作流程示例:你让它"帮我预订一张下周五从北京到上海的机票"。Agent 会:

    1. 规划:需要查询航班、比较价格、选择航班、然后下单。
    2. 调用工具:它可能会调用一个"查询航班"的工具(Function Call)。
    3. 执行与反馈:拿到查询结果后,它会整理信息,再询问你要选哪个,最后帮你下单。整个过程中,它可能需要进行多次"思考-行动-观察"的循环。

Function Call(函数调用)

  • 是什么 :这是 LLM 的一种能力。在请求模型时,你可以向它描述一系列函数(包括函数的功能、参数等)。当用户的问题需要执行特定操作或获取实时信息时,模型不会自己去执行代码,而是返回一个"调用某个函数"的请求,并附带好相应的参数。

  • 本质 :这是连接 LLM 与外部世界(数据、系统、API)的"桥梁" 。它让 LLM 从只能"说话"升级为可以"动手"的接口。

  • 示例:你问"北京天气怎么样?"。

    1. 你在 Prompt 中向模型描述了一个 get_weather(city: string) 函数。
    2. 模型判断出需要调用这个函数,于是返回一个特殊格式的回复,内容类似于:{ "function": "get_weather", "parameters": {"city": "北京"} }
    3. 你的程序收到这个请求,然后去执行真正的天气 API 调用,获取数据,最后把数据返回给模型,让模型用自然语言告诉你"北京今天晴,10-20度"。

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_filesread_filesearch_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. 综合类比:一个智能厨房

为了更好地理解,我们把这个过程比作一个智能厨房:

  1. Prompt(指令) :你对厨房机器人说:"我饿了,给我做一份番茄炒蛋。" 这就是 Prompt,是你下达的初始指令。
  2. Agent(智能厨房机器人) :机器人本身就是 Agent。它听到你的话,开始思考:做番茄炒蛋需要先洗番茄、切番茄、打鸡蛋、炒菜......这是一个有规划的过程。
  3. Function Call(具体动作) :机器人的手臂开始执行具体动作:"拿起番茄"(这是一个 Function Call)、"打开水龙头"(另一个 Function Call)、"开启炉灶"(又一个 Function Call)。LLM 本身不做这些,但它会决定何时调用这些动作。
  4. Skill(烹饪技能包) :机器人内部安装了一个"中式烹饪技能包",这个技能包里包含了"洗菜"、"切菜"、"炒菜"等一系列相关的 Function Call 的说明书和操作流程。如果装的是"西式烘焙技能包",那它就会调用和面、烤箱相关的功能。
  5. MCP(通用厨房接口标准) :假设你的厨房还有一台独立的智能冰箱和智能烤箱,它们各自有不同的接口。如果它们都遵循 MCP 标准,那么你的厨房机器人就可以通过标准的"查询库存"接口访问冰箱,通过标准的"设置温度"接口控制烤箱,无需为每个设备单独写一套连接代码。

总结

  • Prompt 是语言,告诉 AI "要什么"
  • Function Call 是工具,赋予 AI "怎么做" 的能力接口。
  • Skill 是技能包,将相关工具打包,让 AI 的能力模块化
  • Agent 是执行者,利用大脑(LLM)规划,使用手脚(Function Call/Skill)去自主完成任务
  • MCP 是标准接口,让 AI 能通用、便捷地连接任何外部工具,是整个生态的"基础设施"。
相关推荐
xuboyok22 小时前
【Spring Boot】统一数据返回
java·spring boot·后端
工边页字2 小时前
AI产品面试官超喜欢问:什么是 Embedding,它是怎么工作的 ?
前端·人工智能·后端
亚马逊云开发者2 小时前
你的 AI Agent 只有鱼的记忆?聊聊 Agent 记忆管理的正确姿势
java
Augustvic2 小时前
gRPC基本原理
后端·http·中间件·rpc
IT果果日记2 小时前
K8S+Dinky+Flink管理你的计算资源
大数据·后端·flink
燕山罗成2 小时前
JAVA多线程基础
java·开发语言
予枫的编程笔记2 小时前
【面试专栏|Java并发编程】拆解Java线程生命周期:从新建到终止,再讲清进程与线程的核心差异
java·多线程·java基础·java面试·进程与线程·面试干货·java线程生命周期
G探险者2 小时前
架构演进之 DDD:从 CRUD 到领域驱动设计
后端·架构·领域驱动设计
Yvonne爱编码2 小时前
JAVA数据结构 DAY7-二叉树
java·开发语言·数据结构