AI大模型、Agent、MCP、Skill与Token关系一图通:从概念到实践

作者:菠萝爱吃肉2026.11.04 11:44浏览量:0

简介:本文用教程式讲解帮你理清大模型、Token、Agent、MCP、Skill、多智能体协作等概念之间的关系,并说明它们在智能应用开发中分别解决什么问题、如何组合使用。适合开发者、技术负责人以及对AI应用架构感兴趣的人员阅读。

agent-mcp-skill-token-">AI大模型、Agent、MCP、Skill与Token关系一图通:从概念到实践

教程目标

本文要完成一个明确任务:帮你把“大模型、Token、Agent、MCP、Skill、多智能体协作”这些高频AI概念放在同一个框架里理解,并说明它们在实际开发中如何组合起来完成一个可运行的智能应用。

完成阅读后,你将能够:

  1. 用自己的话说清楚每个概念的核心职责,而不是只记住名词;
  2. 理解它们之间的依赖关系和调用链路;
  3. 知道在一个典型智能应用项目中,从模型选型到多智能体编排需要经历哪些关键步骤;
  4. 掌握基本的验证思路和常见问题排查方法。

本文不绑定任何特定厂商或平台,所有描述均基于业界通用概念和常见技术方案。文中提到的组件名称均做中立化处理,避免指向具体商业产品。

适用读者

  • 后端开发者:需要把大模型能力接入现有业务系统,但不清楚Agent、MCP、Skill分别放在哪一层;
  • 技术负责人:需要评估智能应用架构、判断团队技术路线是否合理;
  • 运维与平台工程师:需要理解Token消耗、上下文管理、外部工具调用对资源与成本的影响;
  • 产品与技术交叉角色:需要理解这些概念能解决什么业务问题,以及落地时的关键约束。

如果你刚接触这些概念,建议按本文顺序阅读,先建立整体图景,再逐层深入。如果你已经熟悉其中某一部分,可以直接跳到对应章节。

前置准备

阅读和实践本文内容,不需要购买任何特定云服务。你需要具备以下基础:

  • 了解HTTP请求与响应、API调用的基本概念;
  • 了解JSON等通用数据格式;
  • 对“机器学习模型通过预测生成文本”有基本感知,不要求掌握 Transformer 等底层原理;
  • 有一个可调用的大模型API端点(可以是任意中立服务商提供的兼容接口),或者本地部署模型环境。

注意:本文不会要求你使用某个特定品牌的云服务控制台。所有操作步骤均以通用、可迁移的方式描述。

一、先建立整体框架:公司类比

很多文章单独解释“Agent是什么”“MCP是什么”,看完仍然不知道它们如何配合。这里用一个不涉及任何品牌的公司类比来建立框架。

把一套完整的智能应用系统想象成一家公司:

  • 大模型:公司里知识渊博、但不会主动做事的专家。你问什么它都能答,但它本身不连外部系统,也不执行具体动作。
  • Token:专家思考和写字时消耗的基本资源单位。每说一句话、每读一段材料,都消耗Token。
  • Agent:公司里能自主完成任务的员工。它知道目标是什么,能拆解任务、调用工具、根据结果调整下一步行动。
  • MCP:一种标准的“工具对接协议”。可以理解为公司内部统一的“插座标准”,让员工可以按统一方式接入搜索引擎、数据库、邮件、日历等外部工具。
  • Skill:员工掌握的某项具体技能。比如“把自然语言转成SQL查询”“从网页抓取结构化信息”“用正则表达式清理文本”。Skill通常是对提示词、工具调用、流程片段的封装。
  • 多智能体协作:多个员工分工配合完成一项复杂任务。有人负责规划、有人负责检索、有人负责验证、有人负责汇总。

这个类比的价值在于:它让你知道每个概念属于系统的哪一层。大模型是底层引擎,Token是资源度量,Agent是执行主体,MCP是外部连接标准,Skill是能力封装,多智能体是协作模式。

下面逐一深入。

二、大模型:不会主动干活的引擎

大模型是整套系统的推理与生成引擎。它的核心特征是:

  • 能理解自然语言、生成自然语言;
  • 能进行代码生成、摘要、翻译、分类、信息抽取等通用任务;
  • 但默认状态下无法直接访问互联网、文件系统、数据库或调用外部API。

这意味着:大模型本身是“被调用”的能力单元。你必须在它外面包一层执行逻辑,它才能从“只会说”变成“能做事”。这一层执行逻辑,就是后面要讲的Agent及相关组件。

在教程式理解中,你可以把大模型看作一个函数:

  1. response = model(prompt, context, tools)
  • prompt:你给模型的任务描述;
  • context:模型需要的背景信息;
  • tools:模型可以声明调用的外部工具说明;
  • response:模型返回的文本,可能包含普通回答,也可能包含“我要调用某工具”的结构化指令。

