大家好,我是蜗牛AI。
最近我在整理自己的 AI 内容工作台时,遇到了一个以前没有认真想过的问题。
我不只使用一个 AI 工具。
有时用 Claude Code,有时用 Codex。以后也可能同时使用 WorkBuddy、Kimi Code,或者其他支持本地 Skill 的智能体工具。
这些工具通常都有自己的技能目录。于是最容易想到的办法,就是把同一个 Skill 复制到每个工具的目录里。
刚开始看起来没什么问题。
但只要修改过几次,你很快就会发现麻烦。
Claude Code 里可能还是旧版,Codex 里已经改成新版。过一段时间,自己都记不清到底哪一份才是最新的。
我真正想解决的,其实不是怎么多复制几次,而是另一件事。
能不能只维护一套 Skill,让不同的 AI 工具都来使用它?
不再让每个工具各自保存一份
以前的结构大概是这样。
Claude Code/skills/写作Skill
Codex/skills/写作Skill
WorkBuddy/skills/写作Skill
Kimi Code/skills/写作Skill四个地方,放着四份相同的内容。
只要升级一次 Skill,就要记得同步四次。漏掉任何一个,版本就会慢慢分叉。
后来我换了一个思路。
先建立一个属于自己的技能库,所有 Skill 的真实内容只放在这里。其他 AI 工具的技能目录不再保存副本,只保留一个入口。
个人技能库/skills/写作Skill
↑
├── Claude Code入口
├── Codex入口
├── WorkBuddy入口
└── Kimi Code入口这样无论从哪个工具进入,最终读取的都是同一份 Skill。
我给自己的技能库取名为 99_技能库。这个名字并不重要,你完全可以叫它“个人技能库”或者“AI能力库”。
重要的是,它是唯一需要维护的真实位置。
软链接是什么
要实现上面的结构,需要用到软链接。
我一开始对这个概念也是好像明白,又好像不明白。
后来我发现,可以把它理解成一个房间和几扇门。
99_技能库 里的 Skill 是真实房间。Claude Code、Codex 等工具的技能目录,是不同的走廊。
软链接做的事情,不是在每条走廊里重新盖一个房间,而是给它们各开一扇门。这些门最后都通向同一个真实房间。
所以,软链接和复制不是一回事。
复制会产生两份互不影响的文件。修改其中一份,另一份不会跟着变化。
软链接只是增加一个入口。从这个入口打开文件时,实际读写的仍然是原来的文件。
这也是为什么,以后升级 Skill 时,只修改 99_技能库 就够了。
先拿一个Skill实际操作
为了不把事情搞得太复杂,我没有一开始就批量处理所有 Skill,而是先选了一个真实案例。
这个 Skill 叫:
snail-ai-writer-skill-v2它的真实位置是:
/Users/jjp/Codex-study/AI内容工作台学习版/99_技能库/skills/snail-ai-writer-skill-v2我希望 Claude Code 从下面这个位置找到它:
/Users/jjp/.claude/skills/snail-ai-writer-skill-v2于是,在 Mac 终端中执行了这条命令:
ln -s \
"/Users/jjp/Codex-study/AI内容工作台学习版/99_技能库/skills/snail-ai-writer-skill-v2" \
"/Users/jjp/.claude/skills/snail-ai-writer-skill-v2"这条命令不需要自己背,也不建议小白照着模板手动修改一大串路径。
你可以把 Skill 的真实位置和 AI 工具的技能目录告诉 Codex 或 Claude Code,让它帮你生成对应的软链接命令。
你只需要看懂两个位置。
前面是 99_技能库 中的真实 Skill,后面是准备给 Claude Code 创建的入口。执行前,再让 AI 帮你检查目标位置是否已经存在同名文件夹。
不知道怎样问,也可以直接使用下面这段话:
请帮我生成一条创建软链接的命令,不要直接执行。
真实 Skill 位置:
……
Claude Code 技能入口:
……
生成前请先提醒我检查目标位置是否存在同名文件夹。怎么判断自己做对了
命令没有报错,并不代表小白心里就踏实了。
我第一次操作后,也想知道它到底有没有成功。
最直观的方法,是打开 Finder。
在 Claude Code 的 skills 目录里,我看到了新出现的 snail-ai-writer-skill-v2。它的文件夹图标左下角带着一个小箭头。

这个小箭头说明,它不是一个普通文件夹,而是一个入口。
点进去以后,可以正常看到 SKILL.md、references 等内容。这说明入口可以通往 99_技能库 中的真实 Skill。
如果还想检查得更准确,可以在终端执行:
ls -l "/Users/jjp/.claude/skills/snail-ai-writer-skill-v2"这里的 ls 是查看文件,-l 表示用详细格式显示。
执行后,我看到了下面的结果。

判断是否成功,主要看三个地方。
第一,结果最前面是字母 l。这里的 l 代表 link。
第二,中间出现了 ->。
第三,箭头右边显示的是 99_技能库 中的真实路径。
Claude Code入口
->
99_技能库中的真实Skill看到这三个信号,软链接就真的建立成功了。
以后只维护一个地方
建立软链接以后,我再修改这个写作 Skill,就不需要去 Claude Code 的目录里改一遍,再去其他工具的目录里改一遍。
我只修改:
99_技能库/skills/snail-ai-writer-skill-v2Claude Code 通过软链接进入后,读取到的就是修改后的内容。
以后如果另一个兼容的 AI 工具也要使用它,只需要再给那个工具增加一个入口,不需要重新复制 Skill。
这里需要注意一个前提。
软链接解决的是“多个入口读取同一份文件”的问题。不同 AI 工具是否支持兼容的 Skill 结构、默认扫描哪个目录,仍然要分别确认。
如果某个工具根本不支持本地 Skill,单独建立软链接也不会让它突然获得这种能力。
小白最容易踩的几个坑
第一个坑,是目标位置已经存在同名文件夹。
比如下面这个位置已经有一个真实文件夹:
~/.claude/skills/snail-ai-writer-skill-v2这时直接建立同名软链接会失败。需要先确认旧文件夹是否还有用,做好备份或迁移,再处理它。不要为了省事直接覆盖。
第二个坑,是把两个路径写反。
记住,前面是真实 Skill,后面是 AI 工具的入口。
第三个坑,是移动了真实技能库。
软链接记录的是目标位置。如果以后把 99_技能库 整体搬到别处,原来的链接可能失效,需要重新建立。
第四个坑,是不区分用户级和项目级 Skill。
有些 Skill 可以在所有项目中使用,适合放进用户级入口。有些 Skill 只适合某一个项目,比如它规定了这个项目独有的素材目录和输出位置,就应该留在项目里。
第一次学习软链接时,不用急着把这些情况全部处理完。
先选一个确定可以跨项目使用的 Skill,完成一次最小操作,看到小箭头和 ->,真正理解这条路是通的,再继续处理其他 Skill。
Skill应该属于自己
这次折腾让我想明白了一件事。
Claude Code、Codex、WorkBuddy、Kimi Code,都是调用能力的工具。今天使用这个,明天也可能增加另一个。
但自己长期积累下来的 Skill,不应该散落在每个平台的目录里,变成彼此不同的副本。
它更适合放在一个由自己维护的位置。
工具可以更换,入口可以增加,真正的能力资产始终只保留一份。
如果你也同时使用多个支持本地 Skill 的 AI 工具,可以先别急着批量改造。
挑一个不重要的 Skill,建立一次软链接,再用 Finder 的小箭头和终端里的 -> 验证它。
先把这一扇门打开,后面的事情就容易理解了。
夜雨聆风