题目

概念区分:智能体的MCP tools和Skills

解答

来详细介绍一下智能体(Agent)领域的两个核心概念:MCP Tools 和 Skills

这两个术语经常被一起提及,但它们处于不同的抽象层级,服务于不同的目的。可以这样理解:

  • MCP Tools 是底层的、标准化的“接口”或“驱动”,它定义了如何连接到一个外部工具。

  • Skills 是上层的、面向任务的“能力”或“功能”,它定义了智能体可以做什么

下面我们分别深入探讨,并梳理它们之间的关系。

一、MCP Tools

1. 核心定义

MCP(Model Context Protocol,模型上下文协议)Tools 是在 MCP协议 框架下,由MCP服务器暴露给智能体(或客户端)的可调用功能

MCP是一个开放协议,它就像AI应用的“USB-C接口”,旨在标准化应用程序(如智能体、IDE)如何向大语言模型提供上下文和功能。在这个协议下,一个“Tool”就是一个可以被模型智能体调用的具体操作。

2. 主要特征
  • 标准化接口:MCP Tools 的定义和调用方式遵循统一的MCP协议规范。无论背后是哪个API、哪个数据库,它都以统一的JSON格式向智能体暴露自身。

  • 声明式定义:一个MCP Tool通常包含:

    • 名称:工具的唯一标识符。

    • 描述:用自然语言说明工具的功能,这对于大语言模型理解何时调用它至关重要。

    • 输入模式:描述调用该工具需要提供哪些参数,通常使用JSON Schema格式定义。

  • 由服务器托管:MCP Tools 不是直接嵌入在智能体代码中的,而是由独立的MCP服务器提供。一个MCP服务器可以提供多个相关的MCP Tools。

  • 执行透明:智能体负责决定调用哪个Tool并传入参数,但Tool本身的执行逻辑(如发送HTTP请求、执行本地命令)是在MCP服务器端完成的,对智能体是透明的。

3. 示例

想象一个“文件系统MCP服务器”,它可能提供以下几个MCP Tools:

  • Tool 名称read_file

    • 描述:读取指定路径的文件内容。

    • 输入模式{ "file_path": { "type": "string", "description": "文件的完整路径" } }

  • Tool 名称list_directory

    • 描述:列出指定目录下的所有文件和文件夹。

    • 输入模式{ "dir_path": { "type": "string", "description": "目录的完整路径" } }

  • Tool 名称write_file

    • 描述:将内容写入指定文件。

    • 输入模式{ "file_path": { "type": "string" }, "content": { "type": "string" } }

智能体通过MCP协议发现这些Tools,并知道如何使用它们。当用户说“帮我读一下桌面的notes.txt”时,智能体会理解这个意图,然后调用read_file这个MCP Tool,并传入参数{ "file_path": "/Users/username/Desktop/notes.txt" }

4. 价值与意义
  • 打破数据孤岛:让AI能够安全、标准地访问实时数据和执行操作。

  • 一次构建,到处使用:开发者构建一个MCP服务器,它提供的Tools可以被任何支持MCP协议的智能体应用所使用。

  • 解耦与模块化:智能体的推理能力与工具的执行业务逻辑完全分离,便于维护和扩展。

二、Skills

1. 核心定义

Skills(技能) 是一个更宽泛、更上层的概念。它指的是智能体为了完成特定任务而具备的一种能力单元。这个能力单元可能由多种底层组件组合而成。

2. 主要特征
  • 面向任务:Skills 直接对应业务层面的能力。例如:“发送邮件”、“搜索公司内部知识库”、“生成销售周报”、“预订会议室”。

  • 组合性:一个Skill可能非常简单,直接对应一个函数或一个API调用;也可能非常复杂,是多个步骤的组合,甚至可能调用多个底层的MCP Tools或其他Skills。

  • 语义化:Skills 的描述和定义更贴近人类语言和业务逻辑。

  • 与平台/框架相关:Skills 的具体实现方式取决于你所使用的智能体开发框架(如 LangChain、AutoGen、CrewAI 等)。在这些框架中,一个Skill通常表现为一个“工具”(Tool,这里的Tool是框架层级的叫法)或一个“代理”。

3. 示例

让我们构建一个“个人助理”智能体,它可以具备以下Skills:

  • Skill 1:整理会议纪要

    • 实现:这可能是一个复杂的流程。它会先调用MCP Tool read_file 读取语音转文字的草稿文件,然后利用大语言模型本身的总结能力生成纪要,最后可能调用MCP Tool send_email 将纪要发送给所有参会人。它组合了大语言模型的推理能力和多个MCP Tools。

  • Skill 2:查询天气

    • 实现:这可能就是一个简单的技能。它会调用一个 MCP Tool get_weather(由某个天气MCP服务器提供),该工具再调用外部天气API。

  • Skill 3:计算两个数的和

    • 实现:这甚至可以不调用任何外部MCP Tool,而是直接执行一段简单的Python代码。这个计算功能本身就是一个Skill。

4. 价值与意义
  • 增强智能体的能力:Skills 是智能体执行具体操作的“手”和“脚”,让智能体从“只会聊天”变成“能够做事”。

  • 复用与共享:在一个团队或组织内,可以构建一个共享的Skills库,不同的智能体应用可以按需选用和组合这些Skills。

  • 抽象复杂性:对用户而言,他只需说“帮我处理这份合同”,而无需关心背后的Skill是调用了哪个MCP Tool来解析PDF,又是调用了哪个MCP Tool来更新CRM系统。

三、MCP Tools 与 Skills 的关系与区别

通过上面的介绍,我们可以清晰地看到它们的关系:

维度 MCP Tools Skills
抽象层级 较低(接口/协议层) 较高(业务/能力层)
核心关注点 如何连接到外部世界。它关心的是“连接”和“调用”的标准方式。 智能体能做什么。它关心的是“任务”和“目标”的实现。
标准性 强标准化。遵循MCP协议,任何客户端都可发现和调用。 无统一标准。实现方式因框架和应用而异。
粒度 通常较细。对应一个原子操作,如 read_filehttp_get 可细可粗。可以是原子的,也可以是多个操作的组合。
组合关系 构建 Skills 的基础组件 可以调用一个或多个 MCP Tools 来完成其任务。
类比 乐高积木块。它们是构建复杂结构的基本、标准化的单元。 乐高模型(如一辆车、一栋房子)。它们是用标准积木块搭建起来的、具有特定功能的完整结构。

总结

  • MCP Tools 是标准化“连接”的产物。它解决的是“如何让AI以统一方式使用成千上万种不同工具”的问题。它让工具的提供变得简单、即插即用。

  • Skills 是智能化“能力”的体现。它解决的是“如何让AI完成一个具体、复杂的任务”的问题。它让智能体变得有用、强大。

可以这样理解:Skills 定义了“做什么”,而 MCP Tools 提供了“怎么做”的标准方式。一个健壮的智能体系统,通常会用MCP Tools来构建一个丰富的、标准化的“工具库”,然后在这个基础上,通过业务流程和逻辑编排,将这些Tools组合成更高阶的、面向具体场景的Skills。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