2170 字
11 分钟
Agent 的技能、工具和记忆:三个容易搞混的概念

Skill、MCP、Memory,这三个词到处都有人提,但到底有什么区别?

有人觉得 MCP 就是工具调用,Skill 是更高级的工具,Memory 是存数据的地方。

有人觉得这三个东西差不多,就是叫法不一样。

都不太对。

这三个概念分别解决的是完全不同层面的问题,理解清楚了,搭 Agent 的思路会清晰很多。


用一个比喻先建立直觉#

把 Agent 想象成一个新入职的员工。

Skill(技能) 是这个员工本身会什么——写邮件、做数据分析、写代码、做 PPT。这些是他内化了的能力,不需要依赖任何外部系统,随时可以用。

MCP(工具协议) 是他桌上的电脑和软件——Chrome、VSCode、Slack、Jira、数据库客户端。他通过这些工具访问外部世界,发邮件、查数据、推代码。工具不是能力本身,但没有工具,很多事情做不了。

Memory(记忆) 是他的笔记本和大脑里记的东西——你上次交代他的事、项目的背景、同事的名字、某个接口的地址。有了记忆,他不用每次都重新问你”这个项目是干什么的”。

技能决定他能做什么,工具决定他能连到哪里,记忆决定他知道什么。

三个维度,互不替代。


Skill:Agent 内化的可复用能力#

Skill 是 Agent 能执行的一个完整的、有明确输入输出的行为单元。

最直观的例子是 Claude Code 里的 /code-review/run/verify 这些斜杠命令——你调用它,它按照内置的流程执行一套操作,给你返回结果。这就是 Skill 的形式。

更广义地说,Skill 是”把一件具体的事情封装成可复用的流程”。

比如:

  • 搜索总结技能:给定一个问题,搜索多个来源,归纳出结论
  • 代码审查技能:读取 diff,按照固定维度(安全、性能、可读性)输出分析报告
  • 邮件起草技能:根据意图和收件人背景,生成合适语气的邮件草稿

Skill 的核心特征是可复用有明确边界。它不是一次性的 prompt,而是一个稳定的行为模板,可以被不同的 Agent、不同的任务反复调用。

Skill 可以是:

  • 一段精心设计的系统提示词
  • 一个调用了若干工具的完整流程
  • 一个子 Agent(专门负责某类任务的 Agent)

它的本质是对 Agent 行为的封装,把”怎么做某件事”固化下来,不用每次从头设计。


MCP:连接外部世界的标准插口#

MCP 全称 Model Context Protocol,由 Anthropic 提出,目的是标准化 Agent 与外部工具、数据源之间的通信方式

在 MCP 之前,每个 Agent 框架、每个 LLM 平台,都有自己的工具调用格式。OpenAI 是一套 JSON Schema,Anthropic 是另一套,LangChain 又是另一套。你写了一个搜索工具,想在不同平台复用,得重写接口。

MCP 做的事情就是把这个统一掉——像 USB-C 统一了充电接口一样。

MCP 定义了三种能力:

Tools(工具):Agent 可以主动触发的操作。搜索、发邮件、执行代码、写入数据库——有副作用,会改变外部世界的状态。

Resources(资源):Agent 可以被动读取的数据。文件内容、数据库记录、API 返回的 JSON——只读,不产生副作用。

Prompts(提示模板):MCP Server 提供的指导性模板,帮助 Agent 更好地使用这个服务。

工作流程是这样的:

用户请求
→ Agent 判断需要什么能力
→ 通过 MCP Client 连接对应的 MCP Server
→ Server 执行操作并返回结果
→ Agent 整合结果,继续推理

一个典型的 MCP 服务器可能提供:文件系统访问、GitHub 操作、数据库查询、网页搜索……

MCP 解决的是”Agent 怎么连到外部系统”的问题,不是”Agent 会做什么”的问题。

它是基础设施层,不是能力层。

一个实际的类比:MCP 是 Agent 的 USB 接口规范,MCP Server 是各种外设,Skill 才是真正在用这些外设干活的那个人。


Memory:Agent 的记忆系统#

