快手面试题:智能体的工具和技能区分
MCP(Model Context Protocol,模型上下文协议)Tools是在MCP协议框架下,由MCP服务器暴露给智能体(或客户端)的可调用功能。MCP是一个开放协议,它就像AI应用的“USB-C接口”,旨在标准化应用程序(如智能体、IDE)如何向大语言模型提供上下文和功能。在这个协议下,一个“Tool”就是一个可以被模型智能体调用的具体操作。Skills(技能)是一个更宽泛、更上层的概念
题目
概念区分:智能体的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 Toolsend_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_file、http_get。 |
可细可粗。可以是原子的,也可以是多个操作的组合。 |
| 组合关系 | 是构建 Skills 的基础组件。 | 可以调用一个或多个 MCP Tools 来完成其任务。 |
| 类比 | 乐高积木块。它们是构建复杂结构的基本、标准化的单元。 | 乐高模型(如一辆车、一栋房子)。它们是用标准积木块搭建起来的、具有特定功能的完整结构。 |
总结
-
MCP Tools 是标准化“连接”的产物。它解决的是“如何让AI以统一方式使用成千上万种不同工具”的问题。它让工具的提供变得简单、即插即用。
-
Skills 是智能化“能力”的体现。它解决的是“如何让AI完成一个具体、复杂的任务”的问题。它让智能体变得有用、强大。
可以这样理解:Skills 定义了“做什么”,而 MCP Tools 提供了“怎么做”的标准方式。一个健壮的智能体系统,通常会用MCP Tools来构建一个丰富的、标准化的“工具库”,然后在这个基础上,通过业务流程和逻辑编排,将这些Tools组合成更高阶的、面向具体场景的Skills。
更多推荐


所有评论(0)