🏗 Hermes Skill 机制结构体系
Hermes Agent 的 skill 机制是 结构化程序知识 的载体——把 AI 已完成的任务流程、踩过的坑、总结的最佳实践,固化为可被下次对话自动加载的操作指南。
一、三层 Skill 体系
| 层级 | 名称 | 数量 | 位置 | 生命周期 |
|---|---|---|---|---|
| L1 | 内置 Skill Built-in Skills | ~145 | /opt/data/skills/<category>/ | Hermes 自带,不可删除 可通过 skill_manage patch 微调 |
| L2 | 自学 Skill Self-learned Skills | ~19 | /opt/data/skills/<category>/ | skill_manage create/edit/patch/delete 完全用户控制 |
| L3 | 社区 Skill Open Skills / 外部仓库 | ~40 | ~/open-skills/skills/ | git clone 同步 按需检查,不自动注入 |
二、Skill 目录结构
每个 skill 是一个目录,核心文件为 SKILL.md,可附带执行脚本、参考文档、模板文件:
skills/<category>/<skill-name>/
├── SKILL.md ← 核心!含 YAML frontmatter + 流程指令
├── scripts/ ← 可执行的 Python/bash 脚本
│ └── *.py
├── references/ ← 参考文档、代码模式、数据规范
│ └── *.md
├── templates/ ← 模板文件(config、代码骨架)
│ └── *.j2 / *.yaml
└── assets/ ← 静态资源(图片、图标等)
SKILL.md 结构
---
name: <skill-name> # Hermes 内的唯一标识
category: <domain> # 分类(financial-services / software-development 等)
title: <display-title> # 展示标题
description: <summary> # AI 理解 skill 用途的摘要
version: 0.1.0 # (可选)版本号
triggers: # 触发词列表
- "生成 FOF 报告"
- "SPR"
tags: # 标签
- "FOF"
- "回测"
---
# Skill 标题
## 工作流
AI 按此文档的步骤执行任务。
## Pitfalls
避坑指南、高频错误。
三、Skill 加载与触发流程
┌─────────────────────────────────────────────────┐
│ 用户输入自然语言消息 │
└─────────────────┬───────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────┐
│ Hermes 扫描所有 available_skills │
│ 对比 triggers 匹配 + 描述语义匹配 │
│ (每次对话只注入匹配的 skill) │
└─────────────────┬───────────────────────────────┘
│
┌───────┴───────┐
▼ ▼
┌──────────┐ ┌────────────┐
│ 匹配成功 │ │ 无匹配 │
└────┬─────┘ └────┬───────┘
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────────┐
│ 注入 SKILL.md │ │ 用通用能力处理 │
│ 到 system prompt │ │ (无 skill 辅助) │
│ AI 按步骤执行 │ │ │
└─────────────────┘ └─────────────────────┘
│
▼
┌─────────────────────────────────────────────────┐
│ AI 完成任务 → 可选 skill_manage(action='patch') │
│ 将新发现的避坑点写入 skill(自学习闭环) │
└─────────────────────────────────────────────────┘
四、Skill 自学习闭环
| 阶段 | 操作 | 触发条件 |
|---|---|---|
| ① 创建 | skill_manage(action='create') | 完成复杂任务(5+ 工具调用) 发现可复用的工作流 |
| ② 使用 | skill_view(name) | 下次遇到匹配 trigger 时自动加载 |
| ③ 修正 | skill_manage(action='patch') | 执行 skill 过程中发现遗漏的步骤或坑 |
| ④ 删除 | skill_manage(action='delete') | skill 过时或已被合并到其他 skill |
五、skill_manage 命令参考
| 动作 | 用途 | 关键参数 |
|---|---|---|
create | 创建新 skill | name, content (SKILL.md), category |
patch | 增量更新 SKILL.md | name, old_string, new_string |
edit | 全量替换 SKILL.md | name, content |
delete | 删除 skill | name, absorbed_into (可选迁移目标) |
write_file | 写入附属文件 | name, file_path, file_content |
remove_file | 删除附属文件 | name, file_path |
涉及路径:skill_view(name) 加载 skill 内容 → skill_manage 修改 → skills_list 列出所有可用 skill
六、数据流向
filesystem Hermes Agent User
───────── ──────────── ────
skills/ 对话启动 输入需求
├── SKILL.md ────skill_view()──▶ 扫描 triggers │
├── scripts/ ────terminal()───▶ 匹配 → 注入 prompt │
├── references/ AI 按 skill 步骤执行 ────▶ 交付结果
└── templates/ │
│ 遇到新坑
▼
skill_manage(patch)
│
▼
SKILL.md 更新 ◀── 下次复用
七、核心原则
- Skill 是程序知识,AI 是推理引擎:Skill 记录「步骤/命令/避坑」,AI 负责「理解/分析/创作」。skill 不替代 AI 的推理能力。
- 自学习闭环:每完成一次复杂任务,根据执行过程中的新发现 patch skill,让下次更精准。
- 渐进式积累:不必追求一步到位的完美 skill,从最小可用版本开始,按需迭代。
- 触发大于搜索:好的 trigger 词让 skill 在匹配时自动加载,不需要用户手动指定 skill 名。
- 分类引导发现:Hermes 的 30 个预置分类(financial-services、software-development 等)帮助新技能找到正确归属。