⭐ 设为星标 · 第一时间收到推送
Case 1:自己写的 Skill,改完还要到处复制
我有不少自己长期维护的 Skill,真正的源码在个人 Git 项目里。它们不是装完就不动了,提示词、脚本和参考资料经常会改。
如果每次修改后还要手动复制到 Codex、Claude Code 和其他 Agent,漏掉一次,各个 Agent 看到的内容就不一样了。这种工作我做不了几次就会嫌烦。
所以本地导入时,我基本都选软链接:
个人 Git 项目的本地目录
↓ 软链接导入
AgentBro 中心库
↓ 软链接分发
Codex / Claude Code / 其他 Agent
我在 Git 项目里保存修改,中心库和已经分发的 Agent 会直接看到新内容。需要冻结快照时也可以复制导入,但只要这个 Skill 还在开发,我就用软链接。
Case 2:同一个 Skill,换个 Agent 就变回旧版
软链接解决了我自己开发的 Skill,历史上复制出去的那些还在。最典型的情况是,同一个 Skill 在 Claude Code 和 Codex 里各有一份。
我可能先在 Claude Code 那份里改提示词,过几天又在 Codex 那份里修脚本。两边都能跑,但已经没人说得清哪份更新。
后来我定了一条硬规则:AgentBro 中心库是治理上的唯一事实源。 源码可以继续放在个人 Git 项目里,真正分发给 Agent 的关系只能从中心库出去。
下面这个 Skill 的源码仍在我的本地项目中,中心库记录它的真实目录,再把同一份内容分发给 Claude Code 和 Codex。
Case 3:到底还有多少 Skill 没被管起来
新 Skill 统一走中心库不难,难的是以前已经散落在各个 Agent 目录里的存量。
有些是我手动复制的,有些是安装器放进去的,还有一些藏在共享目录里。靠自己逐个翻目录,很容易漏。
所以 AgentBro 会扫描已经安装的 Agent,把未管理的 Skill 放进待处理区。没有冲突的可以批量接管,原来的副本再换成指向中心库的软链接。
这一步对我很重要。只管以后新装的 Skill,旧目录不收,过一阵还是会乱回来。
Case 4:发现同名 Skill,到底该听谁的
扫描存量目录时,最麻烦的是同名冲突。一次扫描里,我找到了 86 个可接管 Skill 和 19 个同名冲突。
同名不代表内容相同。它可能是旧副本,也可能是两套碰巧重名的 Skill。系统不能看到名字一样就直接覆盖。
我的默认原则是中心库版本优先。只有确认两份内容确实需要并存时,才重命名;偶尔某个 Agent 目录里的版本更新,才会反向覆盖中心库。
没有冲突的可以批量收;名字撞车了,就得停下来看看内容。不能把两种情况都塞进一个“一键覆盖”。
Case 5:Skill 太多,很多已经不用了
写这篇文章时,我的中心库里有 213 个 Skill,各个 Agent 里累计有 244 份安装。里面肯定有一阵子不会再用的,也有只在特定工作里才会用到的。
如果中心库有多少,就给每个 Agent 全开多少,中心化只会把混乱放大。Agent 更容易误触发,自己也很难判断当前环境为什么会有某项能力。
我现在把中心库当库存,把技能包当开关。长期不用的 Skill 不再分发;偶尔会用的留在对应技能包里;生产环境只开启稳定、必要的最小集合。
收藏了多少 Skill,和当前应该生效多少 Skill,是两回事。
Case 6:看到一个好用的社区 Skill,怎么放心试
我经常看到别人分享 Skill,也会在内置市场里装某个创作者的一批 Skill。以前只有两个选择:直接塞进常用 Agent,或者先不装。
现在我会给它一个试用区。零散看到的 Skill 先放进 NiceTry-测试,确认真的好用,再加入稳定的 NiceTry。
如果是 Anthropic 这类创作者的一组 Skill,我会在市场安装时直接组成 anthropics/skills 技能包,来源和用途都不会混在一起。
测试包不是垃圾桶。它给新 Skill 一个明确的观察期,也让我知道哪些东西还没有资格进生产。
Case 7:开发中的 Skill,总在正式任务里乱触发
最近我在调试自动创作视频和口播剪辑,一口气写了很多 video 相关 Skill。问题很快就来了:我明明只想测试其中一个,Agent 却总会自动触发别的 Skill。
结果不一定错,但调试已经没法做了。因为我分不清是新 Skill 生效了,还是旧 Skill 在旁边帮了倒忙。
最后我把这些还不稳定的 Skill 全部移进 SZ-内容创作-测试中。调试时打开,正式写文章、剪片或发布时关掉,只保留稳定的 SZ-内容创作。
这个 Case 让我养成了一个习惯:正在开发的 Skill,不要和生产 Skill 常年混在一起。
Case 8:一个 Skill 为什么能同时属于几个技能包
技能包不是文件夹。一个 Skill 可以同时属于内容创作包、测试包和某个创作者来源包,不需要复制三份。
多个技能包同时开启时,最终生效的是并集。比如:
内容创作-测试中 = {视频剪辑, 口播字幕, 视频发布}
创作者来源包 = {视频发布, 浏览器操作}
最终生效 = {视频剪辑, 口播字幕, 视频发布, 浏览器操作}
共同的 视频发布 只会生效一次。关掉测试包后,它还会因为创作者来源包继续生效;两个包都取消,它才真正失效。
同一份 Skill 不用复制,来源、用途和稳定状态也能分别记录。这才是我需要技能包的原因。
Case 9:公司的 Skill,不该跑到个人 Agent 里
我有公司的内部 Skill,也有个人的内容创作 Skill。公司的内部 Agent 需要公司技能包,个人 Codex 没必要看到这些内容。
所以技能包的生效状态按 Agent 独立管理。Codex 可以开启内容创作和 NiceTry,Claude Code 使用另一套组合,公司的 Agent 只应用公司内部需要的包。
我不追求所有 Agent 看起来一模一样。它们承担的工作不同,能用的 Skill 本来就应该不同。
Case 10:开关太麻烦,人就会懒得切
测试包和生产包分开以后,还有一个很现实的问题:如果每次切换都要打开设置、找到 Agent、再翻到技能包页面,我迟早会嫌麻烦。
所以我现在主要从 macOS 菜单栏操作。点开菜单,选择 Agent,勾选或取消技能包,马上生效。
设计这个入口没别的原因,就是方便。切换顺手以后,我才会真的按场景控制 Skill,不会嫌麻烦把所有包一直开着。
Case 11:Agent 跑在远程服务器上,本地怎么管
我不只在这台 Mac 上跑 Agent,也会把 Agent 放到远程开发机或服务器上。如果本地和远程各管各的,远程环境很快又会变成一座孤岛:Agent 状态看不到,Hooks 和诊断也要单独处理。
AgentBro 可以维护一份共用的远程服务器列表。主机既能手动添加,也能从 ~/.ssh/config 导入,Agent 管理、诊断和灵动岛共用同一条 SSH 连接。
远程主机需要安装 agentbro-remote,并在 SSH 配置中建立 TCP 隧道。截图里的本地监听端口是 7399,用来接收远程 Agent 事件。
连接以后,我可以在本机和远程服务器之间切换当前管理环境。选中远程主机后,看到和管理的就是那台机器上的 Agent,不用再开一套远程桌面。
这个能力解决的是“从这台 Mac 管理远程 Agent”,不是把多个设备的中心库自动同步到一起。跨设备和团队同步还没有做;项目级 Skill 管理准备放到下个版本;MCP 和 Plugins 现在主要是扫描和展示,还没有做到和 Skill 一样完整。
关于 AgentBro
AgentBro 是我自己开发、也每天在用的 macOS Agent 管理工具。目前已经支持 Claude Code、Codex、ZCode、Trae、Qoder、豆包等多个 Agent。最早它只是把这些 Agent 的事件放进灵动岛里;后来我本机的 Agent 和 Skill 越来越多,才陆续长出中心库、技能包、扫描接管、诊断和远程服务器管理。
这些功能现在还在继续迭代。项目地址:https://github.com/shirenchuang/agentbro
一个 Skill 有没有被管住,我现在只看几件事:真实源码在哪里,中心库认的是哪一份,它属于哪些技能包,以及此刻在哪些 Agent 上生效。回答不出来,装得再整齐也还是一笔糊涂账。

