006-Skill-MCP-Tool
Skill、MCP 和 Tool 调用是 AI 应用开发中的三种核心技术,分别解决了"做什么"、"如何连"和"如何调"三个层面的问题。理解它们的区别,才能构建高效的 AI 系统。
·
title: Skill、MCP 与 Tool:AI 的三种"动手"方式
author: 墨问手记
💡 摘要:Skill、MCP 和 Tool 调用是 AI 应用开发中的三种核心技术,分别解决了"做什么"、"如何连"和"如何调"三个层面的问题。理解它们的区别,才能构建高效的 AI 系统。
引言
在 AI 应用开发中,让模型"动手做事"是核心需求。你可能会遇到三个术语:Tool 调用、MCP 和 Skill。
很多人分不清它们的关系,其实它们解决的是完全不同层面的问题:
- Tool 调用:让模型能发出"动手"的指令
- MCP:提供标准化的连接方式
- Skill:告诉模型"怎么做"
理解这三者的区别,就像理解:
- 手(Tool):能执行动作
- USB 接口(MCP):连接外部设备
- 操作手册(Skill):知道怎么用设备
核心概念
1. Tool 调用:AI 的"神经指令"
Tool 调用(也称 Function Calling)是最基础的能力,让大模型能够输出结构化的工具调用指令。
工作方式:
用户提问 → 模型决定调用工具 → 输出 JSON 格式指令 → 执行工具 → 返回结果
特点:
- 直接且高效,是 AI 应用实现"行动"能力的基础
- 但强绑定具体实现,修改成本高
2. MCP 协议:AI 的"USB-C"接口
MCP(Model Context Protocol)是一套标准化的通信接口,为 AI 生态定义了统一的"连接标准"。
工作方式:
AI 应用(客户端)←→ MCP 协议 ←→ 工具服务(服务器)
特点:
- 一次接入,处处可用
- 跨平台复用,降低长期维护成本
- 权限、审计等安全机制在协议层统一管理
3. Skill 协议:AI 的"岗位说明书"
Skill 是模块化的能力封装标准,定义了 AI 在特定场景下该"怎么做"。
工作方式:
任务需求 → 加载对应 Skill → 按 SOP 执行 → 完成任务
特点:
- 极轻量级(核心是 Markdown 文件)
- 易于创建和修改
- 适合固化领域知识和业务规则
核心对比
一张表看懂区别
| 维度 | Tool 调用 | MCP 协议 | Skill 协议 |
|---|---|---|---|
| 核心定位 | 调用机制 | 连接协议 | 能力与流程封装 |
| 比喻理解 | 神经指令 | USB-C 接口 | 岗位说明书/SOP |
| 设计哲学 | 模型原生 | 标准化与解耦 | 流程化与声明式 |
| 开发维护 | 绑定具体实现 | 一次接入,处处可用 | 极轻量级(Markdown) |
| 交互模式 | 同步请求-响应 | 客户端-服务器 | 声明式加载 |
直观类比
| 技术 | 类比 | 作用 |
|---|---|---|
| Tool 调用 | 人的手 | 执行具体动作 |
| MCP | USB 接口 | 连接外部设备 |
| Skill | 操作手册 | 指导如何使用 |
代码示例
Tool 调用示例
# 工具定义
tools = [{
"type": "function",
"function": {
"name": "search_flight",
"description": "查询航班信息",
"parameters": {
"from": {"type": "string"},
"to": {"type": "string"},
"date": {"type": "string"}
}
}
}]
# 模型输出调用指令
response = llm.invoke(
"帮我查明天去北京的航班",
tools=tools
)
# 解析并执行
if response.tool_calls:
call = response.tool_calls[0]
result = search_flight(**call.args)
MCP 客户端调用示例
from mcp_client import MCP
# 连接 MCP 服务器
mcp = MCP("http://localhost:8080")
# 发现可用工具
tools = mcp.list_tools()
print(f"可用工具: {[t.name for t in tools]}")
# 调用工具
result = mcp.call_tool(
tool_name="search_flight",
arguments={"from": "上海", "to": "北京", "date": "2024-01-15"}
)
适用场景
何时选择 Tool 调用?
| 场景 | 示例 |
|---|---|
| 简单、确定性操作 | 查询天气、计算器、简单 API 调用 |
| 环境单一,不需要跨平台 | 内部工具、一次性任务 |
何时选择 MCP?
| 场景 | 示例 |
|---|---|
| 为多个应用提供统一工具集 | 企业级工具平台、跨团队共享 |
| 需要标准化接口 | 数据库查询、GitHub 操作 |
| 需要统一安全管理 | 权限控制、审计日志 |
何时选择 Skill?
| 场景 | 示例 |
|---|---|
| 固化业务流程 | 代码审查标准、报告生成流程 |
| 注入领域知识 | 医疗诊断步骤、法律合规检查 |
| 复杂多步骤任务 | 数据分析流程、文档处理 |
协同工作
在实际应用中,这三者通常协同工作:
用户请求 → Skill(规划)→ MCP(连接)→ Tool(执行)→ 返回结果
示例:用户要求"分析销售数据并生成报告"
- Skill:提供数据分析的 SOP(步骤指南)
- MCP:连接数据库和图表工具
- Tool:执行 SQL 查询和图表生成
最佳实践
- 简单任务用 Tool 调用:直接高效,适合一次性操作
- 多平台工具用 MCP:标准化接入,降低维护成本
- 复杂流程用 Skill:封装知识,便于迭代和共享
- 组合使用:Skill 做规划,MCP 做连接,Tool 做执行
总结
核心要点回顾:
- Tool 调用:最基础的指令通道,让模型能"动手"
- MCP:标准化连接协议,像 USB 接口一样通用
- Skill:封装流程和知识,像操作手册一样指导
- 三者协同工作,构建完整的 AI 能力体系
理解这三者的区别,能帮你在构建 AI 应用时做出正确的技术选择。
更多推荐




所有评论(0)