教程概述
系列索引: Hermes Agent 教程系列
本文介绍 Hermes Agent 的技能系统。这是 Hermes 的第二个核心差异化能力,也常常是用户真正产生“原来它还能这么扩展”这一顿悟时刻。
你将学到什么
- ✅ Hermes 的技能到底是什么,以及为什么重要
- ✅ 如何在 Skills Hub 中浏览和安装技能
- ✅ 如何创建属于你自己的技能
- ✅ 技能如何在使用中自我改进
- ✅ 技能设计的最佳实践
为什么技能重要
静态 Agent 的局限
大多数 AI 助手的能力是固定的。你无法轻松增加:
- 为团队代码审查定制的工作流
- 面向你特定指标的自动化报表生成器
- 针对你所在领域术语的专用提示模板
flowchart LR
A[固定能力] --> B[用户请求]
B --> C{是否在能力范围内?}
C -->|是| D[执行]
C -->|否| E[无法帮助]
E --> F[用户沮丧]
style E fill:#ffcccc
style F fill:#ffcccc
Hermes 的技能方案
技能是一类可在被触发时调用的过程性知识。它们能够:
- 在不改代码的前提下扩展能力
- 根据实际使用反馈持续改进
- 在不同 Hermes 实例之间共享
flowchart TD
A[识别用户需求] --> B[创建技能]
B --> C[触发技能]
C --> D[执行技能]
D --> E[评估结果]
E --> F{成功?}
F -->|是| G[强化技能]
F -->|否| H[改进技能]
G --> C
H --> B
style G fill:#e8f5e9
style H fill:#fff3e0
对比
| 功能 | Hermes 技能 | Claude Code Rules | Cursor Rules |
|---|---|---|---|
| 自动创建 | ✅ 从经验中生成 | ❌ 手动 | ❌ 手动 |
| 自我改进 | ✅ 在使用中优化 | ❌ 静态 | ❌ 静态 |
| 共享能力 | ✅ Skills Hub | ❌ 仅本地 | ❌ 仅本地 |
| 触发检测 | ✅ 自动识别 | ❌ 显式调用 | ❌ 显式调用 |
Skills Hub
什么是 Skills Hub?
Skills Hub 是一个遵循开放标准的社区技能仓库,地址是 agentskills.io。Hermes 可以在这里浏览、安装和贡献技能。
浏览可用技能
# 列出全部技能
hermes skills list
# 按分类搜索
hermes skills search --category coding
# 按关键词搜索
hermes skills search "debugging"
安装一个技能
# 从 Skills Hub 安装
hermes skills install @username/skill-name
# 示例
hermes skills install @nous/research-summarizer
技能分类
| 分类 | 示例技能 |
|---|---|
| 编码 | pytest-runner、code-reviewer、refactor-assistant |
| 研究 | paper-summarizer、citation-manager、hypothesis-generator |
| 自动化 | daily-report、backup-manager、alert-handler |
| 沟通 | email-drafter、slack-notifier、meeting-summarizer |
创建技能
技能的基本结构
一个技能通常是一个带结构化区块的 Markdown 文件:
---
name: "daily-report"
description: "Generate daily progress reports"
triggers:
- "daily report"
- "generate report"
- "/report"
---
## Procedure
1. Query memory for today's activities
2. Summarize key accomplishments
3. List pending items
4. Format as specified template
## Examples
Input: "Generate my daily report"
Output:
- Completed: Fixed 3 bugs in auth module
- In progress: API documentation
- Blocked: Waiting for DB migration approval
## Template
# Daily Report - {date}
## Completed
{completed_items}
## In Progress
{in_progress_items}
## Blocked
{blocked_items}
技能创建流程
flowchart TD
A[识别可重复任务] --> B[定义触发词]
B --> C[编写流程]
C --> D[添加示例]
D --> E[测试技能]
E --> F{是否有效?}
F -->|是| G[保存技能]
F -->|否| H[优化流程]
H --> C
style G fill:#e8f5e9
创建新技能
# 启动技能向导
hermes skills create
# 或手动创建
nano ~/.hermes/skills/my-skill.md
技能文件位置
~/.hermes/skills/
├── installed/ # 从 Hub 安装的技能
├── custom/ # 你自己创建的技能
└── learned/ # 自动生成的技能
自我改进的技能
技能如何改进
Hermes 会跟踪技能执行结果,并持续优化技能流程:
sequenceDiagram
participant U as 用户
participant H as Hermes
participant S as 技能
participant M as 记忆
U->>H: 触发技能
H->>S: 加载流程
S->>H: 执行步骤
H->>U: 交付结果
U->>H: 反馈(显式或隐式)
H->>M: 记录结果
M->>H: 模式分析
H->>S: 优化流程
style H fill:#e1f5ff
style S fill:#fff3e0
改进机制
- 成功追踪 — 有效的流程会被强化
- 失败分析 — 失败执行会触发流程修正
- 用户反馈 — 显式纠正会改进技能步骤
- 模式综合 — 将常见变体并入流程
改进示例
初始技能:
Procedure:
1. List files
2. Identify changed files
3. Generate summary
经历 10 次失败后:
Procedure(改进版):
1. 使用 `git status` 列出文件
2. 识别变更文件,并按扩展名过滤
3. 针对每个文件判断修改类型
4. 按变更类别分组(新增、修改、删除)
5. 生成按类别组织的摘要
最佳实践
技能设计指南
- 触发词清晰 — 使用容易区分的短语
- 流程要原子化 — 一个技能只解决一类问题
- 示例足够具体 — 提供输入/输出对
- 模板保留弹性 — 允许后续自定义
命名约定
| 前缀 | 用途 | 示例 |
|---|---|---|
@username/ |
共享技能 | @nous/daily-report |
local: |
个人技能 | local:my-review |
learned: |
自动生成 | learned:debug-loop |
触发词设计
好的触发词:
"code review for"— 动作具体"/report"— 斜杠命令风格"summarize this paper"— 自然语言明确
不好的触发词:
"review"— 过于模糊"help"— 容易和系统命令冲突"do it"— 太泛化
管理技能
查看已安装技能
hermes skills list --all
禁用一个技能
hermes skills disable local:my-skill
更新技能
# 从 Hub 更新
hermes skills update @nous/daily-report
# 手动编辑
nano ~/.hermes/skills/custom/my-skill.md
分享技能
# 发布到 Skills Hub(需要账户)
hermes skills publish local:my-skill --name "my-utility"
常见问题排查
技能没有被触发
原因:触发短语和现有技能过于相似。
解决方案:改用更有区分度的触发词,或检查冲突:
hermes skills conflicts
技能效果不好
原因:流程设计还需要进一步完善。
解决方案:补充反馈或更新示例:
用户: 这次不太对,要把时间戳也带上。
Hermes: 已记录,我会优化这个技能的流程。
技能冲突
原因:多个技能使用了相同的触发词。
解决方案:禁用其中一个,或修改触发词:
hermes skills disable @old/skill
总结
技能是 Hermes 的可扩展机制:
- Skills Hub — 社区共享技能仓库
- 创建流程 — 定义、测试、保存
- 自我改进 — 技能会在使用中不断优化
- 最佳实践 — 清晰触发词、原子化流程
关键要点
- ✅ 技能可以在不改代码的前提下扩展 Hermes 能力
- ✅ Skills Hub 提供了共享技能库
- ✅ 技能会根据使用结果持续改进
- ✅ 好的技能设计依赖清晰触发词和具体示例
系列导航:
- ← 上一篇: 教程 2:记忆系统 — 持久记忆与用户建模
- → 下一篇: 教程 4:消息网关 — 多平台集成
- 返回: 系列索引
毕业里程碑 G1:完成教程 1 到 3 后,你就具备了基础能力。此时你的 Hermes Agent 已经可以运行、记忆,并拥有技能,接下来可以开始探索不同的部署方式。