游乐游手机版
首页/AI教程/文章详情

从Skills到MCP:给大模型装上工业级机械臂

时间:2026-05-29 15:03
什么是 Skills? —— 环境赋予的“本地超能力” 先别急着晕,咱们把这两个概念拆开看。Skills 这个概念,是 Claude(以及后来的 OpenCode、Trae 这类 AI 编程工具)提出并广泛应用的一种机制。说白了,它并不是模型天生自带的本事,而是你运行的本地环境塞给模型的一个“外设”

什么是 Skills?

—— 环境赋予的“本地超能力”

先别急着晕,咱们把这两个概念拆开看。Skills 这个概念,是 Claude(以及后来的 OpenCode、Trae 这类 AI 编程工具)提出并广泛应用的一种机制。说白了,它并不是模型天生自带的本事,而是你运行的本地环境塞给模型的一个“外设”。

1. 核心定义

Skills 本质上就是“寄生”在宿主环境里的一段功能代码片段。

  • 谁是推手:Claude (Anthropic) 以及它的生态工具圈,比如 Claude Engineer、OpenCode。
  • 它到底是什么:就是一段本地代码,最常见的是 Python 或 Ja vaScript。
  • 它怎么活:完全依赖环境支持。要是 OpenCode 没打开,或者你压根没装这个软件,那这个 Skill 就跟不存在一样。

2. 运行机制:OpenCode 是怎么干活的?

当你在 OpenCode 的对话框里跟 AI 聊需求时,后台其实在悄无声息地走完下面这 4 步:

  1. 检索

    • OpenCode 一启动,就会自动扫描一个固定文件夹,比如 /.opencode/skills/ 或者类似的路径。
    • 它会把这个文件夹里所有脚本的“说明书”(Description)都提取出来。
    • 注意:这会儿代码还没跑,只是先把说明书拿到手。
  2. 注入

    • 你提问题的时候,OpenCode 会把刚才拿到的那些“说明书”悄悄塞进 System Prompt 里。
    • 它的潜台词是:“你看,我手头有这些工具,需要的时候喊我。”
  3. 决策与调用

    • 模型判断该干活了,就会返回一个特殊的 Tag 或者 JSON 格式的指令。
    • 关键点在于:OpenCode 拦截到这个请求后,会在本地环境里,实打实地去运行那个文件夹里对应的代码。
  4. 结果反馈

    • 代码跑完的结果(比如读取的文件内容、终端报错信息)会被抓取回来。
    • 这些结果会被转换成文本,再次塞回对话的上下文里,让模型知道接下来该怎么说。

什么是 MCP?

—— 标准化的“通用外设接口”

再说 MCP。它是由 Anthropic 牵头推出的一套开放协议。跟 Skills 不一样的是,它不再依赖某个特定软件的文件夹或者特定环境,而是建立了一套 Client-Server(客户端-服务器)的连接标准。

1. 核心定义

MCP 是连接 AI 模型与外部数据源/工具的“通用语言”。

  • 提出者:Anthropic(初衷就是为了解决各家 AI 软件工具互不兼容、各自为战的碎片化问题)。
  • 本质:它是一个独立的进程(Process),通过标准的通信协议(JSON-RPC)与主程序对话。
  • 生存条件:MCP Server 自己就是一个小程序。OpenCode 只是去“连接”它,而不是把它“包含”在自己肚子里。

3. 运行机制:OpenCode 是怎么连上 MCP 的?

还是拿 OpenCode 举例子,但这次动作完全不同。OpenCode 不再是去文件夹里翻脚本,而是像打电话一样去连接一个服务。

后台的 4 步“隐形操作”是这样的:

  1. 握手与连接

    • OpenCode 启动时,会根据配置文件(config),在后台启动 MCP Server 进程(比如一个 SQLite 数据库服务)。
    • 两者之间建立通信管道(通常是 stdio 标准输入输出)。
    • 区别:Skills 是扫描静态文件,MCP 是启动动态进程。
  2. 能力协商

    • OpenCode 发问:“你有什么本事?”(发送 tools/list 请求)。
    • MCP Server 回答:“我能查 User 表,能插入数据……”(返回 JSON 格式的工具列表)。
    • OpenCode 把这些能力一股脑都塞给大模型。
  3. 远程调用

    • 大模型决定调用某个工具。
    • 关键点:OpenCode 自己不执行代码,它只当个“传声筒”。它把请求打包成一个 JSON 消息,发送给 MCP Server。
    • MCP Server 在自己的进程里独立干活(查库、调接口),所以非常稳定。
  4. 管道回传

    • MCP Server 干完活,把结果打包成 JSON 发回给 OpenCode。
    • OpenCode 再把这个结果喂给大模型。

MCP 和 Skills 的区别

从架构实现和运行时的角度来看,两者的核心差异主要体现在进程模型和耦合度上。

1. 运行时环境的区别

  • Skills

    Skills 本质上是宿主环境的一部分。

    在 OpenCode 这类 IDE Agent 场景下,Skills 就是一段 Python 或 JS 脚本。当 Agent 决定调用 Skill 时,实际上是 OpenCode 的主进程或者它派生的子进程,直接加载并执行了这段代码。

    • 特点:和宿主环境是强耦合的。环境直接持有代码,直接负责解释执行。
    • 局限:上下文完全依赖当前 IDE 环境配置(比如 Python 解释器路径、依赖库)。
  • MCP

    MCP 采用的是标准的 C/S 架构。

    MCP Server 是一个完全独立的外部进程。OpenCode 只是作为一个 Client,通过标准输入输出(Stdio)或网络套接字(Socket),利用 JSON-RPC 协议跟这个外部进程通信。

    • 特点:松耦合。OpenCode 根本不关心 Server 是用 Rust 写的还是 Go 写的,只在乎协议对不对。

