统一管理Agent Skills

2 阅读6分钟

AI 编程工具越来越多,Claude Code、Cursor、Gemini CLI、Copilot、Windsurf、Cline……每个工具都有自己的 skills,配置文件分散在不同目录

文章目标:统一管理 AI Agent 的 Skills,将所有 Skills 存储在一个中央目录(例如 ~/.skills),再通过软链接分发到各个 Agent

方案一:手动创建管理然链接

  1. 创建中央技能仓库,选择一个固定的位置来存放所有 Skills。推荐 ~/.skills

    mkdir -p ~/.skills
    
  2. 规划目录结构,在 ~/.skills 下,为每个技能创建一个独立的目录,并在其中放入核心文件 SKILL.md

~/.skills
├── my-skill-1
│   └── SKILL.md
└── my-skill-2
    └── SKILL.md
  1. 为每个Agent创建软链接,
AI Agent默认技能目录路径
Claude Code (个人级)~/.claude/skills/
Cursor (个人级)~/.cursor/skills/

对于每个你想共享的技能,在每个Agent的技能目录下执行以下命令:

# 示例:将 ~/.skills/my-skill-1 链接到 Claude Code 和 Cursor
ln -s ~/.skills/my-skill-1 ~/.claude/skills/
ln -s ~/.skills/my-skill-1 ~/.cursor/skills/

方案二:ai自动创建软连接

将下面这端文字直接丢给ai执行,他会自动帮你创建好相对应的软连接,不方便的是每次又要执行一次,掌控成熟度不高

统一用户级 Skills 软链接配置 
目标:将分散在各 Agent 工具中的 skills 统一迁移到 ~/.skills,并通过软链接让所有 Agent 共享同一份用户级 skills。 
执行步骤: 创建 ~/.skills 目录 遍历以下 Agent 
工具目录:~/.qoder、~/.qoderwork、~/.claude、~/.cursor ~/.copilot 
对每个存在的 Agent 目录: 
如果 skills 是真实目录:将其内容复制到 ~/.skills/(有冲突则跳过),然后备份原目录 
如果 skills 已是软链接:直接删除 创建软链接 ~/.{agent}/skills 指向 ~/.skills 验证所有软链接创建成功

方案三 使用专用管理工具(推荐)

工具核心理念配置同步方式主要亮点适用场景
open-skill-manager (osm)“统一存储 + 动态软链分发”通过 ~/.osmrc 配置文件设置 store_path (技能仓库) 和 link_targets (需要同步的Agent目录)执行 osm sync 命令,将 store_path 中的所有技能,同步到所有配置好的 link_targets 目录支持从GitHub等源安装技能;安装后可通过修改配置并用sync命令一键同步到所有新Agent偏好命令行、需要批量同步多Agent的用户
one-skills-manager基于“安装一次,到处链接”的理念通过 Profiles 概念管理不同场景(如工作、个人),每个Profile可独立配置需要同步的Agent执行 one-skills sync 命令,将当前激活的Profile下的所有技能同步到该Profile指定的Agent支持Profile切换,场景管理灵活;不仅能管理Skills,还能管理Rules和MCP Servers工作场景多变,需要隔离不同环境配置的进阶用户
dotagents声明式包管理器通过项目根目录下的 agents.toml 文件,以类似package.json的方式声明项目依赖的技能及其来源执行 npx @sentry/dotagents install 命令,根据声明自动安装并创建软链接支持从Git仓库、本地路径安装;通过agents.lock锁定版本,确保团队环境一致团队协作、需要版本锁定和可复现环境的项目
ShareSkills“通用中央枢纽”通过交互式命令行设置中央Hub目录和需要同步的Agent运行同步命令,它会将所有Agent的现有技能合并到中央Hub,然后将各Agent的原始目录替换为指向Hub的软链接操作简单,偏向迁移和整合;支持多Agent,提供安全备份希望快速整合现有分散的技能,实现“一处修改,处处生效”的用户
skillmanager跨平台多源管理器支持project(项目级)和global(用户级)作用域,通过交互式界面或命令行参数选择技能和Agentinstall命令安装,update命令更新,基于openskills实现同步跨平台支持优秀;提供Web UI进行可视化管理需要跨平台(特别是Windows)支持,或偏好图形化界面的用户

对比了几个三方的管理工具,这些工具能自动完成技能安装、更新、链接创建和同步等繁琐工作。这里我选择的是osm用于我机子的管理,主要是命令简单快捷,所以就用这个了

open-skill-manager它的核心逻辑很清晰:

  1. 统一存储:所有通过 osm 下载的 Skills 实体,都会存放在一个固定的中央仓库(例如 ~/.open_skills
  2. 动态分发:工具会根据你的配置(link_targets),在指定 Agent 的技能目录(如 ~/.claude/skills/)下创建指向中央仓库的软链接。这意味着,你实际上只需管理中央仓库这一份技能,然后通过 osm sync 命令,就能一键把这份技能同步到所有配置好的 Agent 中,实现高效管理

osm使用

**1.全局安装oms :**这个命令会全局安装 osm 命令,让你在任意目录下都能使用它

npm install -g open-skill-manager
# 这个命令可以查看需要同步的agent
osm config set link_targets '["~/.claude", "~/.cursor"]'

2.核心配置: 安装后,配置文件 ~/.osmrc 会自动生成,其中有三个最关键的配置项需要你关注

  • store_path: 中央仓库的位置。默认是 ~/.open_skills,建议保持默认。
  • link_targets: 这是一个数组,用来定义所有需要管理的 Agent 技能目录的路径。这是你实现“一处管理,多Agent共享”的核心。
  • system.auto_overwrite_links: 控制当软链接已存在时是否自动覆盖 你可以通过以下命令进行配置管理:
# 查看所有配置
osm config list

# 查看特定配置项
osm config get link_targets

# 设置link_targets,例如同时为 Claude Code 和 Cursor 创建软链接
osm config set link_targets '["~/.claude", "~/.cursor"]'

# 设置自动覆盖软链接
osm config set system.auto_overwrite_links true

3.OSM下载skill: 使用 osm install 命令,支持从 GitHub 仓库、子目录或自定义源安装

# 从 GitHub 仓库安装某个技能
osm install username/skill-name

# 安装 GitHub 仓库的子目录作为技能
osm install jimliu/baoyu-skills/skills/baoyu-image-gen

# 从自定义的 Git 仓库或 ZIP 文件安装
osm install my-skill -s https://github.com/user/repo.git
osm install my-skill -s https://example.com/skill.zip

4.一键同步分发:

# 将当前 store_path 里的所有技能,同步到所有配置好的 link_targets 目录
osm sync

image.png

⚠️ 可能遇到的问题

虽然 osm 会自动创建目录,但在极少数情况下,如果当前用户没有家目录 (~) 的写入权限,创建操作可能会失败。如果你遇到此类问题,可以:

  • 检查权限:执行 ls -ld ~ 查看家目录的权限。
  • 手动创建:作为备选方案,你也可以手动创建目录以确认权限。
mkdir -p ~/.open_skills

一个应用,统一管理所有 AI 编码工具的 Skills。

可以看看这个开源应用,能省很多事,可视化操作

image.png

其他方案

遵循标准化目录 .agents/skills,这是一个行业趋势,旨在解决不同Agent工具目录不统一的碎片化问题。部分前沿工具(如Codex)已开始支持从 .agents/skills 目录读取技能。这一步取决于工具本身。对于已支持该标准的Agent,你只需确保它在启动时会优先或同时扫描 .agents/skills 目录。对于暂未支持的,你仍可能需要为它们创建从各自目录指向 .agents/skills 的软链接。