理解这个函数视角很重要。后续的Agent、MCP、Skill,本质上都是围绕如何更有效地组织prompt、context和tools,以及如何处理response而展开的。

三、Token:成本、上下文与性能的度量单位

3.1 Token不是字数

Token是大模型处理文本的最小单位。不同模型的分词策略不同,中文、英文、代码的切分结果也不同。一般来说:

  • 一个常见英文单词可能对应1个Token;
  • 一个中文字符可能对应1到2个Token;
  • 标点、空格、特殊符号也会占用Token。

因此,不能简单用“字数”估算Token消耗。开发时需要通过模型的Token统计接口或本地分词工具实际测算。

3.2 Token决定三件关键事项

第一,成本。 云上大模型API通常按Token计费,输入和输出价格可能不同。如果不关注Token消耗,“自动生成长篇报告”这类功能可能带来远超预期的成本。

第二,上下文长度。 每个模型有最大上下文窗口。你输入的prompt、历史对话、检索到的外部资料、中间推理结果,全部占用这个窗口。超出窗口会报错或导致模型遗忘较早信息。

第三,响应质量与延迟。 上下文过长,模型可能忽略关键信息;输出Token限制过大,响应时间会增加;输出过短,则可能截断关键结论。

3.3 通用实践建议

  • 在开发环境打印每次请求的Token用量,建立成本感知;
  • 对历史对话进行摘要压缩,而不是无限追加;
  • 只把与当前任务最相关的资料放入上下文;
  • 设置合理的输出上限,避免模型自由发挥到Token耗尽。

四、Agent:让模型从“会答”变成“会做”

4.1 Agent解决什么问题

大模型只会生成文本。Agent要解决的核心问题是:如何让一个只会生成文本的模型,完成需要多步骤、多工具参与的复杂任务。

举个例子:用户说“帮我查一下最近三天某行业的重要新闻,并整理成简报发到团队邮箱”。这个任务涉及:

  1. 解析用户意图;
  2. 调用搜索引擎或新闻数据源;
  3. 筛选、去重、归纳;
  4. 生成简报文本;
  5. 调用邮件发送接口。

大模型自己做不到后四步。Agent可以在循环中完成以下过程:

  1. while 任务未完成:
  2. 调用大模型,获取“下一步行动”决策
  3. 如果模型要求调用工具:
  4. 执行工具调用
  5. 把工具结果作为新上下文喂给模型
  6. 如果模型给出最终答案:
  7. 结束并返回

这个循环通常称为“推理-行动循环”。

4.2 Agent的关键组件

一个典型Agent包含:

  • 模型节点:负责推理与决策;
  • 工具集合:可调用的外部能力;
  • 记忆模块:短期记忆保存当前会话状态,长期记忆保存跨会话信息;
  • 规划与反思模块:复杂任务需要拆解目标、在执行中校验结果、在失败后重试。

4.3 一个通用Agent流程示例

下面用伪代码表示一个“查询资讯并总结”的Agent流程:

  1. tools = [search_tool, email_tool]
  2. context = system_prompt + user_goal
  3. history = []
  4. for step in range(max_steps):
  5. response = model(context, history, tools)
  6. if response.action == "search":
  7. result = search_tool(response.query)
  8. history.append({"tool": "search", "result": result})
  9. elif response.action == "email":
  10. email_tool(response.draft)
  11. history.append({"tool": "email", "status": "sent"})
  12. elif response.action == "finish":
  13. return response.final_answer
  14. else:
  15. history.append({"text": response.text})

这个流程可以帮助你理解:Agent的核心不是“更聪明”,而是通过循环和外部反馈,让模型逐步逼近真实可用的结果。

五、MCP:统一工具接入的标准方式

5.1 MCP要解决的混乱

如果没有统一标准,每个Agent接入工具的方式都不同。开发搜索引擎工具是一种接口格式,接入数据库是另一种格式,接入企业内部系统又是一种格式。重复开发、难以复用、维护成本高。

MCP作为中立技术概念,要解决的是:用一种统一的方式描述工具、调用工具、返回工具结果。

可以把它理解为“工具接入的标准协议层”。它定义了几类核心对象:

  • 工具:可执行的函数,有名称、描述、输入参数定义;
  • 资源:可读取的数据源,如文件、知识库记录;
  • 提示词模板:可复用的提示片段。

5.2 MCP在系统中的位置

MCP位于Agent与外部工具之间:

  1. Agent <---> MCP <---> 具体工具实现

