归一MCP和skill,实现AI ability的动态加载

什么是 Agent Skills?

一句话:SKILL.md是对AGENT.md的优化版本,相当于把AGENT.md变成了可以调用的可以渐近式加载(而非一股脑全加载)的封装函数。
AGENT.md: 平铺的代码脚本,不可复用
SKILL.md: 封装成函数,不需要知道细节,可复用

skill的管理问题

skill很好用,但是它的管理面临以下问题

  • 安装问题:每个Agent客户端都有各自的skill安装目录,每个skill在每个客户端都得拷贝到不同的目录安装一次
  • 更新问题:skill的远程仓库可能更新,本地版本可能迭代,不同agent客户端直接的skill面临过时、更新、同步问题
    使用npx skills 可以解决skill管理问题

    核心机制

    把skill下载到本地集中管理,然后软链接到不同agent实现生效
    优点:
  • 一次更新,处处可用
  • 集中管理,无需同步
  • 简单好用的skill市场

没有解决的问题:SKILL的按需动态加载

SKILL和MCP一样,装多了总会发生上下文爆炸;
诚然,每个SKILL的meta层只有约50个token,但数量多了之后,还是会出现管理问题。
每次都要为会话默认开启全部的skill,还是每次为会话手动指定应该加载的skill,然后重启会话?
不是的,SKILL还需要一个动态搜索、动态加载、动态调用机制。
这是业界还没有共识的未解决的问题。

我的方案

我为这个问题设计了一个解决方案,归一了skill和mcp,归一了全部技能的动态搜索和动态调用。

开发一个唯一的MCP来管理skill和mcp,实现动态搜索和调用skill和MCP。
本质上,skill和mcp都不过是上下文注入而已,那么通过一个服务去管理就是一个很自然的方式。
这个服务像本地调用一样返回当前skill和mcp应该返回的上下文。
那么,所谓的skill管理,mcp管理,就完全托管给这个服务,对agent客户端来说完全不存在了。
不存在管理问题,不存在更新问题,不存在不一致问题,不存在skill和mcp,只存在AI和它的ability。

有人问:由客户端管理mcp和skill,对比由你的服务层管理mcp,有什么不一样嘛?
有很大的不一样,我说的服务层是类似当前的plugin插件市场,但是不需要由人来 search
install enable reload link,而是完全由AI自主决策的、动态调用的、无需中断重启的方式、归一了skill和mcp。
我的方案是世界最先进的解决方案。

似乎已经有人先做了 https://github.com/intellectronica/skillz
思路和我的设想差不多,但比我设想的还不足,没有推往极致,
缺少了动态调用skill的script resource. 缺少了动态调用MCP。

我相信未来不出一年,这一套方案或者类似的方案会与我的方案达成一致的。


2026年2月25日 09:20:24
果然过年完了 Anthropic的 Tool call 2.0已经在尝试动态加载MCP和skill了,支持总是加载和动态加载.
不过还是觉得, 在动态加载方案中, 做成服务无需维护更好一点