2. 稳定性与故障隔离:为什么涉及数据库必须用 MCP?

拿数据库操作来举例,这正是架构选型的分水岭。

  • Skills 的风险

    如果用 Skills 写一个数据库连接脚本,它其实运行在 OpenCode 的关联进程里。

    一旦这个脚本出点什么岔子——内存泄漏、死循环,或者没处理好连接池导致 IO 阻塞——它会直接拖累宿主程序的性能,严重时甚至能让 IDE 卡死、崩溃。这种缺乏故障隔离的设计,做做本地文件读写(IO 开销小、无状态)还行,一旦涉及复杂业务,那就是埋雷。

  • MCP 的优势

    MCP 实现了进程级隔离。

    当你连接数据库时,连接池维护、SQL 执行全部在独立的 MCP Server 进程里完成。

    • 稳妥之处:即便数据库驱动崩溃了(Crash),或者查询超时导致挂起,死的只是那个 MCP Server 进程,OpenCode 依然安然无恙,只需捕获一个 RPC Error 即可。
    • 状态管理:MCP Server 可以常驻后台,维持数据库的长连接状态,而 Skills 这种一次性脚本很难做到这一点。

3. 抓包视角下的“加载策略”

从抓包看,两者的加载逻辑也截然不同。

Skills:按需加载

Skills 用的是“先看菜单,点菜后再上菜”的策略。

  • 初始化时:抓包会发现,OpenCode 会把所有 Skill 的 Description 合并起来发给大模型。
  • 调用时:一旦决定调用某个 Skill,OpenCode 才去加载这个 Skill 的 Prompt,动态注入到当前对话上下文中。
  • 特点:节省 Token,初始上下文很轻量,用谁才加载谁的详细 Prompt。

MCP:全量加载

MCP 则是把所有说明书一次性拍在桌上的策略。

  • 初始化时:抓包会看到一个巨大的 Payload,MCP Server 把所有可用工具的 function 传给客户端,客户端再全量塞进 System Prompt 里。
  • 调用时:纯粹的数据交换,通常不再有额外的 Prompt 注入。
  • 特点:能力全暴露,大模型对工具认知更清晰,但初始 Token 消耗较大。

总结一下

Skills 是插件化思维,适合轻量级、无状态、依赖宿主环境上下文的本地操作(比如 fs.read)。

MCP 是微服务思维,适合重量级、有状态、需要故障隔离的复杂业务集成(比如 Database)。

来源:https://juejin.cn/post/7602100217656541226
上一篇RAG+LangGraph实战:四个工程踩坑让AI从能用到能上线 下一篇LMQL:大语言模型模块化提示跨后端编程语言
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
年最新JetBrains AI助手Windows本地详细安装配置教程(含下载与环境要求)
AI教程 · 2026-07-03

年最新JetBrains AI助手Windows本地详细安装配置教程(含下载与环境要求)

JetBrainsAIAssistant可在Windows上通过IDE内置市场或离线包安装,需匹配新版JetBrainsIDE、账号登录与稳定网络。配置时应关注版本兼容、隐私设置、项目索引、快捷键和代码提交前复核,避免上传密钥与敏感业务资料。

Amazon Q Developer新手安装指南:从下载到首次运行的保姆级教程
AI教程 · 2026-07-03

Amazon Q Developer新手安装指南:从下载到首次运行的保姆级教程

AmazonQDeveloper可为编码、调试、解释项目和生成测试提供辅助。安装前需确认账号、开发环境和插件来源,按IDE或命令行路径完成配置,并在首次运行时注意权限、数据与项目安全。

Amazon Q Developer安装失败怎么办?报错日志排查与升级回滚方案
AI教程 · 2026-07-03

Amazon Q Developer安装失败怎么办?报错日志排查与升级回滚方案

AmazonQDeveloper安装失败通常与版本兼容、网络连接、身份登录、插件残留或权限配置有关。排查时应先确认环境,再查看IDE与终端日志,必要时采用清理重装、固定版本升级或回滚方案。

Amazon Q Developer本地模型运行:下载、路径与性能优化
AI教程 · 2026-07-03

Amazon Q Developer本地模型运行:下载、路径与性能优化

AmazonQDeveloper以云端能力为主,本地模型方案更适合离线补充、代码检索和私有环境辅助。配置时需确认版本、模型来源、路径权限、硬件资源与IDE集成方式,并通过量化、上下文控制和缓存策略优化性能。

Amazon Q Developer插件安装全流程:浏览器编辑器扩展市场配置
AI教程 · 2026-07-03

Amazon Q Developer插件安装全流程:浏览器编辑器扩展市场配置

AmazonQDeveloper可在浏览器控制台、VSCode、JetBrains等环境中辅助写代码、解释项目和生成测试。安装前需确认账号权限、编辑器版本与网络环境,配置时重点关注登录授权、工作区信任、数据权限和团队使用规范。