Learning Loop — Auto Skill Synthesis
Hermes 的「学习 → skill → 执行」闭环。任务没命中本地 skills 时,自动调研并写入。
When to use
- 接到新类型任务,本地
skills_list()无命中 - 用户明确说「研究一下 X」「调研 Y」「学习 Z」
- 任务需要新工具/新协议/新框架知识
流程(5 步)
1. 查本地 skills
skills_list() → 模糊匹配 description
命中 → 直接 skill_view(name) 加载执行;未命中 → 进入步骤 2。
2. 派 opencode 调研(并行 ≤3 路)
- GitHub 搜索:
opencode run --model opencode/deepseek-v4-flash-free --allow-read --share - 官方文档:
web_fetch或ego-browser - Hub 搜索:
hermes skills search <query> --source skills-sh/--source well-known
每路写到 ~/.hermes/scratch/research/<task_id>/{github.md,docs.md,hub.md}。
3. 合成 SKILL.md 草稿
调 execute_code 跑 ~/.hermes/skills/learning-loop/scripts/synthesize_skill.py:
- 输入:task 描述 + 调研产物路径
- 输出:完整 SKILL.md 内容(含 frontmatter)
- 自检:description ≤1024 字且前 57 字精准 / name kebab-case ≤64 字 / 引用 hermes 原生工具 / 不和 bundled skill 重名
模板:templates/SKILL-from-research.md
4. 写入
skill_manage(
action="create",
name=,
content=,
category=,
)
自动落 ~/.hermes/skills/<cat>/<name>/SKILL.md。
5. 执行 + 回填
- 用新 skill 执行原任务
- 把结果写入 skill 的
metadata.hermes.feedback(可选,给 curator)
Failure modes
- 调研超时(600s)→ 降级到 pi 兜底
- 写入被
guard_agent_created拦截 → 报告 pattern 不跳过 - 重名 → 加后缀
-v2/-<topic> - category 在黑名单 → 默认改
software-development
Verification
跑完后:
skills_list() | grep <name>命中skill_view(name)能读全文- 任务本身执行成功