skill、tool calling、MCP区别

一、最底层:LLM 本身只会"输出文字"

LLM(Claude、GPT、Kimi、DeepSeek 这些)本质上是一个只会生成文字的模型。你给它一段输入,它输出一段文字。仅此而已。

它不能:读你的文件、点击网页、查实时天气、写入 Obsidian、运行代码。

那为什么我们感觉 ChatGPT 能搜索、Claude 能写代码?因为外面套了一层东西,让它"假装"能做这些。这层东西就是接下来要讲的 tool calling、MCP、Skill。

二、Tool Calling(工具调用):最基础的机制

Tool calling 是 LLM 厂商提供的一个 API 特性。流程是这样:

  1. 你(开发者)在 API 请求里告诉模型:"你有这些工具可以用:get_weather(city)read_file(path)write_obsidian_note(content),每个工具的参数和说明是 XX。"
  2. 用户问:"今天上海天气怎么样?"
  3. 模型不直接回答,而是返回一个结构化的 JSON :"我要调用 get_weather,参数 city='上海'。"
  4. 你的代码 接到这个 JSON,真正去执行 get_weather('上海'),拿到结果(比如"晴 25°C")。
  5. 你把结果塞回对话历史,再让模型生成最终回复:"今天上海晴天,25度。"

关键点:LLM 自己不会执行工具,它只会"说我想用哪个工具"。真正的执行是你写的代码做的。LLM 厂商只是规范了"模型怎么表达想用工具"这件事。

这就是 tool calling 的全部。它是个底层协议

三、MCP(Model Context Protocol):工具的"标准化接口"

Tool calling 解决了"模型怎么说想用工具",但留了一个问题:工具本身怎么写、怎么分发?

举例:你想让 Claude 能操作你的 Notion,那你得自己写 Notion API 的封装代码、定义工具 schema、处理认证、塞进 API 请求里。我也想让 Claude 操作 Notion,我也得从零写一遍。Bob 想让 GPT 操作 Notion,他还得再写一遍------而且因为 Claude 和 GPT 的 tool calling 格式有细微差别,还得改。

Anthropic 在 2024 年底推了 MCP (Model Context Protocol),它的核心想法是:把"工具"做成可以独立运行的小服务(叫 MCP Server),用统一的协议和任何 LLM 客户端通信。

类比:MCP 之于 LLM 工具,就像 USB 之于硬件外设。以前每个鼠标键盘都有自己的接口,现在统一 USB,插哪都能用。

具体形式:

  • 一个 MCP Server 是一个独立的程序(可以是 Python、Node.js、Rust 写的),监听某个端口或 stdio
  • 它声明自己提供哪些工具(比如 notion-mcp-server 提供 create_pagesearch_pages 等)
  • 任何支持 MCP 的客户端(Claude Desktop、Claude Code、Cursor、OpenClaw 等)都能连上这个 server,立刻获得这些工具能力
  • 你不用改 LLM,不用改客户端,只要装一个 MCP server 就行

所以 MCP 和 tool calling 的关系是:tool calling 是 LLM 层面的协议("模型如何表达想用工具"),MCP 是工具层面的协议("工具如何被分发和调用")。MCP server 内部最终还是用 tool calling 把工具暴露给模型。

四、Skill:给 Agent 的"操作手册"

Tool 解决"能做什么"(capability),Skill 解决"该怎么做"(know-how)。

举个例子。你给 Claude 一堆工具:read_filewrite_filerun_pythonsearch_web。然后你说:"帮我做一个 PPT"。Claude 知道有这些工具,但它不一定知道:

  • 应该用哪个 Python 库(python-pptx?还是别的)
  • 你公司的 PPT 模板放在哪
  • 标题字号该用多大、配色用什么
  • 要不要加封面页和封底

Skill 就是把这些"领域知识 + 操作步骤"写成一个 markdown 文件,放在 agent 能找到的地方。Agent 在执行任务前先读 SKILL.md,按里面的指引调用工具。

一个典型的 SKILL.md 长这样:

markdown 复制代码
# job-tracker Skill

## 何时使用
当用户提到"记录岗位"、"投递了 XX 公司"、"保存这个 JD"时使用。

## 执行步骤
1. 解析用户提供的 JD 文本,提取公司、岗位、薪资、地点
2. 用 LLM 总结 JD 核心需求(必备技能、加分项)
3. 调用 write_file 工具,把内容按指定格式写到 ~/Obsidian/求职/岗位/{公司}_{岗位}_{日期}.md
4. frontmatter 用 YAML 格式,字段包括 ...
5. 完成后在聊天里回复"已记录到 Obsidian"

Anthropic 在 Claude 应用和 Claude Code 里推这个概念叫 Agent Skills (你看我的系统里有 /mnt/skills/public/docx/SKILL.mdpptx/SKILL.md 这些就是)。OpenClaw 直接借用了这套设计,它的 Skills 放在 ~/.openclaw/workspace/skills/

Skill 和 MCP 的区别:MCP 是给模型加新工具(新能力),Skill 是教模型怎么用已有工具完成特定任务(操作手册)。一个 Skill 通常会调用多个工具,可能是内置工具、也可能是 MCP 工具。

五、Claude Code 是什么

Claude Code 是 Anthropic 出的一个命令行工具(CLI),本质上是一个跑在终端里的 coding agent。

它内置了:文件读写、bash 执行、代码搜索、git 操作等工具。你在终端里 claude 一下,就开始和它对话,它能直接读你当前目录的代码、改文件、跑测试。

它支持 MCP(你可以接 GitHub MCP 让它操作 PR),也支持 Skills(放在 .claude/skills/ 目录)。

和 OpenClaw 的对比

  • Claude Code = 给开发者用的、专注于 coding 的 CLI agent,绑定 Claude 模型
  • OpenClaw = 给所有人用的、通过 IM 聊天交互的、什么都能做的个人 agent,模型可换
相关推荐
我不是疯子是傻子6 分钟前
Qt 实时曲线卡顿优化:从QPainter到OpenGL的3级加速实战
开发语言·qt
zlinear数据采集卡7 分钟前
D223 ADC数据处理流水线:从原始采样值到工程单位的完整转换链
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
wu_jing_sheng08 分钟前
哨兵卫星数据下载工具:基于CDSE的PySide6桌面应用开发实践
人工智能
小唔w9 分钟前
2026年AI培训行业观察:主流学习渠道一览
人工智能·学习
美狐美颜sdk11 分钟前
直播APP开发技术架构解析:从音视频流到第三方美颜SDK接入的完整方案
大数据·人工智能·音视频·美颜sdk·美颜api
CIO_Alliance19 分钟前
AI认知系列(3)| 数据、算法、算力、场景四要素协同
人工智能·算法·ipaas·系统集成·企业cio联盟·企业级ai化转型
技术传感器27 分钟前
让 Hermes 自动完成一个软件需求:从 Issue 到 PR 的 AI 开发流水线
人工智能·架构·aigc·需求分析·issue
啥都想学点的研究生28 分钟前
一篇文章讲清楚:机器学习的相关概念
人工智能·机器学习
Capricorn198835 分钟前
知芽研究问题看板无法推进?从孵化区到笔记的机制排查指南
大数据·论文阅读·人工智能·笔记·学习方法·论文笔记
Wang's Blog1 小时前
AI Agent白手起家76:使用 CrewAI 搭建多智能体营销策略生成器
人工智能