Memory 解决的问题是:Agent 怎么记住跨对话、跨任务的信息

没有记忆系统,每次对话 Agent 都是全新开始,不知道你是谁,不记得上次做了什么,也不了解项目背景。

Agent 的记忆体系通常分四层,这个分类来自认知心理学对人类记忆的研究:

工作记忆(Working Memory)

最短暂的记忆,就是当前上下文窗口里的对话内容。容量有限,LLM 一次能处理的 token 数就是工作记忆的上限。

对话结束,工作记忆就清空了。

情节记忆(Episodic Memory)

记录具体发生过的事件,带时间戳。“用户昨天让我帮他改了登录模块”、“上次这个问题回答错了”——这类信息存在情节记忆里。

通常用向量数据库 + SQLite 混合存储,检索时综合考虑语义相似度和时间近因性。

语义记忆(Semantic Memory)

存储抽象的知识和规则,不依附于具体事件。“这个项目用 pnpm 不用 npm”、“用户偏好简短回复”——这类稳定的事实和偏好存在语义记忆里。

通常用图数据库 + 向量存储,支持复杂的关系推理。

感知记忆(Perceptual Memory)

存储多模态信息:图片、音频、文档。跟语义记忆类似,但针对非文本数据。


三者的核心区别#

用一张表格收敛一下:

SkillMCPMemory
解决什么问题Agent 怎么做某件事Agent 怎么连外部系统Agent 怎么记住信息
本质是什么封装好的行为流程通信协议 + 接口规范信息存储与检索系统
类比人的技能电脑上的应用程序人的记忆和笔记
生命周期持久,随 Agent 携带运行时按需连接跨会话持久化
谁提供开发者或 Agent 自身第三方 MCP ServerAgent 运行时积累

一个具体场景串联三者#

假设你让 Agent 帮你定期整理会议记录。

Skill 负责”怎么整理”:Agent 有一个”会议纪要整理技能”——提取关键决策、待办事项、参会人,按固定格式输出。这个流程是封装好的,每次整理都走这套逻辑。

MCP 负责”从哪里拿、存到哪里”:Agent 通过 MCP 连接 Google Drive(读取会议录音或文字稿),通过 MCP 连接 Notion(把整理好的纪要写入数据库)。Google Drive 和 Notion 都有各自的 MCP Server,Agent 不需要关心具体 API 格式。

Memory 负责”记住上下文”:Agent 记得你的会议命名规范、你喜欢的纪要格式、上次你反馈说”待办事项要标注负责人”——这些偏好存在语义记忆里,下次整理自动应用,不用你重新说。

三者分工清晰,各司其职。


常见误解#

“MCP 就是工具调用,Skill 是更高级的工具调用”

不对。工具调用(Function Calling)是模型内置的能力,格式因 LLM 而异。MCP 是在工具调用之上的协议层,把接口标准化,让工具可以跨平台复用。Skill 不是”更高级的工具调用”,而是”用了工具之后完整的行为流程”。

“记忆就是把对话存起来”

比这复杂得多。对话历史只是记忆的最低级形式(工作记忆)。真正有用的记忆系统会从对话里提炼出结构化知识、用户偏好、任务进展,存入语义记忆,并在需要时精确检索,而不是把所有对话堆进上下文窗口。

“有了 MCP 就不需要 Skill”

MCP 给了 Agent 访问工具的能力,但不告诉它怎么用这些工具完成一件复杂的事。Skill 是”怎么做”,MCP 是”连到哪里”,少了任何一个,Agent 都不完整。


最后#

搭 Agent 的时候,可以用这三个问题来自检:

它能做什么? → 看 Skill 设计 它能连到哪里? → 看 MCP 接入 它能记住什么? → 看 Memory 架构

三个问题都想清楚了,Agent 的骨架就基本成型了。

剩下的,就是让它跑起来,然后在它犯错的地方,把环境设计得更好。

Agent 的技能、工具和记忆:三个容易搞混的概念
https://liuhuanblog.top/posts/agent-skill-mcp-memory/
作者
liuhuan
发布于
2026-06-04
许可协议
CC BY-NC-SA 4.0