返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

90 个工具、5 万 tokens,Claude 用 Skills 解决了 MCP 的致命缺陷

[复制链接]
链载Ai 显示全部楼层 发表于 3 天前 |阅读模式 打印 上一主题 下一主题


说实话,MCP 在演示中表现完美,但一旦你尝试扩展使用,它就会崩溃。

一个 GitHub MCP 服务器可以暴露 90 多个工具。这意味着在模型开始思考你的提示词之前,就已经有超过 5 万个 token 的 JSON 模式和描述被加载到了模型的工作记忆中。

所以当 Anthropic 推出 Skills 时,我看到的不是一个新功能——我看到的是一次航向修正。一次悄无声息的航向修正,但确实是航向修正。

MCP 的真正问题不在于工具本身

从底层来看,MCP 的概念其实很简单。

你运行一个或多个 MCP 服务器。每个服务器暴露一组工具,每个工具有一个模式,客户端将这些定义加载到模型的上下文中,这样模型就可以决定调用哪些工具以及如何调用它们。理论上,这为模型提供了一个干净的、类型化的外部世界接口。

但在实践中,这个"干净的接口"变成了一个消防水管。

每个工具模式都会在一开始就被塞进上下文窗口。无论你是让模型读取文件、查询数据库,还是只是总结一段话,模型都必须在完整的工具清单、参数和描述中筛选,才能确定哪些可能相关。

再加上工具调用准确性的复合效应:如果单个工具决策的准确率是 90%,那么连续调用 5 个工具的整体准确率就变成 0.90⁵ = 0.59,不到 60%。无数 Reddit 帖子都在说同一件事:当你堆叠调用时,工具调用准确率会呈指数级下降。

结果是一个糟糕的组合:

  • • 大量上下文窗口被可能永远用不到的模式占用
  • • 对话历史、全局工具定义和任务特定上下文都在争夺空间
  • • 多步骤工作流开始时表现良好,但随着模型失去对早期约束的跟踪而逐渐失败

我在真实系统中见证过这种情况。任务很简单,工具也是正确的,但失败源于认知过载。模型被要求在脑中保持整个工具宇宙的同时进行推理、规划和选择工具。

今天大多数人实现的 MCP,不只是暴露工具——它暴露得太多了。

Anthropic 的解决方案不是修补 MCP

他们瞄准的是真正有问题的模式:静态的、预先暴露。

Skills 翻转了这个流程。

一个 Skill 就是一个文件夹。文件夹里有一个带 YAML 前言(名称、描述、元数据)的 SKILL.md 文件,后面是详细的指令、参考资料,还可以选择链接到同目录下的其他文件。

在启动时,智能体不会完整读取每个 skill。它只获取每个 skill 的最小元数据,并将其放入系统提示词中。这给 Claude 提供了刚好足够的信息来判断某个 skill 何时可能相关,而不用付出加载所有内容的代价。

当用户提出请求时,Claude 会经历一个渐进式披露过程:

  1. 1. 查看已安装 skills 的名称和描述
  2. 2. 如果某个 skill 看起来相关,使用文件系统工具打开 SKILL.md
  3. 3. 如果该文件引用了其他文档(如 forms.md 或 reference.md),只在需要时才读取它们
  4. 4. 如果 skill 包含脚本,通过代码执行环境运行它们,而不是试图通过 token 生成来"模拟"

关键是:上下文是分层加载的,而不是一次性倾倒。

你可以在一个 skill 中打包大量知识——多个 Markdown 文件、示例、指标定义,甚至完整的 Python 脚本,它们在智能体环境中充当确定性的微服务。但这些内容都不会进入上下文窗口,直到 Claude 判断它们与当前任务相关。

这与大多数 MCP 设置的行为正好相反。

Skills 不只是 Claude UI 的技巧。它们在 Claude 应用、Claude Code、API 和 Agent SDK 中都得到支持,全部连接到同一个代码执行工具,为智能体提供安全的脚本运行环境。