Agent不需要知道搜索引擎是哪个服务商提供的,也不需要知道数据库是哪种类型。它只需要通过MCP标准接口调用“搜索”或“查询”工具。

这种设计带来的好处:

  • 工具实现可以替换,Agent逻辑无需变更;
  • 多个Agent可以共享同一套工具;
  • 企业内部系统可以按统一方式暴露给智能应用。

5.3 通用接入步骤

下面是一个中性化的MCP工具接入流程,不涉及任何具体平台:

  1. 确定要暴露的能力,例如“查询订单状态”;
  2. 按标准格式定义该工具的名称、说明、输入参数、输出结构;
  3. 在工具服务端实现具体逻辑,例如查询数据库并返回JSON;
  4. 在Agent侧注册该工具;
  5. 在提示词中声明该工具的用途,使模型知道什么时候调用它;
  6. 运行测试,观察模型是否能在正确时机调用该工具,并检查返回结果是否被正确理解。

六、Skill:可复用的能力封装

6.1 Skill与工具的区别

工具通常指一个具体的、可执行的外部调用。而Skill可以是更复杂的封装,它可能包含:

  • 特定任务的提示词;
  • 多个工具的组合调用;
  • 对输入输出的格式约束;
  • 错误处理与重试策略。

例如,“生成周报”可以是一个Skill。它内部可能调用“聚合代码提交记录”“查询任务完成情况”“生成文本”“发送邮件”等多个工具。对上层Agent来说,它看到的是一个统一的“生成周报”能力。

6.2 Skill的通用设计原则

  • 单一职责:一个Skill只做一类清晰任务;
  • 输入输出明确:定义清楚的参数结构和返回结构;
  • 失败可观测:当Skill执行失败时,应返回结构化错误信息,让上层Agent能够决定重试还是更换策略;
  • 可组合:多个Skill可以编排成一个更复杂的工作流。

6.3 Skill的开发步骤

  1. 定义任务边界:明确该Skill负责完成什么;
  2. 设计输入输出结构;
  3. 确定需要调用哪些底层工具或模型能力;
  4. 编写主流程、错误处理和重试逻辑;
  5. 为上层Agent提供标准的Skill描述,使其知道何时使用该Skill;
  6. 在开发环境验证,再逐步接入生产链路。

七、多智能体协作:复杂任务的分工与编排

7.1 什么时候需要多智能体

单Agent适合任务边界较清晰、步骤较少的场景。如果出现以下情况,可以考虑拆分为多智能体:

  • 任务涉及不同专业领域:如需要同时完成意图识别、代码审查、合规检查;
  • 上下文窗口有限:单Agent承载太多信息容易遗漏,拆分成专职Agent可以各自维护更聚焦的上下文;
  • 需要并行处理:多个子任务可以同时执行,缩短整体耗时;
  • 失败隔离:某个环节出问题不应影响全局。

7.2 常见协作模式

模式一:流水线。 Agent A完成输入解析,Agent B完成信息检索,Agent C完成汇总输出。每一级接收上一级结果。

模式二:主从调度。 一个主控Agent负责任务拆解与分发,多个执行Agent分别完成子任务,最后主控Agent合并结果。

模式三:并行竞争与投票。 多个Agent独立生成答案,由一个评审Agent选择或融合最优结果。适用于对质量要求较高的场景。

7.3 多智能体编排的关键设计点

  • 任务边界清晰:每个Agent的职责要明确,且转换节点要显式定义;
  • 共享状态管理:多个Agent之间如何共享任务状态,需要尽早设计;
  • 通信协议简单稳定:Agent之间的消息格式应当统一,减少转换损耗;
  • 可观测性:每个Agent的输入、输出、耗时、失败原因应记录,否则排查问题会非常困难。

八、实施步骤:串联一个最小可运行的智能应用

下面给出一套中性化、可迁移的实施步骤。你可以在任意支持通用API调用的环境中完成类似实现。

步骤1:定义任务与边界

先写清楚业务任务。例如:“用户输入一个主题,系统返回该主题最近七天的核心动态摘要,并附带信息来源列表。”

明确边界:不要一开始就追求“全自动自主智能体”,先做单Agent、单Skill的闭环。

步骤2:准备大模型访问端点

准备一个可调用的模型API。可以是云服务商提供的通用模型接口,也可以是本地部署模型。记录以下信息:

  • 模型名称或标识;
  • 最大上下文长度;
  • 是否支持工具调用;
  • 输入输出Token计费规则。

步骤3:设计并实现一个外部搜索工具

按MCP通用格式定义一个工具:

  1. {
  2. "name": "search_news",
  3. "description": "根据主题和时间范围检索相关新闻,返回标题、来源、日期和内容摘要。",
  4. "parameters": {
  5. "topic": "string",
  6. "start_date": "string",
  7. "end_date": "string"
  8. }
  9. }

