oh-my-hermes 技能目录系统:124个技能如何从单一数据源生成
【免费下载链接】oh-my-hermesAll in one plugin for Hermes Agent ⚚ the coding intelligence, a long-term memory system and model optimized workflow packages项目地址: https://gitcode.com/GitHub_Trending/ohm/oh-my-hermes
oh-my-hermes(OMH)是 Hermes Agent 的“一体化运营层插件”,它的核心是一套技能目录系统(Skill Catalog):100 多个可安装技能(当前目录已达 127 个,并持续扩充)全部源自同一份 Python 定义文件。本文带你搞懂这套“单一数据源生成多份投影”的机制——为什么改一处就能同步更新所有技能文档,又为什么它几乎不可能出现内容漂移。
先搞懂:什么是“技能目录”
普通项目里,写 100 多篇格式统一的文档(技能说明、使用场景、触发词)几乎必然产生内容漂移:改了一处,忘了另一处。
OMH 的做法相反——技能不是被“写”出来的,而是被“生成”出来的:
- 📦 唯一的数据源:src/skills/catalog_definitions.py,每个技能在这里只登记一次(
SkillDefinition) - 🎯 三个生成目标(投影),全部由这一个文件派生:
| 投影 | 位置 | 数量 | 用途 |
|---|---|---|---|
| Hermes 原生技能 | skills/ | 127 个目录 | 安装进 Hermes Agent 的SKILL.md |
| Agent Skills 投影 | agent-skills/ | 102 个目录 | 供 Claude Code、Codex、Cursor 等外部工具使用 |
| 工作流参考文档 | docs/WORKFLOWS.md | 一份长文档 | 面向人类阅读的完整技能手册 |
一次定义,三处同步:生成链路拆解
整条链路只有三步,理解它你就能看懂整个目录系统:
1️⃣ 单一注册点:SkillDefinition
每个技能在 src/skills/catalog_definitions.py 中只登记一次,包含名称、分类、角色、触发词、适用/不适用场景等全部字段。文档 docs/ADDING-A-SKILL.md 把它称为“single registration point”(单一注册点)。
SkillDefinition.name是技能的“身份证号”:安装目录名、路由键、CLI 参数都靠它对齐;而hermes_role字段则决定技能安装到哪个分类目录下——改数据,布局自动跟着变。
2️⃣ 派生层:catalog.py 读取定义并推导
src/skills/catalog.py 负责“读定义、算结果”:安装目录布局、路由元数据、质量档位等都由这里推导,而不是手工维护。
3️⃣ 一键再生成所有产物
uv run python -m omh.cli docs workflows --output docs/WORKFLOWS.md uv run python -m omh.cli docs agent-skills # 同步生成 102 个外部工具适配文件docs/WORKFLOWS.md 开头就写着:“This file is generated from src/skills/catalog.py. Update the catalog first.”——先改目录,再刷文档,顺序不可颠倒。
为什么 agent-skills 只有 102 个?
这正是这套系统最聪明的地方:可移植性分级。
src/skills/catalog_portable.py 中的单一评审表把每个技能分为三级:
- portable(可移植):只依赖通用的推理、文件与工具能力
- requires-omh-cli(需 CLI):还用到本地确定性的
omh命令 - hermes-only(仅限 Hermes):依赖 Hermes 运行时,不出现在外部投影中
所以 127 个技能中有一批“仅限 Hermes”的工作流被刻意排除在 agent-skills/ 之外,而不是粗暴地全部照搬。
如何新增一个技能(维护者视角)
流程见 docs/ADDING-A-SKILL.md,精简版是:
- 在
catalog_definitions.py中新增一条SkillDefinition - 在路由策略表 src/routing/recommend.py 中登记(如需要)
- 运行 CLI 重新生成
skills/、agent-skills/和文档 - 跑校验:
omh docs workflows --check+omh release drift
每一步都有测试兜底:跳过的任何一处都会让 CI 带着“该改哪个文件”的可执行提示失败,而不是留下一个悄悄烂掉的产物。
防漂移门禁:字节级校验
OMH 对“生成物一致性”的态度相当硬核(详见 docs/AGENT-SKILLS.md 的 “Maintainer byte gate” 一节):
- 每个投影文件都有 SHA256 摘要清单,
omh docs agent-skills --check会逐字节比对 omh release drift检测缺失、过期、多余的文件- 新增技能还会被
skill-context-cost审计上下文成本,防止“技能越加越多、提示词越来越肥”
写在最后
oh-my-hermes 的技能目录系统给了一个可复用的工程范式:把“内容”变成“数据”,把“文档”变成“编译产物”。单一数据源 + 确定性生成 + 字节级门禁,让上百个技能始终步调一致。如果你想动手试试,完整安装方式见 docs/INSTALLATION.md:
curl -fsSL https://raw.githubusercontent.com/rlaope/oh-my-hermes/main/install.sh | sh【免费下载链接】oh-my-hermesAll in one plugin for Hermes Agent ⚚ the coding intelligence, a long-term memory system and model optimized workflow packages项目地址: https://gitcode.com/GitHub_Trending/ohm/oh-my-hermes
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考