所以,Anthropic 没有说"MCP 有问题",而是做了一件更有趣的事:他们改变了模型"遇见" MCP 的方式。

Skills 在前面,MCP 在后面。

Skills = 检索,MCP = 工具,合在一起 = RAG-MCP

如果你做过检索增强生成(RAG),这个模式应该很熟悉。

在 RAG 中,你不会把整个知识库塞进上下文窗口。你把它单独存储,使用索引只检索相关内容,然后让模型在工作时读取那部分。

Skills 对工具和程序性知识做了同样的事情:

  • • "索引"是 skill 的元数据:名称、描述、标签
  • • "文档"是 SKILL.md 正文加上任何链接的文件
  • • "回答步骤"是指令、代码和(在必要时)包装在该 skill 中的 MCP 调用的组合

与其把每个 MCP 工具模式都倒入上下文,不如将它们绑定到特定的工作流:

  • • "DF 表单填写" skill 知道使用哪个 MCP 服务器和脚本
  • • "营销分析洞察" skill 使用 Python 处理 CSV,只在需要时调用工具
  • • "推文转新闻稿" skill 由你自己写作风格的示例和辅助代码构建

模型不再需要了解整个工具宇宙。

它只需要知道哪个 skill 相关,而 skill 知道如何编排其余的部分。

这就是 RAG-MCP 的实践:

  1. 1. 检索正确的 skill
  2. 2. 只加载重要的指令和引用
  3. 3. 对确定性步骤执行代码
  4. 4. 当工作流需要时,将 MCP 工具作为最后一公里集成来调用

Skills 不与 MCP "竞争"——它们驯化了 MCP。

为什么这对实际构建智能体的人很重要

如果你只是在搭建玩具项目,很多问题可以暴力解决。上下文窗口很大,演示很短,工具很少。MCP 感觉还不错。

但一旦你进入:

  • • 多租户系统
  • • 长期对话
  • • 高风险工作流(合规、金融、安全)
  • • 或工具调用工具的多智能体网络

裂缝就会显现。

你会开始看到:

  • • 奇怪的工具选择——对模型有意义但对你没有
  • • 幻觉出的参数——技术上匹配模式但违反业务逻辑
  • • 第一天能用的工作流,到第七天就漂移了,因为对话历史现在在与工具定义争夺上下文空间

你可以打补丁绕过去。我也这样做过。

你可以精简模式、拆分服务器、重写描述使其更短。

你可以启动监督智能体,试图引导主智能体回到正轨。

但你仍在与底层模式作斗争:模型在接触任务之前就被工具淹没了。

Skills 改变了问题的形状。

你从"模型必须理解系统中的每个工具"转变为"模型必须为任务选择正确的 skill,而 skill 会带来它所需要的一切"。

这是一个更理性的心理模型。

它也符合我们培训人类的方式:我们不会在新队友第一天就把完整的维基交给他们并期望他们记住。我们给他们一个入门指南,然后在他们遇到实际任务时指向具体的文档和脚本。

Skills 为智能体正式化了这种模式。

更好的前进道路

Anthropic 处理这件事的方式有些我很欣赏的地方。

他们没有发布"MCP 现状"文章。他们没有宣布协议已死。他们没有试图假装上下文膨胀只是用户错误。

他们悄悄地发布了一种机制,接受大型工具生态系统的现实,并给智能体一种与之交互的方式,而不会在压力下崩溃。

Skills 是可组合的。跨产品可移植。高效,因为它们只加载需要的内容。强大,因为当可靠性比纯生成更重要时,它们可以引入代码执行。

最重要的是,它们承认了我们许多在实际环境中构建的人都感受到的事情:

智能体的未来不是更大的工具堆。

而是与工具"相处"的更好方式。

检索和编排优先。上下文被视为稀缺资源,而不是无限的倾倒场。MCP 仍在那里,但它不再压在模型胸口。

Anthropic 没有放弃 MCP。他们让它变得可持续了。

对于我们这些试图构建做真正工作的智能体的人来说,这种悄无声息的转变比任何协议公告都更重要。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