返回

Hermes Agent 教程 3:技能系统 — 创建与管理技能

Hermes Agent 的技能系统允许你创建可在使用中不断改进的自定义能力。本文介绍 Skills Hub、技能创建流程、技能结构,以及技能如何自我优化。

教程概述

系列索引: 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-runnercode-reviewerrefactor-assistant
研究 paper-summarizercitation-managerhypothesis-generator
自动化 daily-reportbackup-manageralert-handler
沟通 email-drafterslack-notifiermeeting-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

改进机制

  1. 成功追踪 — 有效的流程会被强化
  2. 失败分析 — 失败执行会触发流程修正
  3. 用户反馈 — 显式纠正会改进技能步骤
  4. 模式综合 — 将常见变体并入流程

改进示例

初始技能

Procedure:
1. List files
2. Identify changed files
3. Generate summary

经历 10 次失败后

Procedure(改进版):
1. 使用 `git status` 列出文件
2. 识别变更文件,并按扩展名过滤
3. 针对每个文件判断修改类型
4. 按变更类别分组(新增、修改、删除)
5. 生成按类别组织的摘要

最佳实践

技能设计指南

  1. 触发词清晰 — 使用容易区分的短语
  2. 流程要原子化 — 一个技能只解决一类问题
  3. 示例足够具体 — 提供输入/输出对
  4. 模板保留弹性 — 允许后续自定义

命名约定

前缀 用途 示例
@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 的可扩展机制

  1. Skills Hub — 社区共享技能仓库
  2. 创建流程 — 定义、测试、保存
  3. 自我改进 — 技能会在使用中不断优化
  4. 最佳实践 — 清晰触发词、原子化流程

关键要点

  • ✅ 技能可以在不改代码的前提下扩展 Hermes 能力
  • ✅ Skills Hub 提供了共享技能库
  • ✅ 技能会根据使用结果持续改进
  • ✅ 好的技能设计依赖清晰触发词和具体示例

系列导航:


毕业里程碑 G1:完成教程 1 到 3 后,你就具备了基础能力。此时你的 Hermes Agent 已经可以运行、记忆,并拥有技能,接下来可以开始探索不同的部署方式。