简介:本文从定义出发,系统讲解大语言模型、智能体、技能与模型上下文协议四个易混淆概念。读者将理解它们各自解决什么问题、如何协同工作、典型应用场景及选型注意事项,不再停留在死记术语层面。
在人工智能应用开发中,LLM、Agent、Skills、MCP 这四个词频繁出现,但它们并不处于同一个层级。要真正理解它们,需要先明确各自的技术定位。
LLM(大语言模型) 是一种基于大规模语料训练得到的神经网络模型,核心能力是根据输入文本预测并生成合理的后续文本。它可以完成摘要、翻译、问答、代码生成等任务,但本身不具备主动调用外部工具、访问实时数据或执行复杂多步骤任务的能力。可以把 LLM 理解为“大脑”或“语言引擎”,它负责理解与生成,但不负责行动。
Agent(智能体) 是建立在 LLM 之上的应用层概念。它把 LLM 的推理能力与外部工具、环境反馈、任务规划结合起来,使系统能够自主地完成一个目标。Agent 通常包含感知、规划、执行、记忆等模块。一个完整的 Agent 会根据用户目标进行任务拆解,决定何时调用什么工具,观察结果并继续推理,直到任务完成或判定失败。
Skills(技能) 是 Agent 可调用的能力单元。一个技能通常封装了特定领域的操作逻辑,例如“查询天气”“发送邮件”“读取数据库”“生成周报”等。技能可以是函数、API 调用、脚本或一组提示词。Skill 的价值在于把通用模型与具体业务能力解耦,让 Agent 不必理解每个业务细节,只需知道“什么时候调用哪个技能”。
MCP(模型上下文协议) 是一种用于连接模型与外部工具、数据源的标准化通信协议。它的目标是解决“模型如何高效、统一地获取上下文和调用工具”的问题。通过 MCP,不同的 Skills 和工具可以以一致的方式注册、发现、描述和调用,从而降低 Agent 与外部系统集成的复杂度。MCP 并不替代 Agent 或 Skills,而是为它们之间的交互提供规范。
从层级上看:LLM 提供语言理解与推理基础;Agent 负责任务规划与执行控制;Skills 提供具体可执行能力;MCP 则是连接这些能力的通信规范。四者配合,才能构建出真正可用的智能应用系统。
早期使用 LLM 的方式是直接对话。用户输入一段提示词,模型返回一段文本。这种方式在信息查询、文案生成等场景中有效,但面对“帮我查一下昨天生产环境的错误日志并整理成报告”这类需求时,单纯对话式 LLM 无法完成。原因有三点:
第一,LLM 无法访问实时数据。它的知识来自训练语料,无法直接读取数据库、调用接口或查询日志系统。
第二,LLM 不擅长精确执行。它生成的是概率性文本,对于需要精确参数、严格流程的操作容易出错。
第三,任务往往涉及多步骤。完整业务流程需要拆解、判断、调用、验证等多个环节,单一模型推理无法可靠完成。
Agent 的出现正是为了弥补这些不足。Agent 通过连接工具和外部环境,使模型具备“行动能力”。然而,Agent 在实践中又面临新问题:每个工具接口格式不同、认证方式不同、返回结构不同。为了接入一个新工具,开发者往往需要编写大量适配代码。
Skills 的抽象解决了“能力复用”问题。把常用操作封装为标准化技能后,Agent 只需关心技能的名称、描述和输入输出,不必关心内部实现。这显著提升了开发效率和可维护性。
MCP 则进一步解决“连接标准化”问题。在没有统一协议时,不同 Agent 框架与不同工具之间的对接是点对点的。每增加一个工具,都要做一次定制集成。有了标准协议后,工具可以按协议暴露能力,Agent 按协议发现和调用,集成成本大幅降低。
因此,这套体系的本质价值在于:把“语言能力”“任务规划”“具体能力”“通信规范”四个关注点分离,让每一层都可以独立演进和替换,最终降低智能应用的开发复杂度。
理解四个概念,还需要拆解它们各自的内部结构。
LLM 的核心组成:
Agent 的核心组成:
Skills 的核心组成:
MCP 的核心组成:
这些模块协同工作,形成一个从“语言理解”到“行动执行”的完整链条。
下面通过一个通用示例说明整个体系的工作流程。假设用户向一个智能运维 Agent 发出指令:“查一下今天数据库备份是否成功,如果失败就重新触发一次。”
第一步,LLM 接收用户输入,理解意图:查询备份状态,失败时触发重试。
第二步,Agent 的规划器将任务拆解为两个子任务:查询备份状态;根据状态决定是否执行重试。
第三步,Agent 查看可用 Skills 列表。它发现存在“查询备份状态”和“触发备份重试”两个技能。这些技能通过 MCP 注册,带有标准化的描述和参数定义。
第四步,Agent 通过 MCP 调用“查询备份状态”技能。该技能内部连接数据库管理接口,返回备份结果。
第五步,LLM 分析返回结果。假设结果显示“失败”。Agent 根据预先定义的策略判断需要执行重试。
第六步,Agent 再次通过 MCP 调用“触发备份重试”技能,并返回执行结果。
第七步,LLM 将整个执行过程整理为自然语言报告,输出给用户。
整个过程中,LLM 负责理解与总结,Agent 负责决策与控制,Skills 负责具体执行,MCP 负责标准化通信。四者各司其职,又紧密配合。
直接使用 LLM 的场景:
使用 Agent 的场景:
使用 Skills 的场景:
使用 MCP 的场景:
LLM 与 Agent 的区别:
LLM 是被动的语言引擎,Agent 是主动的任务执行系统。Agent 使用 LLM,但 LLM 不等于 Agent。一个 LLM 输出“建议查询数据库”的文本不是行动,而 Agent 真正调用了数据库接口才是行动。
Agent 与 Skills 的区别:
Agent 是决策者,Skills 是执行者。Agent 决定做什么,Skills 负责怎么做。一个 Agent 可以调用多个 Skills,一个 Skill 也可以被多个 Agent 复用。
Skills 与普通 API 的区别:
普通 API 只是技术接口,Skills 包含了对能力的语义描述、参数声明和使用约束。Skills 是面向模型的能力封装,让模型能够理解“何时用、怎么用”。
MCP 与 API 网关的区别:
API 网关解决的是流量路由和治理问题,MCP 解决的是模型与工具之间的语义通信问题。MCP 不仅定义调用格式,还定义工具如何向模型描述自己。
在实际开发中,需要注意以下几个问题:
安全边界。 Agent 调用外部工具时可能产生不可逆操作。必须对技能设置权限边界,对高风险操作引入人工确认机制。不要给 Agent 授予超出业务需要的权限。
上下文管理。 LLM 的上下文窗口有限。Skills 返回的数据可能很大,需要进行摘要或过滤后再送入模型,避免窗口溢出。
错误处理。 工具调用可能失败、超时或返回异常结构。Agent 需要具备重试、降级和异常上报机制。
工具描述质量。 Skills 的名称和描述直接影响模型选择工具的准确性。描述不清晰时,模型可能调用错误的技能。
协议兼容性。 如果采用 MCP 进行标准化,需要关注协议的版本演进和兼容策略,避免因协议升级导致已有技能失效。
性能与成本。 多步骤 Agent 任务会消耗大量 token。需要在规划器层面控制步骤数量,避免不必要的反复调用。
LLM、Agent、Skills、MCP 是智能应用开发中四个不同层面的概念。LLM 提供语言理解和生成能力,Agent 负责任务规划与执行控制,Skills 封装可复用的具体能力,MCP 则提供标准化的连接与通信方式。它们之间的关系不是替代,而是分层协作。理解这四者的区别与联系,是从“会用模型”走向“会构建智能系统”的关键一步。