在实现层,该工具可以调用内部数据源、搜索接口或知识库。具体实现细节由团队决定,但工具的标准描述应与MCP保持一致。

步骤4:封装一个“新闻摘要Skill”

该Skill内部流程:

  1. 接收主题和日期范围;
  2. 调用search_news工具;
  3. 对返回记录进行去重和排序;
  4. 调用前端大模型生成结构化摘要;
  5. 返回JSON格式结果,包含摘要正文和来源列表。

步骤5:实现单Agent调度循环

Agent主循环负责:

  • 解析用户输入;
  • 调用“新闻摘要Skill”;
  • 将结果展示给用户;
  • 若用户要求修改,继续循环。

这个阶段不需要复杂多智能体。先把单Agent的“感知-决策-执行-反馈”闭环跑通。

步骤6:结果验证

  • 输入一个你已知答案的主题,观察摘要是否覆盖关键事件;
  • 检查来源列表是否准确,避免模型编造来源;
  • 统计Token消耗,确认成本在可接受范围;
  • 记录耗时,判断哪些环节需要优化。

九、常见问题与排查

问题1:模型没有调用工具

可能原因:

  • 工具描述不够清晰,模型无法判断使用时机;
  • 输入参数定义不完整,模型不知道如何填充;
  • 模型本身不支持工具调用或配置未开启。

排查思路:简化任务,明确提示“可以使用某工具完成某步骤”;检查工具的description是否包含使用场景和参数说明。

问题2:上下文超长

可能原因:

  • 历史对话无限追加;
  • 检索结果过多,全部塞进上下文;
  • 中间步骤产生大量冗余文本。

排查思路:添加上下文压缩步骤;限制每次检索返回条数;对中间结果只保留关键字段。

问题3:Agent陷入循环或重复调用同一工具

可能原因:

  • 工具返回格式不稳定,模型无法判断任务是否完成;
  • 循环步数上限设置过大;
  • 缺少明确的终止条件。

排查思路:设置合理的步数上限;在工具返回中增加明确的“是否已满足任务目标”字段;在提示词中要求模型在每个循环开始前判断任务完成情况。

问题4:Token成本爆增

可能原因:

  • 输出长度限制太高;
  • 对简单任务使用了过长提示词;
  • 检索内容格式冗余。

排查思路:对提示词做模板化精简;限制源数据字段,只传必要信息;设置合适的max_tokens输出上限。

问题5:多个Agent之间结果不一致

可能原因:

  • 各Agent对输入格式理解不同;
  • 缺少统一的任务状态定义;
  • 不同Agent使用的模型或提示词版本不一致。

排查思路:统一定义Agent间数据交互结构;为每个Agent固定版本;增加一个“对齐节点”来统一语义。

十、优化建议

10.1 性能优化

  • 对高频工具调用做本地缓存,例如相同主题的搜索结果短时间复用;
  • 把可以并行执行的子任务并发调度;
  • 对提示词做压缩,减少无效Token。

10.2 成本控制

  • 建立Token用量监控面板,按模块统计消耗;
  • 为大任务设置预算阈值,超过后降级为简单模式;
  • 对低频但重要的能力使用更强模型,对简单任务使用轻量模型。

10.3 稳定性和可维护性

  • 所有Agent对外部工具调用记录结构化日志;
  • 为关键流程设置超时和人审回退机制;
  • 使用可观测平台跟踪每一步的耗时、Token、错误类型。

10.4 安全与合规

  • 对输出内容做敏感信息过滤;
  • 对外部工具权限做最小化授权;
  • 对进入上下文的用户数据进行脱敏处理;
  • 保留审计日志,确保可追踪。

十一、总结

再回到最初的问题:“大模型、Agent、MCP、Skill、Token、多智能体协作到底是什么关系?”

答案是:

  • 大模型是底层引擎,负责理解与生成;
  • Token是资源度量,决定成本、上下文和性能;
  • Agent是执行主体,通过循环调用让模型能完成多步骤任务;
  • MCP是工具接入标准,统一外部能力的描述与调用方式;
  • Skill是能力封装,让复杂流程可复用、可组合;
  • 多智能体协作是架构模式,用分工与编排解决更复杂的问题。

把这些概念放在一起,它们不是互相取代,而是各司其职。理解这一层关系,再看任何具体工具或平台,你都能迅速判断它处在哪一层、解决什么问题、如何与现有系统对接。

接下来,你可以在自己项目中先完成一个最小闭环:一个模型、一个工具、一个Agent循环。跑通之后,再逐步引入Skill封装和多智能体分工。这样,从概念到实践的通路就建立起来了。