模块 5 / 10 ⭐ 核心差异化
技能系统 (Skills)
Hermes 最独特的能力——从经验中自动创建可复用技能,越用越聪明。兼容 agentskills.io 开放标准。
预计阅读时间:25 分钟 · 前置:模块 4 · v0.17.0
1 Skill 是什么?为什么它是核心差异化
Skill(技能)是 Hermes Agent 最核心的差异化能力——一套内置的自学习系统,让 Agent 从每次交互中积累经验,自动创建、迭代、复用可执行的知识文档。
🧠 人类类比
像一个新员工入职第一天 vs 工作一年后。Skill 就是 Agent 的工作笔记——踩过的坑、发现的捷径、验证过的流程,都记下来下次直接用。这不是"记住偏好",而是"记住怎么做"。
⚡ 与竞品的本质区别
Claude Code、Codex CLI、GitHub Copilot 都不会从经验中学习——每次都是"第一次做"。Hermes 是唯一内置完整学习闭环的 Agent 框架。
【v0.17 2026 更新】Hermes 现已兼容 agentskills.io 开放标准——在 Hermes 中创建的 Skill 可在其他兼容 Agent 中使用,反之亦然。Skill 生态正在形成跨框架的互操作网络。
2 底层原理:Skill 的加载与执行
Skill 不是简单的"给 LLM 一段提示词"——它经过了三层处理链路,确保 Skill 不仅被读取,更被理解并执行。
flowchart TD
A["① Skill 文件 (.md)"] --> B["② 加载到 System Prompt
Layer 5 · Active Skills"]
B --> C["③ LLM 解析触发条件
匹配当前任务"]
C --> D{"触发?"}
D -->|"匹配"| E["④ LLM 按 Skill 指令
调用工具执行"]
D -->|"不匹配"| F["⑤ Skill 保持待命
不影响当前任务"]
E --> G["⑥ 执行成功后
Curator 记录使用"]
G --> H["⑦ 高频 Skill 提升权重
未来优先加载"]
关键机制:
- 注入位置:Skill 内容注入 System Prompt 的 Layer 5(在 Persona、Memory 之后,Project Context 之前),优先级高于项目级规则。
- 触发方式:LLM 根据 Skill 的
description 和 triggers 字段自行判断是否适用——不需要用户手动指定。多个 Skill 同时加载时,LLM 会按相关性自行选用。
- 加载时机:会话启动时通过
--skills flag 或 /skill name 斜杠命令加载。加载后会话内持续有效(受 Prompt Caching 保护),跨会话不自动延续。
- 权重学习:Curator 追踪每个 Skill 的使用频率和成功率。高频 Skill 在
/skill 自动补全中排名更高,Agent 也倾向于优先匹配。
3 SKILL.md 完整格式规范
每个 Skill 是一个 Markdown 文件,YAML frontmatter + Markdown 正文
必填字段(YAML frontmatter)
---
name: my-skill # 唯一标识,小写 + 连字符,≤64 字符
description: > # 一句话描述 + 触发场景(LLM 用于判断是否匹配)
当用户需要 X 时使用此技能。触发词:Y, Z。
version: 1.0.0 # 语义化版本
---
可选字段
license: MIT
platforms: [linux, macos, windows]
triggers: # 关键词触发列表(辅助 LLM 匹配)
- deploy: 部署/发布/上线/deploy
- test: 测试/test/验证
metadata:
author: hermes-agent
tags: [devops, python]
homepage: https://example.com
正文规范
# 技能标题
## 何时使用
明确的触发条件,用第二人称描述(Hermes: 当用户说 X 时…)
## 工作流程
1. 第一步:具体命令
2. 第二步:验证方式 → 验证:[怎么确认做对了]
## 常见陷阱
- 坑 1:现象 + 根因 + 解决方案
## 参考
相关 API 文档链接、配置文件路径
⚠️ 格式陷阱:正文中不要用第一人称"我"——Skill 是指令文档,不是对话。始终用"Agent 应该…""当用户…时"。description 字段是 LLM 做匹配判断的唯一依据,必须写得具体——"部署 Python 项目到 Docker"比"部署相关"有效 100 倍。
4 技能生命周期与 Curator 自动维护
Skill 不是静态文档——它有一个完整的生命周期,由内置的 Curator(技能管家) 自动管理。
flowchart TD
A["📝 创建"] --> B["✅ 活跃
Agent 高频使用"]
B --> C{"30 天未使用?"}
C -->|"否"| B
C -->|"是"| D["📦 Stale
标记为'不活跃'"]
D --> E{"再过 30 天?"}
E -->|"被重新使用"| B
E -->|"仍未使用"| F["🗄️ 归档
移到 archive/ 目录"]
F --> G{"手动恢复?"}
G -->|"是"| B
G -->|"否"| H["💤 保持归档
(永不删除)"]
Curator 核心行为
🔍 自动追踪
每次 Skill 被加载时,Curator 记录到 ~/.hermes/skills/.usage.json。追踪:使用次数、查看次数、修补次数、最后活动时间。
📌 Pin 保护
重要的 Skill 可以用 hermes curator pin <name> 锁定——锁定的 Skill 永不自动归档,也不受闲置清理影响。
🔄 自动备份
Curator 每次运行前自动创建 .tar.gz 全量备份。即使误归档也能通过 rollback 恢复。
📊 仅管 Agent 创建的 Skill
Curator 只处理 created_by: "agent" 的 Skill。Bundled 技能和 Hub 安装的技能不受影响。
Curator 配置
curator:
enabled: true # 是否启用
interval_hours: 24 # 检查间隔
stale_after_days: 30 # 闲置多久标记 stale
archive_after_days: 30 # stale 后再多久归档
backup:
enabled: true
5 agentskills.io 开放标准 v0.17 新增
Skill 不锁死在 Hermes——一次编写,跨框架复用
【v0.17 2026 更新】Hermes 正式兼容 agentskills.io 开放标准。这意味着:
🔗 跨框架互操作
在 Hermes 中创建的 Skill,导出的 SKILL.md 可直接在其他兼容 Agent 中使用(反之亦然)。Skill 不再被单一框架锁定。
📦 Skills Hub
agentskills.io 是公共 Skill 注册中心。hermes skills search 和 hermes skills install 默认连到这个 Hub。
📐 格式标准化
SKILL.md 的 YAML frontmatter 字段(name、description、triggers 等)遵循 agentskills.io 规范,保证跨平台一致性。
# 搜索 Hub 上的 Skill
hermes skills search "docker deployment"
# 从 Hub 安装(通过 ID 或 URL)
hermes skills install "docker-deploy"
hermes skills install "https://agentskills.io/skills/docker-deploy/SKILL.md"
# 从 GitHub repo 添加 Skill 源
hermes skills tap add "my-org/hermes-skills"
6 实操:创建、安装、管理 Skill
场景:创建一个「Django 部署检查清单」Skill
---
name: django-deploy-checklist
description: 当用户要部署 Django 项目到生产环境时使用。
触发词:部署 Django / deploy Django / 上线 Django
version: 1.0.0
triggers:
- deploy: 部署/deploy/上线/发布
- django: Django/django
---
# Django 部署检查清单
## 何时使用
当用户提到部署 Django 项目时,按此清单逐项检查。
## 检查步骤
1. python manage.py check --deploy → 验证:无 ERROR
2. grep SECRET_KEY .env → 验证:不为空
3. grep DEBUG settings.py → 验证:必须为 False
4. python manage.py collectstatic --dry-run → 验证:无报错
5. python manage.py migrate --plan → 验证:确认迁移列表
## 常见陷阱
- 忘记设置 ALLOWED_HOSTS:生产部署后 400 Bad Request。
解决:检查 settings.py 中 ALLOWED_HOSTS 包含生产域名。
管理命令一览
# 会话内加载
/skill django-deploy-checklist # 加载到当前会话
/reload-skills # 重新扫描 skills/ 目录
# 全局管理
hermes skills list # 列出已安装
hermes skills search "query" # 搜索 Hub
hermes skills install "id" # 从 Hub 安装
hermes skills uninstall N # 卸载
hermes skills check # 检查更新
hermes skills update # 更新过期 Skill
hermes skills config # 按平台启用/禁用
hermes skills browse # 浏览所有可用 Skill
# Curator
hermes curator status # 查看状态
hermes curator pin "name" # 锁定重要 Skill
hermes curator restore "name" # 恢复已归档 Skill
7 Skill vs Project Context vs Memory
三个概念容易混淆——一张表彻底分清
| 维度 | Skill | Project Context | Memory |
| 粒度 | 可复用的工作流程 | 项目级规则 | 事实片段 |
| 示例 | "Django 部署检查清单" | "用 pytest 测试" | "项目在 ~/code/myapp" |
| 加载 | /skill 或自动匹配 | 进入项目目录自动 | System Prompt Layer 3+4 自动注入 |
| 作用域 | 跨项目 | 当前项目 | 跨会话、跨项目 |
| 生命周期 | Curator 自动管理 | 手动维护 | 字符预算自动清理 |
| 优先级 | Layer 5 | Layer 6 | Layer 3+4 |
🤔 快速判断:如果内容是"怎么做"(流程、步骤),写成 Skill。如果是"在这个项目里怎么做"(项目约定),写到 Project Context。如果是"是什么"(事实、路径),存为 Memory。
8 自学习闭环深度解析
这是 Hermes 最独特的能力——Agent 从每次交互中自动成长
flowchart TD
A["👤 用户提出任务"] --> B["🤖 Agent 执行
调用工具,多步推理"]
B --> C{"任务成功?"}
C -->|"成功"| D["⚡ Agent 判断:
是否值得保存为 Skill?"]
C -->|"失败"| E["🔧 用户纠正
或 Agent 自我诊断"]
E --> F["📝 修补已有 Skill
或创建纠错 Skill"]
F --> G["Skill 库更新"]
D -->|"值得"| H["💾 Agent 自动创建
SKILL.md"]
D -->|"不值得"| I["跳过"]
H --> G
G --> J["🎯 下次类似任务
自动匹配 + 加载"]
J --> K["📊 Curator 追踪效果
好的提升权重
差的标记待修补"]
K --> B
自学习的关键触发条件
Agent 不随意创建 Skill——它只在以下情况才会触发:
- 复杂度阈值:任务涉及 5+ 个 tool call 或跨越多个领域
- 新颖性:现有 Skill 无法覆盖,Agent 需要从头摸索
- 可复现性:任务流程明确、步骤可复现(不是一次性调研)
- 用户确认:Agent 会问"是否保存为 Skill?"——需要用户同意才会创建
🧠 与 Memory 的协同:Skill 记住流程,Memory 记住上下文。例如:部署 Django 项目,Skill 记录"先跑 check --deploy",Memory 记录"生产服务器 IP 是 xxx"。两者互补,缺一不可。
9 常见疑问
Q: Skill 和 System Prompt 里的规则有什么区别?
System Prompt 规则是行为约束("不要编造"),Skill 是操作流程("部署时先做 X,再验证 Y")。规则控制 Agent 怎么说话,Skill 控制 Agent 怎么做。
Q: Agent 会自动加载所有 Skill 吗?
不会。只有被 /skill 加载的 Skill 才进入当前会话。跨会话不自动延续——每次新会话需要重新加载。但 Curator 的权重机制会让 Agent 主动提醒你"之前有个 Skill 可能适合这个任务"。
Q: Skill 和 Custom Tool 什么时候用哪个?
如果有个外部 API 需要封装成固定调用——写 Custom Tool。如果有个多步骤流程需要用现有工具组合完成——写 Skill。Tool 提供新能力,Skill 编排现有能力。
Q: 怎么防止 Curator 删掉我的重要 Skill?
用 hermes curator pin <name> 锁定。锁定的 Skill 永不自动归档。此外 Curator 从不真正删除——最坏情况只是归档到 archive/ 目录,随时可恢复。
Q: agentskills.io 上的 Skill 质量怎么保证?
agentskills.io 是开放注册中心,质量参差不齐。建议优先用 hermes skills browse 看下载量和评分,或从官方推荐列表中选择。所有安装的 Skill 都会经过 Hermes 的安全扫描。
✅ 本章复核验收清单
📌 本章核心要点
- Skill 是 Hermes 最独特的差异化能力——唯一内置自学习闭环的 Agent 框架
- Curator 自动管理 Skill 生命周期:追踪 → 标记 stale → 归档(不删除)
- agentskills.io 让 Skill 跨框架复用
- Skill 记流程,Memory 记事实,Project Context 记项目约定