那天深夜,我把同一份 SKILL.md 粘贴到第五个目录的时候,手停住了。
~/.claude/skills/、~/.cursor/skills/、~/.qoder/skills/、~/.codex/skills/、~/.qwen/skills/。屏幕上五个窗口并排展开,每一个里面都躺着名字相同、日期不同、版本略有分歧的文件。我不知道哪一份是最新的。也许三天前我在 Claude 那边改了一处 prompt,昨天在 Qoder 又顺手调了一行拼写,而 Cursor 里的那一份还停留在上上周。
我感到一种很老的、很古典的困倦。像是一个抄经的僧人抄到第五卷时发现自己漏了几个字,又不确定是哪一卷漏。
后来,有了须弥山。
须弥山在佛教的宇宙图景里,是世界中央的那座山。四大部洲围绕它展开,四大海环绕它倾泻。所有方向从山顶开始,再向外分流。我喜欢这个名字。一个好的技能管理系统,应当就是这样的形状。中间一座山,山上放着所有东西的最新版本,四面八方的平台,像河流一样从山顶接出去,每一条河里的水,都是山顶那个唯一的水。
具体到文件系统层面,这座山叫做 ~/.agents/skills/。Anthropic 在 Agent Skills 协议里指定了这个路径,作为整个生态的中央目录。须弥山把这个约定当作自己的根。你的每一份技能在这里存放一份 canonical 的正本,然后通过 symbolic link 扩散到 Claude、Cursor、Qoder、Codex 那些工具各自的 skills 目录。你修改山顶那一份,四面河水同时换新。
这是整个应用最底层的思想。理解了这一层,下面的一切都是它的注脚。
好,接下来讲具体怎么用。我不想写成「第一步点这里,第二步点那里」那种截屏操作手册。下面几节各自讲一件事,每件事都有一个动作,也各自有一点私心的感受。
打开须弥山后,默认停在「中央技能库」那个页面。它分成两栏,「企业技能库」和「本地技能库」。企业技能库的数据来自钉钉 AI 表格,你的组织管理员在云端统一上传和审核技能,团队里每个人看到的都是同一份经过批准的版本,不会出现你用 v3 我还在用 v1 的尴尬。本地技能库则是你自己的地盘,从 GitHub 导入的、自己动手写的,全在这里。
每张卡片的左上角都挂着一枚安全标签,绿色的 Pass、黄色的 Medium、红色的 High。这是须弥山的安全扫描在起作用,不论企业库还是本地库,每一份 SKILL.md 入库的那一刻就会被自动检测风险等级。如果你是管理员,还可以点开报告看到具体的扫描细节,高危技能会被标红提醒,像一道守在山门口的安检。这个设计让我觉得安心。技能说到底是你交给 AI 执行的指令,如果里面混进了一份含有 prompt 注入的恶意脚本,后果比代码 bug 还要隐蔽。在企业级的使用场景里,这道安全门禁可能是最不起眼,但最不可少的一层。
如果你之前像我一样,散装地把技能扔在各个平台的目录里,现在最想做的事,应该是把它们都收回到山顶。打开「发现」那个 Tab,须弥山会扫描你主目录下各平台私有的 skills 目录,把流散在外的版本一张一张列出来。对每一份,你都可以点一下「导入到中央」,它就被复制到 ~/.agents/skills/ 并登记进中央库。
有点像回收散落的经卷。第一次做这件事的时候,我花了二十分钟,最终得到一座不算小的山。那些过去几个月里临时写过的、后来忘在各处的技能,终于聚拢回到同一块地方。桌面瞬间干净了一层。
企业技能库底下接的是一张钉钉 AI 表格。团队里每一个人能不能看到这张表、能不能下载表里登记的技能,取决于这张表对谁开放。可惜 DingTalk 开放平台目前没有直接配置 AI 表格协作权限的接口,所以这一步只能由管理员自己去钉钉那边点一下。整个过程不到一分钟,但它决定了团队其他人进到须弥山之后,企业技能库那一栏里到底有没有东西。
第一步,在须弥山中央技能库顶部,管理员会看到一排只对自己可见的操作按钮。其中「打开技能表」会直接把当前这张 AI 表格在浏览器里拉起来,不用自己去钉钉里翻。
第二步,在打开的 AI 表格页面右上角,点那颗绿色的「分享」按钮。这是钉钉文档体系里统一的入口,协作者邀请、可见范围、外链权限都在这里设置。
第三步,在弹出的分享面板里把「分享范围」调成「公司内成员均可访问该文档,对该文档有可以查看和下载权限」。这一下之后,公司里每一位打开须弥山的同事,登录钉钉之后都会在企业技能库里看到同一份经过审批的技能目录,版本、描述、安全等级全部一致。
这一步做完,团队里其他人在须弥山里看到的那栏企业技能库才真正「活」过来。如果同事反馈说自己那边是空的,十有八九是这扇门还没开。
路就是 symlink。山上的每一份 SKILL.md,都可以被链接到任意一个平台的 skills 目录里,让那个平台的 AI 在运行时能看到它。
在中央技能库的卡片上,每张卡片右侧都有一排小小的平台图标。哪个平台亮着、哪个灰着,就是这份技能此刻装在哪里、没装在哪里。点一下灰着的图标,那个平台就多出了一条指向山顶的链接。再点一下亮着的,链接就断开了。像一座寺院每天开关山门,决定哪些访客今日可以登顶取水。
对我来说最常用的路有两条。一条通往编程类平台,Claude Code、Cursor、Qoder、Codex、Qwen,写代码的时候 AI 需要读取的 prompt 规范和工具指南都走这条路。另一条更宽的路直连钉钉悟空。悟空是我们团队日常工作里用得最多的 AI 助手,它有自己的技能体系,须弥山可以把中央库里的技能一键同步到悟空的 skills 目录里,62 份技能同时管理,编辑、禁用、查看目录,全部可以在须弥山里操作。这让悟空不再是一座孤岛,它的技能跟所有编程类平台共享同一个山顶。
我习惯每周末花几分钟做这件事。那些只给 Claude Code 用的研究型技能,我会关掉它在 Cursor 那边的链接,那些通用的代码生成技能,就让它对所有编程类平台都敞开。路是自己修的,也是自己断的。
有些技能天生是配套的。比如我有一组专门为做视频教程而写的,包括生成脚本、剪辑建议、字幕规范、封面构图。单独一份份地挑着装,太慢。这时候用「集合」。
集合就是技能的分组。打开 Collections 那个 Tab,新建一个集合,把若干技能拖进去,保存。之后,要给一台新机器的 Claude Code 装同一套,只需要选中这个集合,点「安装到某平台」,整束一起铺开。
集合也可以导出成 JSON,分发给同事,或者存进 git。这是我觉得须弥山最像一个系统工程师在写的地方。它把技能当作文件,把集合当作清单,把整套东西用文本的方式管理起来,不依赖任何云。
你终归会需要外部的技能。这是「市场」的用途。
打开 Marketplace 那个 Tab,里面有三栏。「推荐」是一些被挑选过的仓库,「官方源目录」是按类别组织的公开来源,「我的源」则是你自己添加的任何 GitHub 仓库 URL。点进任何一个源,须弥山会实时拉取那个仓库里的 SKILL.md 文件,展开成一份可浏览的目录。看中哪个,点「安装」,它就被下载到山上,并且按你的选择铺到各个平台。
我想起博尔赫斯在《通天塔图书馆》里写过一个近乎疯狂的幻想,一座无限延伸的图书馆,里面藏着所有可能被写出的书。Marketplace 远没有那么宏大,但它的精神是相近的。你知道外面的世界里不断有人在写新的技能,而你有一个窗口,可以随时把它们接回自己的山上。
技能多了,总会遇到别人写的、描述混乱的、看三行就累的那种。须弥山的技能详情页有一个「AI 解释」按钮,点下去,它会调用你在设置里配好的 AI Provider,用几段话告诉你这份技能是做什么的、适用于什么场景、关键的输入输出是什么。
这是整个工具里最有禅意的一处设计。山上放着经卷,山下来访的僧人替你讲解,你不必自己啃完每一页小字。它也像是作者在说,我明白一个技能库真正膨胀起来的时候人是读不完的,所以从第一天开始就替你准备好了这条路。
须弥山还有一些角落,比如「平台视图」,专门从某个 AI 工具的角度看它当前装了什么技能,再比如「设置」里可以切换中英文界面、挑选 Catppuccin 主题的强调色、接入自己的 AI Provider。这些是锦上添花的事,我不在这里铺开讲。你用起来了,自然会走到那些角落去。
写到这里我想到一件事。
我最初用须弥山的时候,没意识到它真正改变了什么。我以为它只是让技能管理更整齐。但用了几周之后,有一天我在写一份新的 SKILL.md,写到一半,突然有一种久违的踏实感。那种感觉是,我知道此刻写的这份东西,写完之后会唯一地、准确地存在于一个地方。不会被不小心复制五份,不会在三个月后让我困惑哪一份是最新。
这是一种很小的感受,但对常年和散乱文件搏斗的人来说,像是把一直压着胸口的一块石头挪开了。
技术工具的好与坏,我越来越觉得,不只看它能做什么,更看它能不能让一件事从此变得安静。从此你不必再反复想它。从此你可以把注意力从文件管理本身挪开,交还给真正要写的内容。须弥山做到了这件事。它不吵,它只是在那里,像一座你知道随时可以去的山。
那天深夜粘贴同一份 SKILL.md 到第五个目录的事,现在想起来已经很遥远。我偶尔还会打开须弥山,看一眼中央库里技能的数量又多了几个,看一眼每张卡片上那一排亮着的小图标。山顶的那份 SKILL.md,此刻正在以 symlink 的形式,同时躺在我电脑上六个不同的平台目录里。每一处都是最新版本。每一处都和山顶完全一样。
我关上了 Finder。窗外的风穿过梧桐树,像一整条安静下来的河。