一文看懂 Agent:大模型、工具、MCP、技能、记忆,到底谁是谁、怎么配合干活?
一文看懂 Agent:大模型、工具、MCP、技能、记忆,到底谁是谁、怎么配合干活?

作 者:吴佳浩Alben
撰稿时间:2026.9.24
更新时间:2026.9.24
引言
总是有童鞋说:“浩哥你写的东西技术太深,看不懂呀,有没有一看就明白的,我们不是做技术的只是想做个了解”,那么本篇非常适合各种想要了解的筒子们。老少皆宜,可以重点看自己感兴趣的部分。
很多人在理解 Agent 时都会撞上同一个问题:
Agent 到底是"更聪明的聊天机器人",还是"能自己动手干活的程序"?
天天听人讲 Tools、MCP、Skill、Memory,这几个词到底谁是谁,能不能一句话讲清?
答案不复杂,难的是中间隔着三层容易被混成一团的东西:零件(Component)、接口(Interface)、循环(Loop)。把这三层分清,再去看任何一篇 Agent 文章、任何一套 Agent 框架的文档,名词就绕不晕你了。这篇不整虚的,20 张图,从最外面的黑盒子一路拆到完整运行全貌。
一、先看最外面:Agent 就是一个黑盒子
先把复杂度藏起来。从外面看,Agent 只有一个入口和一个出口:你说一句话,或者交一个任务,它给你一个结果。中间发生了什么,先不管。
这个视角看着过于简陋,但它有个实打实的好处:它把"是不是 Agent"的判断标准定死了——不看它会不会聊天,看它能不能把任务办完。 一个只会接话、不会动手的东西,无论包装得多像 Agent,都不是 Agent。
后面十九张图,本质上都是在拆这个黑盒子。
二、打开盒子:里面就五样东西在配合
拆开一看,不神秘,五个部件,加一个对外的接口。
把每个部件的职责和"缺了会怎样"摊开看,会更清楚:
| 部件 | 一句话职责 | 缺了会怎样 |
|---|---|---|
| 大脑(LLM) | 负责想、负责决策 | 整个系统跑不起来 |
| 手(Tools) | 负责真的动手 | 只能陪你聊天,干不了活 |
| 规划员(Planner) | 把大任务拆成小任务 | 复杂任务做到一半就乱 |
| 记事本(Memory) | 记住这次和以前的事 | 每次都从零开始 |
| 说明书(Skill) | 沉淀"这件事该怎么做" | 能做,但做得不专业、不稳定 |
| 插座(MCP) | 接外部能力的统一接口 | 每接一个能力就要写一套对接代码 |
这张表建议记住,因为后面每一节,其实都是在展开其中一行。
三、大脑只负责"想",不负责"干"
这是最容易被误解的一点。大模型(LLM)本质上是个话痨脑子:它只会输出文本,不会真的帮你点鼠标、读文件、发请求。
注意它的两个出口。第一个出口是普通的回答,第二个出口是"我要用个工具"——这句话本身也只是一段文本,只不过格式规整到外面那层程序能解析。所谓"模型调用了工具",准确说法是:模型输出了一段约定格式的文本,被外面的程序读懂后,替它去执行。
这一句是理解 Agent 的第一把钥匙。把 LLM 和 Agent 画等号,是入门阶段最常见、也最耽误事的误解。 LLM 是 Agent 的一个零件,而且是只管"想"的那个零件。
四、最简单的一次对话,是这样走的
不需要动手的时候,流程短得几乎没什么可讲。
这一圈里,工具没参与、记忆没写入、技能没加载,是最短路径。判断一个框架好不好用,往往不看这条最短路径,而看后面那几条长路径跑得稳不稳。
五、Agent 干活的套路,就是不断循环这三步
只要任务需要动手,套路就固定下来了:想一下、动一下、看看结果、再想一下,直到搞定为止。
这个循环在业内有正式名字,叫 ReAct(Reason + Act),也就是"推理一步、行动一步、观察一步"。它值钱的地方不在概念,而在退出条件:什么时候算搞定、最多循环几轮、超轮数了怎么兜底——这三件事写不好,Agent 就会陷入"想一下动一下"的死循环,把预算烧光还在原地打转。
六、加上"动手"之后,完整流程长这样
这张图基本就是 Agent 工作的标准剧本,值得多看两眼。
看第 4 步和第 7 步:它们说的是两套完全不同的"语言"。Agent 对大脑说话,用的是自然语言加结构化文本;Agent 对工具说话,用的是真实的函数调用。中间这层翻译,就是所有 Agent 框架的核心工作量所在。 框架好不好,八成看这层翻译做得糙不糙。
七、工具 Tool,说白了就是一个"说明书 + 按钮"
大模型不会自己发明工具,得有人先把工具"介绍"给它。
落到代码上,模型能看到的只有前三项,最后那项函数体它是看不见的:
{
"name": "search_docs",
"description": "在项目文档里按关键词搜索,返回命中的段落",
"parameters": {
"type": "object",
"properties": {
"keyword": {"type": "string", "description": "搜索关键词"},
"top_k": {"type": "integer", "description": "返回条数,默认 5"}
},
"required": ["keyword"]
}
}
所以 description 写得含糊,工具就一定会被选错。 这不是模型笨,是你没把说明书给全。工具描述是给模型看的接口文档,不是给自己看的注释——这个区别,决定了你的 Agent 是"能干活"还是"乱干活"。
八、大模型是怎么"选"工具的
答案是:它没有在"选",它是在编一段格式规规矩矩的话,告诉 Agent"帮我调这个"。
这里面有个很现实的天花板:工具清单越长,选错的概率越高。 五个工具的时候模型几乎不会错,五十个工具的时候它开始张冠李戴。所以成熟的做法不是"能接多少接多少",而是按场景裁剪工具集,或者先做一层工具路由——这一点,跟你把五十个功能塞进一个下拉菜单是同一个道理。
九、MCP 是啥?不是工具,是"通用插座"
以前接一个外部能力,要单独写一套对接代码;MCP 让所有能力都用同一种插头。
MCP(Model Context Protocol)真正解决的问题,是把对接成本从 N × M 降到 N + M:以前是 N 个应用各自去对接 M 个能力,现在是大家一起遵守同一份协议,各自只做一次适配。
记住一句话:MCP 是接口标准,不是能力本身。 插座不供电,供电的是插上去的那个电器。
十、MCP 的三层,谁连谁
插座这个词要落到具体角色上,就分成了三层。
| 角色 | 是什么 | 打个比方 |
|---|---|---|
| Host | 跑在用户这边的应用 | 家里的电器本体 |
| Client | Host 内部的连接器,一个 Server 配一个 | 插头 |
| Server | 提供能力的服务端 | 墙上的插座后面那条电线 |
| Resources | Server 对外提供的东西 | 工具、资料、提示词 |
Host 和 Client 都在用户这边,Server 才是被接入的那一方。 分清这条边界,你就能判断一个"支持 MCP"的说法到底是指哪一层——很多宣传其实只做到了 Client 那一层。
十一、工具和 MCP 到底啥关系
一句话:MCP 是接入方式,工具是最终被用到的那个能力。
左边和右边的差别,不在"工具变多了",而在"接进来的成本降下来了"。工具负责能不能做,MCP 负责接得上——两件事,别混着说。
十二、技能 Skill,就是"老师傅留下的秘籍"
把一类事情该怎么干的经验,提前写好放在那里,等用的时候直接翻。
技能的本质是把即兴发挥变成既定流程。只靠模型临场想,也能干,但十次里有三次跑偏;把踩过的坑、验证过的步骤写进技能,这三次就省下来了。
所以技能写的是"怎么做",不是"能做什么"——这是它和工具最根本的分界线。
十三、技能和工具,别搞混了
工具是"能不能做",技能是"该怎么做才靠谱"。
| 维度 | 工具 Tool | 技能 Skill |
|---|---|---|
| 回答的问题 | 有没有这个能力 | 该怎么做才对 |
| 形态 | 函数 + 参数 schema | 文档 + 模板 + 脚本 |
| 谁提供的 | 开发者在代码里注册 | 把经验沉淀成文件 |
| 换一个模型还有效吗 | 基本有效 | 完全有效 |
| 典型失败 | 选错工具、参数填错 | 不按流程走、漏掉关键步骤 |
最后一行值得多说一句:工具解决"手够不够长",技能解决"脑子够不够专业"。 一个 Agent 什么都能做、但什么都做不对,通常是技能这一层空了。
十四、技能是怎么被"想起来"的
先扫一眼所有秘籍的标题,对上号了,才认真翻开细看。
注意这是按需加载,不是全量塞进去。原因在下一节:上下文是有预算的。把所有技能全文都塞进去,等于把真正重要的信息挤到角落里,模型反而抓不住重点。
所以技能的简介(description)写得准不准,直接决定它能不能被"想起来"。 一个永远加载不到的技能,等于没写。
十五、记忆 Memory:脑子的笔记本
短期记忆是这次聊天的内容,长期记忆是跨越很多次对话攒下来的东西。
两者的寿命完全不同:短期记忆随会话结束就没了,长期记忆才是真正的"成长"。 所以写长期记忆的标准不该是"这次发生了什么",而该是"下次还用得上吗"。
这条标准卡得越严,记忆库越干净;卡得越松,笔记本最后会变成垃圾场——每次对话都要背着几万字的过期信息上场。
十六、每次问大模型之前,要先"打包"这些东西
这一整包东西,就是所谓的"上下文"。
看这张图要注意一件事:上面六项抢的是同一块预算。 规则写长了,历史就得压缩;工具接多了,技能就得精选。模型本身不记得任何东西,你每次给它的这一包,就是它此刻知道的全部世界。
这也是为什么"上下文工程"会变成一门单独的活——它不是把资料堆得越多越好,而是在有限预算里做取舍。
十七、大任务要先拆成小任务
碰到复杂活,不能瞎干,先拆成能一步步执行的小块。
拆解的价值不在于"看起来更有条理",而在于每一步的产出都能被验证。一个二十步的大任务,中间错了没人知道;拆成二十个小任务,每一步的失败当场就能暴露。
规划做得好不好,看的不是拆得细不细,是每一步能不能单独验收。
十八、Agent 一次任务,要经历这几个状态
从"闲着"到"搞定",中间会来回切换好几次。
"观察中 → 思考中"这条回边,就是 Agent 和普通工作流的根本区别。 工作流是画好的流程图,一条道走到黑;Agent 是走一步看一步,下一步走哪儿取决于上一步的结果。
代价也很直白:可预测性下降。 这就是为什么真正上生产的 Agent,往往是"框架内自由"——大流程固定,局部让它自己判断。
十九、工具翻车了怎么办
别慌,把错误信息原样喂回去,大模型会自己想办法换招。
关键全在"原样"两个字上。很多实现把异常吞掉,只回模型一句"执行失败",结果就是模型只能盲猜、原地重试同一个工具,直到把轮数耗光。
报错信息本身就是最有价值的上下文。 参数类型不对、路径不存在、权限不够——这些细节喂回去,模型往往一轮就能换对招;吞掉它们,等于把 Agent 的自愈能力亲手拆掉。
二十、压轴:把前面十九张图全拼在一起
这就是一个 Agent 真正跑起来的完整样子,慢慢看,别急。
[配图建议:一张真实 Agent 运行时的轨迹截图,把思考、工具调用、观察结果按时间轴并排展示,对照这张结构图看,概念会立刻落地]
这张图里有三处最容易出问题,也最值得盯着看:
- 打包背景那一块——背景塞太多,重点被淹没;塞太少,模型什么都不知道
- "怎么动手"那个分叉——本地工具、MCP、技能三条路走错,任务就开始跑偏
- "没搞定就循环"那条回边——没有退出条件,就是烧钱黑洞
其余部分都是工程细节,这三处才是 Agent 的胜负手。
二十一、常见误解速查表
六个部件,一句话一个:
大脑 = LLM,负责想
手 = Tools,负责干
说明书 = Skill,负责干得对
记事本 = Memory,负责记得住
规划员 = Planner,负责拆得开
插座 = MCP,负责接得上
避坑清单(听到一个新名词时,先问自己这几个问题):
- 它是零件还是整机?——LLM 是零件,Agent 是整机,两者不能画等号
- 它是能力还是方法?——工具管"能不能做",技能管"怎么做才靠谱"
- 它是接入方式还是能力本身?——MCP 是插座,工具才是插上去的电器
- 它是这次对话的还是跨对话的?——短期记忆随会话消失,长期记忆才谈得上"成长"
- 报错信息有没有原样喂回去?——吞掉异常,等于让模型永远学不会换招
判断一个东西是不是 Agent,不看它会不会聊天,看它能不能把任务办完。
二十二、一句话总结
Agent 不是"更聪明的聊天机器人",而是一个会自己干活的程序:大脑(LLM)只负责想,工具(Tools)负责真的动手,技能(Skill)沉淀"这件事该怎么做",记忆(Memory)负责跨对话记住东西,规划员(Planner)负责把大任务拆开,MCP 则是把这些能力接进来的统一插座;这些零件靠"想一步、动一步、看一步"的循环串起来,而真正决定它好不好用的,往往不是那个最显眼的大模型,而是打包上下文、选择动手方式、以及给循环设定退出条件这三处工程细节。
个人声明:
本文为科普向拆解,框架与协议的实现细节各家差异较大,具体以官方文档为准;不同框架在工具路由、上下文裁剪、循环控制上的策略差异。有疑议不要喷俺,可以留言!!!

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)