Narwhal-lab 投稿
量子位 | 公众号 QbitAI

AI Agent世界的npm来了!

最近,北京大学Narwhal-Lab的开源项目MagicSkills,通过把AI Agent所需的技能(Skill)统一管理、安装、组合和同步,实现了“写一次、到处用”的能力复用,让AI Agent世界终于有了类似npm的角色。

不过,MagicSkills不是管理JavaScript包,而是管理Agent所依赖的Skill:

把分散在不同项目里的Skill整理成一套可以安装、管理、组合、同步和调用的共享能力层。

当Agent的能力越来越多、复用需求越来越强时,Agent世界也开始需要一个类似npm这样的角色,去管理这些Skills。

这是怎么做到的?

把agent的skill管起来!

在实际开发中,很多人都遇到过同样的问题:第一个Agent写了一堆技能,比如PDF处理、搜索、Git操作、Docker控制、文档处理或代码相关能力,项目里大概结构是agent/skills下各个skill文件夹。

但第二个、第三个Agent又会复制一份技能,时间一长就会发现重复实现、管理混乱、复用难、易分叉,一旦接入方式变了,又得重新整理。

这种状况类似早期软件开发还没有npm或pip的时代,不同类型的Agent框架和应用之间同样存在重复接入的情况。

  • 在Claude Code、Cursor、Windsurf、Aider、Codex这类Agent应用 里,你可能会把同一套skill复制到多个agent的工作目录里。
  • 在LangChain、LangGraph、CrewAI、AutoGen、LlamaIndex、Haystack、Semantic Kernel、smolagents这类Agent框架里,你又可能要把同一套skill封装成tool/function。

MagicSkills的目标就是把Skill从“散落在项目里的说明和脚本”,变成“可统一管理的能力单元”。

它不仅提供命令行工具,更提供一套围绕Skill的基础设施,让你可以安装Skill到共享目录,挑选子集组成某个Agent专用的技能集合,同步到AGENTS.md,并通过统一的skill-tool或PythonAPI给不同框架使用。

不同场景下,它会选择不同方式暴露能力:Agent应用通过同步AGENTS.md自动发现技能,Agent框架则通过统一工具接口或Python API调用。

安装不是从0开始

很多人关心现成的Skill从哪来。答案是生态已经在了。

Agent Skills是一个开放标准(agentskills.io),定义了包含指令、脚本和资源的文件夹格式,可以被Agent发现和使用,秉持“Write once,use everywhere”。

生态已经覆盖26+平台,包括Claude、OpenAICodex、GeminiCLI、GitHubCopilot、VSCode、Cursor、Roo Code、Amp、Goose、Mistral AI、Databricks 等。Atlassian、Figma、Canva、Stripe、Notion、Zapier 等合作伙伴也在首发时提供了各自的Skill。

而具体到可安装的Skill来源,最重要的一个就是Anthropic官方维护的开源仓库anthropics/skills。

MagicSkills可以直接从这些开源仓库安装和管理Skill,解决了分散、重复的问题。这也正如npm的强大,不仅是工具,还因为有完整的registry和生态。

在MagicSkills 里,Skill是什么?

在MagicSkills中,一个Skill最小就是一个目录,目录里有一个SKILL.md。通常一个Skill长这样:

SKILL.md既是写给LLM的技能说明,也是元数据来源。MagicSkills围绕这个目录读取内容、展示结构、注册到集合、供Agent按需访问。

换句话说,Skill不仅仅是提示词或脚本,它是一个Prompt+Tool+Workflow的本地能力单元。

有趣的是,MagicSkills并不专注于某个Agent的工具实现,而是试图把Skill抽象成一层稳定结构。

项目定义了几层核心对象:

  • Skill:单个能力单元
  • Skills:一组可操作的sklii集合
  • SkillRegistry:多个命名Skills集合的注册、加载和持久化

CLI和Python API,本质上都是这套结构的不同入口。

工作流程很清晰:安装Skill→从共享池里挑出某个Agent需要的子集 → 同步到AGENTS.md或作为工具能力暴露出去。

如果是这样,未来的AI软件架构可能会变成这样

这个思路的价值在于:它把Skill从一次性的项目实现,变成了可以长期维护和复用的工程对象。

现在关注MagicSkills的价值在于,它正解决越来越多团队会遇到的现实问题:Agent数量越来越多,Skill越来越多,接入方式复杂,但能力管理仍停留在复制、粘贴、手动整理阶段。

MagicSkills提供的共享体系,把Skill统一放进一个共享体系里,再按不同Agent去组合和暴露。

  • 如果某个Agent读取AGENTS.md,走同步路线
  • 如果某个Agent框架更适合tool / function,走统一工具接口或Python API。

这样一来:

  • 已有Skill可以复用
  • 不同Agent只看到自己需要的Skill子集
  • Skill仍然是本地文件、结构透明、便于追踪
  • 同一套能力可以同时服务Agent应用和Agent框架

行业正在从创建大量独立的专用Agent(编码 Agent、研究 Agent、数据分析 Agent……)向一个新范式收敛:一个通用的Agent运行时,按需加载不同的 Skill 库。

当一个领域开始成熟时,一定会出现“包管理”和“生态系统”。就像今天的软件世界有npm、PyPI、Docker Hub一样。

Agent Skill的生态已经在形成——Anthropic官方仓库提供了高质量的基础 Skill,Agent Skills开放标准被26+平台采纳,社区也在快速沉淀。MagicSkills要做的,是在这个基础上加一层统一的管理机制。

如果你在做的是多Agent项目、Agent Engineering、可复用Skill库、面向 AGENTS.md 的Agent应用接入、面向tool/function的Agent框架接入等等,那MagicSkills值得看一眼。

因为它讨论的是一个越来越现实的问题:

当Agent越来越多时,Skill还能不能继续靠复制、粘贴、手动整理来管理?

从MagicSkills这个项目来看,答案正在变成”不能”。

它也许不是传统意义上的npm,但它确实在尝试为Agent世界补上这一层:

让Skill可以被安装、被组合、被同步、被调用,也能在不同 Agent 应用和不同Agent框架之间复用。

项目链接:https://github.com/Narwhal-Lab/MagicSkills

一键三连「点赞」「转发」「小心心」

欢迎在评论区留下你的想法!

—  —


我们正在招聘一名眼疾手快、关注AI的学术编辑实习生 🎓

感兴趣的小伙伴欢迎关注 👉 了解详情


🌟 点亮星标 🌟

科技前沿进展每日见

内容中包含的图片若涉及版权问题,请及时与我们联系删除