# 第八册:技能系统完全指南

> **本章你将学到**
>
> - 什么是 Skill(技能),以及它与传统 Prompt 模板的核心区别
> - Skill 文件的内部结构:元数据、触发条件、执行步骤、示例 IO
> - Hermes 独门绝技:自动技能创建机制(5-tool-call 规则)
> - 技能自我进化的原理与社区实测数据(1-2 周成功率提升 30%+)
> - 四个信任等级体系:内置、官方、可信、社区
> - Skills Hub 生态:643 个社区技能的浏览、安装与贡献
> - 从 Claude Code、Cursor、OpenClaw 迁移技能的方法
> - 74 个内置技能和 44 个官方可选技能的分类总览
> - 高阶技能开发:复合技能、条件分支、参数模板、错误处理
> - 推荐首装的 5 个技能详解:LLM Wiki、Gstack、OpenAI Utils、Manim、Security Audit

---

## 1. 技能系统:让 Hermes 从"聊天机器"变成"全能助手"

### 1.1 什么是 Skill(技能)

想象一下,你雇用了一位实习生。第一天,你手把手教他如何整理周报:先打开 Excel 模板,从 JIRA 导出本周完成的任务,按优先级排序,计算工时统计,最后生成图表并发送给经理。这个过程你教了一遍又一遍。

到了第二周,你正打算再教一次,实习生却说:「放心,上周您教我的流程我已经记下来了,以后每周五下午我自己就能搞定。」

这就是 Skill(技能)的本质——**把完成某项任务的标准化流程沉淀下来,让 Agent 能够自主复用**。

在 Hermes 中,Skill 是一个存放在 `~/.hermes/skills/<name>/SKILL.md` 路径下的 Markdown 文件。它不是一个简单的「提示词模板」,而是一个完整的「任务执行程序」,包含:

- **触发条件**:什么情况下应该调用这个技能
- **执行步骤**:具体的操作流程(可以包含工具调用、代码执行、文件操作等)
- **所需上下文**:执行这个技能需要哪些前置信息
- **示例输入输出**:让 Agent 理解期望的结果格式

> **重要区别:Skill vs 传统 Prompt 模板**
>
> 传统 Prompt 模板就像一份「菜谱」——上面写着「番茄炒蛋:先炒蛋,再炒番茄,混合在一起」。它只告诉你「做什么」,但不帮你「做」。
>
> Skill 就像一个「自动炒菜机程序」——它不仅知道菜谱,还能自动开煤气、倒油、打鸡蛋、控制火候。它包含的是**可执行的工作流**,而不仅仅是文字说明。

### 1.2 Skill 与传统 Prompt 模板的区别

为了更清晰地理解这个区别,我们来看一个具体的对比。

**场景:让 AI 帮你「搜索最新 AI 新闻并生成摘要」**

**传统 Prompt 模板的方式:**

```
请帮我搜索今天关于 AI 的最新新闻,然后生成一份摘要。
要求:
1. 搜索至少 5 条新闻
2. 每条新闻包含标题、来源、关键内容
3. 最后给出整体趋势判断
```

每次你需要这个服务时,都要把上面的提示词重新发一遍。而且如果结果不满意,你还得手动调整提示词。

**Hermes Skill 的方式:**

你第一次执行这个任务时,Agent 会:

1. 接收你的自然语言指令
2. 调用 Web Search 工具搜索新闻
3. 调用 LLM 生成摘要
4. 调用 File Write 把摘要保存为 Markdown
5. **检测到这是一个可复用的模式,自动生成 SKILL.md**

下次你只需说:「给我今天的 AI 新闻摘要」,Agent 就会自动加载对应的 Skill,按照既定流程执行——不需要你重复描述要求,不需要你手动调用工具,甚至连输出格式都会和上次保持一致。

这个区别的本质在于:**Prompt 模板是「描述」,Skill 是「程序」**。

正如 Hermes Atlas 官方文档所强调的:「Claude Code 的 memory 存储关于你的事实——偏好要点。而 Hermes 存储的是程序——产生你想要的要点的研究-过滤-格式化工作流。事实告知模型,程序直接被复用。」

这句话揭示了 Hermes 技能系统的独特价值:**它不仅让 Agent 记住「你喜欢什么」,更让 Agent 掌握「如何为你做到」**。前者是静态的信息,后者是动态的能力。

### 1.3 技能系统是 Hermes 最实用的功能

在与大量 Hermes 用户的交流中,我发现一个有趣的现象:当被问到「Hermes 最打动你的功能是什么」时,答案出奇地一致——**技能系统**。

为什么技能系统如此受欢迎?因为它解决了 AI 应用中最核心的痛点:**重复劳动**。

在没有技能系统之前,使用 AI 的工作流是这样的:

```
有需求 → 想提示词 → 写详细 Prompt → 执行 → 检查结果 → 不满意 → 改 Prompt → 再执行 → ...
        ↑___________________________________________________________↓
                              (每次都要重复)
```

有了技能系统之后,工作流变成了:

```
第一次:有需求 → 自然语言描述 → Agent 自动执行 → 自动生成 Skill
第二次及以后:有需求 → Agent 自动加载 Skill → 自动执行 → 结果满意
```

把重复的思考成本从人类转移给了机器,这就是技能系统的魔力。

根据社区实测数据,一个典型的 Hermes 用户在使用 1-2 周后:

- 重复任务的成功率提升 **30% 以上**
- 平均每个任务的交互轮次减少 **40%**
- 用户对 Agent 的满意度提升显著(因为结果更可预测、更一致)

这些数字的背后,是技能系统在默默发挥作用——它把「每次都从头教」变成了「一次教会,终身复用」。

### 1.4 技能系统的三大特点:自动创建、自我进化、跨平台复用

Hermes 的技能系统之所以强大,是因为它在三个维度上同时做到了业界领先:

**特点一:自动创建(Auto-Generation)**

这是 Hermes 最独门、最让其他框架羡慕的绝技。大多数 Agent 框架的技能(或类似的「工作流」「插件」)都需要开发者手动编写。而 Hermes 能够在检测到重复模式后,**自动生成 Skill 文件**。

触发自动创建的典型条件包括:

- 完成复杂任务(通常涉及 5+ 次工具调用)且成功
- 用户在错误后纠正了做法,Agent 学到了正确的路径
- 发现了非显而易见的工作流组合
- 用户明确说「记住这个流程,下次还要用」

这种自动创建不是简单的「保存聊天记录」,而是 Agent 主动提炼工作流、抽象通用步骤、生成可复用的 SKILL.md 文件。这个过程涉及对任务本质的理解——哪些步骤是通用的、哪些是特定于本次输入的、哪些参数应该暴露给用户调整。

**特点二:自我进化(Self-Evolution)**

技能不是一经创建就固定不变的。每次使用 Skill 时,Agent 都会收集反馈:

- 这次执行成功了吗?
- 用户有没有做修改或纠正?
- 输出结果与预期是否一致?
- 有没有更高效的方式可以完成?

基于这些反馈,Skill 会自动更新版本,优化执行步骤,修正错误。就像一位厨师,每次做菜后都会微调配方,越做越好。

进化可以是显式的(Agent 主动告诉你「Skill 已更新到 v1.2」),也可以是隐式的(后台默默优化,你发现结果越来越好了)。

**特点三:跨平台复用(Cross-Platform Reuse)**

Hermes 的 Skill 采用纯 Markdown 格式,不绑定任何特定平台或模型。这意味着:

- 你可以把 Skill 从 Claude Code 迁移到 Hermes
- 你可以把 Skill 从 Cursor 迁移到 Hermes
- 你可以把 Skill 分享给社区的其他用户
- 你可以在 Skills Hub 上找到别人分享的 Skill 并一键安装

Skill 的可移植性让它不仅仅是个人的效率工具,更成为社区协作的载体。目前 Skills Hub 上已经聚集了 **643 个社区技能**(截至 2026 年 4 月 19 日),涵盖开发、设计、数据分析、内容创作等几乎所有领域。

> **Tips**
>
> 如果你是刚接触 Hermes 的新用户,我的建议是:**不要急着手动创建 Skill**。先正常使用 Hermes 1-2 周,让自动创建机制自然积累你的常用工作流。你会惊讶地发现,Agent 已经默默为你生成了十几个实用的 Skill。在此基础上,再有针对性地手动优化和补充。

---

## 2. 技能的内部结构

### 2.1 Skill 文件格式详解(Markdown)

Hermes 的 Skill 文件是纯 Markdown 格式,这带来了几个显著优势:

1. **人类可读**:你可以直接用任何文本编辑器打开、阅读、修改
2. **版本控制友好**:Markdown 与 Git 配合完美,diff 清晰易读
3. **工具生态丰富**:无数的 Markdown 编辑器、预览工具、lint 工具
4. **跨平台**:任何操作系统都能处理 Markdown

Skill 的标准存储路径是:

```
~/.hermes/skills/
├── <skill-name-1>/
│   └── SKILL.md
├── <skill-name-2>/
│   └── SKILL.md
└── ...
```

每个 Skill 都有自己的目录,目录名就是 Skill 的名称。目录内目前主要存放 `SKILL.md`,但未来版本可能会支持同目录下的辅助文件(如模板文件、配置文件等)。

### 2.2 一个完整 Skill 文件的剖析

让我们拆解一个真实的 Skill 文件,看看它包含哪些部分。

以下是一个「新闻抓取与摘要」Skill 的完整示例:

````markdown
# News Fetch and Summarize

## Metadata

- Name: news-fetch-summarize
- Description: Search for latest news on a given topic and generate
  a structured summary report
- Version: 1.2.0
- Tags: news, research, web-search, summary
- Author: auto-generated
- Created: 2026-04-15
- Last Updated: 2026-04-18

## Trigger Conditions

- User asks for "news" or "latest" about a topic
- User requests a "summary" of current events
- User mentions "what's happening" in a domain

## Required Context

- Topic: the subject to search for
- Time range: default to "today", user may specify (week/month)
- Output format: default to markdown, user may request (bullet/table)

## Execution Steps

### Step 1: Search

Use `web_search` tool to find at least 5 relevant news articles.
Query format: `<topic> news <time_range>`

### Step 2: Filter and Rank

Filter results by:

- Relevance to the topic (exclude off-topic results)
- Source credibility (prefer established news outlets)
- Recency (within the specified time range)

Rank by: relevance > credibility > recency

### Step 3: Extract Key Information

For each selected article, extract:

- Title
- Source name and URL
- Publication date
- 2-3 sentence summary of key content
- Any quoted statements or statistics

### Step 4: Generate Summary Report

Structure the output as:

```markdown
# <Topic> News Summary (<Date>)

## Overview

[2-3 sentence overall trend assessment]

## Key Stories

### 1. [Title]

- **Source**: [Name] ([URL])
- **Date**: [Publication date]
- **Summary**: [2-3 sentences]

### 2. [Title]

...

## Trend Analysis

[Overall pattern observation and forward-looking insight]

## Sources

- [Source 1]
- [Source 2]
- ...
```
````

### Step 5: Save (Optional)

If user requests, save the report to a file:

- Filename: `<topic>-news-<date>.md`
- Location: current working directory or user-specified

## Error Handling

- If web_search returns no results: expand query synonyms and retry
- If sources are all low-credibility: note this in the report
- If user topic is ambiguous: ask for clarification before proceeding

## Notes

- Always include source URLs for fact-checking
- Distinguish between facts and speculation in the summary
- For controversial topics, present multiple viewpoints
- Never fabricate information not present in sources

## Example Input

User: "Give me today's AI news summary"

## Example Output

Agent:
"I'll search for the latest AI news and generate a summary for you."
[Executes Steps 1-4]
"Here's your AI News Summary for April 21, 2026:

# AI News Summary (2026-04-21)

## Overview

Today's AI landscape sees significant advances in multimodal
reasoning and enterprise adoption...

[Full report follows]"

````

这个文件清晰地展示了一个 Skill 的完整结构。让我们逐一分析每个部分。

#### 元数据区(Metadata)

```markdown
## Metadata
- Name: news-fetch-summarize
- Description: Search for latest news on a given topic and generate
  a structured summary report
- Version: 1.2.0
- Tags: news, research, web-search, summary
- Author: auto-generated
- Created: 2026-04-15
- Last Updated: 2026-04-18
````

元数据区提供 Skill 的基本身份信息:

- **Name**:Skill 的唯一标识符,通常使用 kebab-case(短横线连接的小写字母)
- **Description**:一句话描述 Skill 的功能,用于搜索和展示
- **Version**:语义化版本号(主版本.次版本.修订号),方便追踪变更
- **Tags**:分类标签,便于管理和搜索
- **Author/.Created/Last Updated**:追溯信息

#### 触发条件区(Trigger Conditions)

```markdown
## Trigger Conditions

- User asks for "news" or "latest" about a topic
- User requests a "summary" of current events
- User mentions "what's happening" in a domain
```

触发条件定义了 Agent 应该在什么情况下「想到」使用这个 Skill。这就像是给 Agent 装了一个「雷达」——当用户的输入匹配这些条件时,Agent 就知道「啊,这个任务可以用 news-fetch-summarize 技能来处理」。

触发条件可以是:

- **关键词匹配**:用户输入中包含特定词汇
- **意图识别**:用户的请求属于某种意图类别
- **上下文匹配**:当前对话的上下文符合某种模式
- **工具链匹配**:完成任务需要调用特定的工具组合

#### 执行步骤区(Execution Steps)

这是 Skill 的核心部分,定义了完成任务的具体流程。每个步骤都包含:

- **步骤编号和名称**:清晰的流程结构
- **具体操作**:使用什么工具、调用什么命令、执行什么逻辑
- **参数说明**:输入参数的定义和格式
- **输出规范**:该步骤应该产生什么结果

```markdown
### Step 1: Search

Use `web_search` tool to find at least 5 relevant news articles.
Query format: `<topic> news <time_range>`
```

步骤之间可以是有顺序依赖的(Step 2 依赖 Step 1 的结果),也可以是并行的(多个步骤可以同时执行)。

#### 注意事项区(Notes / Error Handling)

```markdown
## Error Handling

- If web_search returns no results: expand query synonyms and retry
- If sources are all low-credibility: note this in the report
- If user topic is ambiguous: ask for clarification before proceeding

## Notes

- Always include source URLs for fact-checking
- Distinguish between facts and speculation in the summary
```

这个区域记录执行过程中的注意事项、边界情况、错误处理策略等。它帮助 Agent 在遇到意外情况时做出正确的判断,而不是盲目继续或报错退出。

#### 示例输入输出区(Example Input/Output)

```markdown
## Example Input

User: "Give me today's AI news summary"

## Example Output

Agent: "I'll search for the latest AI news..."
```

示例是 Skill 质量的关键指标。好的示例能让 Agent 更准确地理解用户的期望和输出的标准。示例越多、覆盖面越广,Skill 的泛化能力就越强。

### 2.3 技能文件存储位置:`~/.hermes/skills/`

所有 Skill 都存储在用户的 Hermes 配置目录下的 `skills/` 文件夹中:

```
~/.hermes/skills/
├── news-fetch-summarize/
│   └── SKILL.md
├── code-review-python/
│   └── SKILL.md
├── data-analysis-pipeline/
│   └── SKILL.md
├── docker-deploy/
│   └── SKILL.md
└── ...
```

这种目录结构的设计考虑到了未来的扩展性:

- 每个 Skill 有自己的目录,避免命名冲突
- 可以在目录中添加辅助文件(如模板、配置、测试数据)
- 便于打包、分享和版本控制

你可以直接操作这个目录:

```bash
# 查看所有技能
$ ls ~/.hermes/skills/

# 查看某个技能的内容
$ cat ~/.hermes/skills/news-fetch-summarize/SKILL.md

# 手动复制技能(分享给同事)
$ cp -r ~/.hermes/skills/news-fetch-summarize ./shared-skills/

# 手动安装技能(从同事那里收到的)
$ cp -r ./shared-skills/news-fetch-summarize ~/.hermes/skills/
```

### 2.4 技能的命名规范

好的命名让 Skill 更容易被发现和使用。Hermes 社区推荐使用以下命名规范:

**基本格式:**

```
<action>-<target>[-<context>]
```

例如:

- `search-news`:搜索新闻
- `analyze-sentiment`:分析情感
- `deploy-docker-prod`:部署 Docker 到生产环境
- `generate-report-weekly`:生成周报

**命名原则:**

1. **使用小写字母和短横线**:kebab-case 是标准,不要用空格或驼峰
2. **动作优先**:先说明「做什么」,再说明「对谁做」
3. **保持简洁**:名称不要超过 3-4 个词
4. **避免歧义**:`fix` 不如 `fix-bug` 或 `fix-lint-error` 清晰
5. **添加版本后缀**:如果同一技能有多个变体,用 `-v2`、`-lite`、`-advanced` 区分

**按分类命名(可选前缀):**

```
web-search-*        # 网络搜索相关
code-*              # 代码相关
data-*              # 数据分析相关
devops-*            # 运维部署相关
content-*           # 内容创作相关
research-*          # 研究分析相关
```

> **Tips**
>
> 虽然 Hermes 支持中文 Skill 名称(因为文件名只是标识符),但强烈建议使用英文命名。原因有三:1)便于在 Skills Hub 上分享;2)Agent 在匹配触发条件时,英文关键词更稳定;3)与社区其他用户交流时无障碍。

---

## 3. 自动技能创建:Hermes 的独门绝技

### 3.1 触发条件详解

自动技能创建是 Hermes 区别于其他所有 Agent 框架的标志性功能。理解它的触发条件,能帮助你更好地「引导」Agent 为你生成有用的 Skill。

根据 Hermes Atlas 官方文档,Skill 在检测到重复模式后自动生成,典型的触发场景包括:

**场景一:完成复杂任务(5+ 工具调用)且成功**

这是最主要的触发条件。当 Agent 完成一个涉及多次工具调用的复杂任务时,系统会判断这个工作流是否值得沉淀为 Skill。

为什么是「5+ 次工具调用」?这个数字是经过大量实验验证的「甜蜜点」:

- **少于 5 次**:流程太简单,不值得专门创建 Skill(直接每次手动做就行)
- **5 次以上**:说明任务有一定复杂度,包含多个步骤的协调,复用价值高
- **过多(20+ 次)**:可能是任务粒度太大,生成的 Skill 会过于臃肿

> **官方规则:5-Tool-Call 规则**
>
> Hermes 的自动技能创建有一个不成文的「5-tool-call 规则」:当 Agent 在一次任务中成功调用了 5 个或更多工具,且任务最终成功完成,系统就会评估这个工作流是否适合生成 Skill。这个规则确保了只有足够复杂、有复用价值的工作流才会被沉淀下来。

**场景二:遇到错误最终找到可行路径**

这是一个特别有价值的触发场景。当 Agent 在执行任务时遇到了错误,经过多轮尝试(可能包括你的纠正和引导)最终找到了正确的解决方案,这个「试错→纠正→成功」的完整路径会被记录为一个 Skill。

为什么这种 Skill 特别有价值?因为它包含了「避坑指南」——不仅告诉你「怎么做是对的」,还告诉你「哪些地方容易出错」。

**场景三:用户纠正了做法**

当你说「不对,应该这样...」或者「下次记得先...再...」时,Agent 会把你的纠正作为重要反馈。如果这种纠正在类似场景中出现过多次,Agent 会推断出一个通用规则,生成 Skill 来固化正确的做法。

```bash
User: 帮我部署这个服务
Agent: [尝试直接部署... 失败了]
User: 不对,应该先检查环境变量配置好了没有
Agent: [检查环境变量... 发现问题... 修复后部署成功]

[系统检测到:用户纠正了流程,生成了 Skill "deploy-with-env-check"]
```

**场景四:发现非显而易见的工作流**

有时候 Agent 会「创造性地」组合多个工具来完成任务,这种组合可能连开发者都没有预料到。当这种「非显而易见的工作流」被验证为有效时,系统会立即生成 Skill 来记录这个「发现」。

```bash
User: 帮我找出这个项目里最近引入 Bug 的提交
Agent: [没有直接的 "find-bug-commit" 工具...]
  → 调用 git log 获取提交历史
  → 调用 git diff 查看每个提交的变更
  → 调用 code_review 工具分析变更
  → 交叉对比 Bug 报告的时间线
  → 找到最可疑的提交

[系统检测到:创新工作流组合,生成了 Skill "git-bisect-intelligent"]
```

### 3.2 创建过程详解(从任务执行到 Skill 生成)

自动创建 Skill 不是一个「瞬间完成」的操作,而是一个分阶段的过程。让我们深入了解它的内部机制。

**阶段一:模式识别(Pattern Detection)**

在任务执行过程中,系统会实时监控工具调用序列、用户输入、Agent 输出之间的关系。它寻找的是「可重复的模式」:

```
工具调用序列: [web_search] → [file_read] → [code_execute] → [file_write]
用户输入模式: "帮我分析...并生成报告"
输出模式: Markdown 报告,包含图表

→ 检测到模式:搜索-读取-分析-输出报告
```

**阶段二:通用化抽象(Generalization)**

识别到模式后,系统需要判断这个模式是「通用」的还是「特定于本次输入」的。通用化的过程包括:

- 提取可变参数(如搜索关键词、文件路径、输出格式)
- 识别固定步骤(如「先搜索再分析」的顺序)
- 确定默认值(如默认搜索 5 条结果、默认输出 Markdown)

```
特定实例:
  用户说 "分析 Python 趋势" → 搜索 Python 新闻 → 生成 Python 报告

通用模式:
  用户说 "分析 <topic> 趋势" → 搜索 <topic> 新闻 → 生成 <topic> 报告

→ 可变参数: <topic>
→ 固定步骤: 搜索 → 分析 → 生成报告
→ 默认: 搜索 5 条,输出 Markdown
```

**阶段三:质量评估(Quality Assessment)**

不是所有识别出的模式都值得生成 Skill。系统会对候选 Skill 进行质量评分:

| 评估维度   | 权重 | 说明                                       |
| ---------- | ---- | ------------------------------------------ |
| 复用潜力   | 30%  | 这个模式在未来被用到的概率                 |
| 执行成功率 | 25%  | 按照此模式执行,任务成功的概率             |
| 复杂度适中 | 20%  | 不太简单(有沉淀价值)也不太复杂(可维护) |
| 用户满意度 | 15%  | 用户对这次任务结果的评价                   |
| 创新性     | 10%  | 是否发现了新的工具组合方式                 |

总分超过阈值的候选 Skill 才会进入下一阶段。

**阶段四:SKILL.md 生成**

通过质量评估后,系统会调用 LLM 生成标准的 SKILL.md 文件。生成过程使用专门的「Skill 生成提示模板」,确保输出符合规范。

生成的 SKILL.md 包含:

1. 从任务描述中提取的元数据
2. 从用户输入历史中归纳的触发条件
3. 从工具调用链中提取的执行步骤
4. 从对话中总结的注意事项和错误处理
5. 从实际输入输出中提取的示例

**阶段五:用户确认(可选)**

根据配置,Hermes 可能会在新 Skill 生成后征求你的确认:

```bash
Agent: 我刚刚为你生成了一个新的 Skill:news-fetch-summarize
       这个 Skill 可以帮你自动搜索新闻并生成摘要。

       触发条件:当你要求新闻摘要时
       执行步骤:搜索 → 过滤 → 提取 → 生成报告

       是否保存这个 Skill?(y/n/edit)

User: y
Agent: Skill 已保存到 ~/.hermes/skills/news-fetch-summarize/SKILL.md
```

你也可以配置为「自动保存,无需确认」,适合高级用户。

### 3.3 自动提炼的算法逻辑

自动提炼的核心算法可以概括为「频率 + 重要性 + 结构性」的三维评估模型。

**维度一:频率(Frequency)**

统计某个工作流在多长时间内被重复了多少次:

```python
frequency_score = min(repeat_count / threshold, 1.0)
# threshold 通常为 2-3 次
# 即同一个工作流重复 2-3 次,频率维度就达到满分
```

**维度二:重要性(Importance)**

评估工作流对用户的价值:

```python
importance_factors = {
    'tool_call_count': len(tool_calls),           # 工具调用越多越重要
    'user_explicit_save': user_said_remember,      # 用户明确说记住
    'task_success': task_completed_successfully,   # 任务成功完成
    'error_recovery': recovered_from_error,        # 从错误中恢复
    'time_saved': estimated_time_vs_manual         # 节省的时间
}
```

**维度三:结构性(Structure)**

评估工作流是否有清晰的步骤结构:

```python
structure_factors = {
    'has_clear_steps': has_stepwise_pattern,       # 有清晰的步骤序列
    'has_parameters': has_extractable_params,      # 有可提取的参数
    'has_error_handling': handles_edge_cases,      # 有错误处理
    'has_examples': has_io_examples                 # 有输入输出示例
}
```

综合评分 = 频率 × 0.3 + 重要性 × 0.4 + 结构性 × 0.3

评分超过 0.7 的候选 Skill 会被生成。

### 3.4 实际案例演示(5 个完整案例)

理论讲完了,让我们来看 5 个真实的自动 Skill 创建案例。

#### 案例 1:抓取新闻并总结

**第一次执行(无 Skill):**

```bash
User: 帮我搜一下今天 AI 领域有什么重要新闻,然后总结成一份报告
Agent: 好的,我来帮你搜索和总结。
  [调用 web_search: "AI news today"]
  [调用 web_search: "artificial intelligence latest"]
  [读取搜索结果]
  [调用 LLM 生成摘要]
  [调用 file_write 保存报告]
Agent: 已完成!报告已保存为 ai-news-20260421.md
```

**第二次执行(已自动生成 Skill):**

```bash
User: 今天有什么重要的科技新闻吗?
Agent: [检测到触发条件匹配 news-fetch-summarize Skill]
       好的,我来搜索今天的科技新闻并为你总结。
       [自动按照 Skill 步骤执行]
Agent: 已完成!报告已保存为 tech-news-20260421.md
```

**生成的 SKILL.md 核心内容:**

```markdown
## Trigger Conditions

- User asks for "news" about a topic
- User requests "summary" of current events
- User mentions "what's happening" in tech/AI

## Execution Steps

### Step 1: Search

Use web_search with queries: `<topic> news today`, `<topic> latest`

### Step 2: Summarize

Use LLM to generate structured summary with:

- Key headlines
- Source attribution
- Trend analysis
```

#### 案例 2:代码重构工作流

**背景:** 你正在对老项目进行代码重构,需要一系列标准化操作。

**第一次执行(手动引导):**

```bash
User: 帮我重构这个 Python 文件,把里面的函数提取到单独的模块里
Agent: 好的,我来分析文件结构。
  [调用 file_read 读取文件]
  [调用 code_execute 分析依赖关系]
  [调用 file_write 创建新模块]
  [调用 file_edit 修改原文件导入]
  [调用 code_execute 运行测试验证]
Agent: 重构完成!已通过测试。

User: 记住这个流程,以后重构都用这套方法
```

**后续执行(自动复用):**

```bash
User: 重构 utils.py,把 helper 函数拆出去
Agent: [加载 code-refactor-extract Skill]
       好的,按照标准重构流程处理:
       1. 分析文件结构...
       2. 提取函数到新模块...
       3. 更新导入...
       4. 运行测试...
Agent: 重构完成!所有测试通过。
```

#### 案例 3:数据分析报告生成

**背景:** 你每周都需要生成一份数据分析报告,流程固定。

**自动创建的 Skill:** `generate-weekly-data-report`

```markdown
## Execution Steps

### Step 1: Data Collection

- Read data files from `data/weekly/` directory
- Validate data format and completeness

### Step 2: Processing

- Clean missing values (fill with median for numeric, mode for categorical)
- Calculate key metrics: total, average, growth rate, MoM change
- Generate pivot tables by category

### Step 3: Visualization

- Create bar chart for top 10 categories
- Create line chart for trend over time
- Create pie chart for distribution

### Step 4: Report Generation

- Generate Markdown report with all charts embedded
- Include executive summary at top
- Include methodology appendix at bottom

### Step 5: Distribution

- Save to `reports/weekly/YYYY-MM-DD-report.md`
- If user requests, send via email (configured in USER.md)
```

#### 案例 4:多语言翻译校对

**背景:** 你的项目需要支持多语言,每次更新后都需要翻译和校对。

**自动创建的 Skill:** `translate-and-proofread`

```markdown
## Trigger Conditions

- User asks to "translate" content to multiple languages
- User mentions "localization" or "i18n"
- User requests "proofread" translated content

## Execution Steps

### Step 1: Extract Text

- Parse source files for translatable strings
- Identify format: JSON, YAML, PO, or inline

### Step 2: Translate

- For each target language, call translation API
- Preserve formatting placeholders ({name}, %d, etc.)
- Maintain context consistency across strings

### Step 3: Proofread

- Check for: length overflow (UI constraints), cultural appropriateness,
  technical term consistency
- Flag potential issues for human review

### Step 4: Update Files

- Write translated strings back to respective locale files
- Run validation to ensure no syntax errors
```

#### 案例 5:自动化部署脚本

**背景:** 你每次发布新版本都需要执行一系列部署操作。

**自动创建的 Skill:** `deploy-release-pipeline`

```markdown
## Execution Steps

### Step 1: Pre-deployment Checks

- Verify all tests pass (run test suite)
- Check version number is updated in all files
- Verify changelog is updated

### Step 2: Build

- Build production bundle
- Run build verification tests

### Step 3: Deploy

- Tag release in Git
- Deploy to staging environment
- Run smoke tests on staging
- Deploy to production (if staging passes)

### Step 4: Post-deployment

- Verify production health checks
- Monitor error rates for 10 minutes
- Send deployment notification to team
```

> **Tips**
>
> 自动创建的 Skill 不会立即完美。它的初始版本通常是一个「70 分」的解决方案——能工作,但还有优化空间。建议你在使用几次后,手动 review 一下 SKILL.md,根据实际情况调整触发条件、执行步骤和错误处理。这种「人机协作」的方式,能让 Skill 的质量从 70 分提升到 95 分。

---

## 4. 技能自我进化

### 4.1 进化触发机制

Skill 的自我进化不是随机发生的,而是由明确的触发机制驱动的。理解这些机制,能帮助你更好地「培养」你的 Skill。

**触发器一:执行偏差检测**

当 Skill 的实际执行路径与 SKILL.md 中定义的路径出现偏差时,进化被触发。

```
SKILL.md 定义:
  Step 1: web_search
  Step 2: file_read
  Step 3: code_execute

实际执行:
  Step 1: web_search → 返回 0 结果
  [偏差!] Agent 自动添加了 Step 1b: 扩展搜索关键词
  Step 2: file_read
  Step 3: code_execute

→ 触发进化: 在 SKILL.md 中添加错误处理分支
  "If web_search returns 0 results, expand query synonyms and retry"
```

**触发器二:用户反馈**

用户对 Skill 执行结果的评价(显式或隐式)会直接驱动进化。

显式反馈:

```bash
User: 这个报告格式不太对,应该用表格而不是列表
Agent: 收到反馈。正在更新 news-fetch-summarize Skill...
       已将默认输出格式从列表改为表格。
       Skill 已升级到 v1.2.0。
```

隐式反馈:

```bash
User: [看到 Skill 输出后,手动修改了 5 处]
Agent: [检测到用户修改了输出]
       [分析修改模式...]
       [发现用户偏好:更喜欢紧凑的表格、不喜欢冗余的解释]
       [更新 Skill 以匹配用户偏好]
```

**触发器三:成功率统计**

系统会持续跟踪每个 Skill 的成功率。当成功率低于阈值时,触发诊断和修复流程:

```
Skill: deploy-release-pipeline
成功率统计:
  最近 10 次执行: 7 成功, 3 失败
  失败原因:
    - 2 次: 测试未通过就尝试部署
    - 1 次: 版本号未更新

→ 触发进化:
  1. 在 Step 1 中添加更严格的测试检查
  2. 在 Step 2 中添加版本号自动验证
  3. 如果版本号未更新,提示用户或自动更新
```

**触发器四:环境变化**

当 Skill 依赖的外部环境发生变化时(如工具 API 更新、文件路径变更),Skill 会自动适应:

```
检测到: web_search 工具返回格式已变更
  旧格式: {"results": [{"title": "...", "url": "..."}]}
  新格式: {"items": [{"title": "...", "link": "..."}]}

→ 触发进化:
  更新 Skill 中所有引用 web_search 结果的步骤
  将 "url" 改为 "link"
  将 "results" 改为 "items"
```

### 4.2 版本管理与变更记录

每个 Skill 都有自己的版本历史,就像软件项目一样。

**版本号规则(语义化版本):**

```
主版本.次版本.修订号
  │      │       └─ 小修复、优化措辞
  │      └─ 新增功能、步骤调整
  └─ 不兼容的变更、架构重构

示例:
  v1.0.0 → 初始版本
  v1.1.0 → 新增了错误处理步骤
  v1.1.1 → 修正了输出格式的小问题
  v2.0.0 → 重构了整个执行流程
```

**变更记录(Changelog):**

每个 Skill 的 SKILL.md 中可以包含变更记录部分:

```markdown
## Changelog

### v1.2.0 (2026-04-18)

- 新增:支持按时间范围过滤(today/week/month)
- 优化:提升了搜索查询的相关性
- 修复:处理搜索返回 0 结果的情况

### v1.1.0 (2026-04-16)

- 新增:输出格式支持 bullet/table/json
- 优化:减少了不必要的工具调用

### v1.0.0 (2026-04-15)

- 初始版本
- 基础功能:搜索新闻并生成摘要
```

你可以随时查看 Skill 的版本历史:

```bash
User: 查看 news-fetch-summarize 的版本历史
Agent:
news-fetch-summarize 版本历史:
  v1.2.0 (2026-04-18) - 当前版本
    变更: +时间范围过滤, +相关性优化, +0结果处理
  v1.1.0 (2026-04-16)
    变更: +多种输出格式, ~性能优化
  v1.0.0 (2026-04-15)
    变更: 初始创建
```

### 4.3 用户反馈驱动的改进

用户反馈是 Skill 进化的最重要驱动力。Hermes 提供了多种方式让你提供反馈:

**方式一:执行后即时反馈**

```bash
Agent: [执行完 Skill 后]
       任务已完成。你对这次执行满意吗?
       1. 非常满意,不需要改
       2. 基本满意,有小问题
       3. 不满意,需要改进
       4. 完全错了

User: 2
Agent: 请告诉我需要改进的地方:

User: 摘要太长了,控制在 200 字以内
Agent: 收到!已更新 Skill:
       - 新增约束:摘要长度 ≤ 200 字
       - Skill 升级到 v1.2.1
```

**方式二:使用中随时纠正**

```bash
User: [看到 Skill 输出后]
       不对,数据来源不应该包括 Twitter

Agent: 收到纠正。正在更新 Skill...
       已添加过滤规则:排除社交媒体来源
       Skill 已更新。
```

**方式三:批量回顾与评分**

```bash
User: 回顾这周所有 Skill 的表现
Agent:
本周 Skill 执行统计:

news-fetch-summarize (执行 5 次):
  成功率: 100%
  平均满意度: 4.2/5
  改进建议: 用户 2 次提到希望加入情感分析

code-review-python (执行 3 次):
  成功率: 66%
  失败原因: 1 次因文件过大超时
  改进建议: 添加大文件分块处理

deploy-release (执行 1 次):
  成功率: 100%
  用户评分: 5/5

是否根据反馈自动优化这些 Skill?

User: 是
Agent: 正在优化...
✓ news-fetch-summarize v1.3.0: +情感分析步骤
✓ code-review-python v2.1.0: +大文件分块处理
✓ deploy-release: 无需优化
```

### 4.4 社区实测:1-2 周后重复任务成功率提升 30%+

技能自我进化的效果不是理论推测,而是经过社区大量用户验证的事实。

**社区实测数据(抽样 100 位活跃用户,使用 Hermes 2 周):**

| 指标             | 第 1 周   | 第 2 周  | 提升幅度 |
| ---------------- | --------- | -------- | -------- |
| 重复任务成功率   | 68%       | 91%      | +33.8%   |
| 平均交互轮次     | 8.2       | 4.7      | -42.7%   |
| 用户手动纠正次数 | 4.5/天    | 1.2/天   | -73.3%   |
| 任务完成时间     | 12.3 分钟 | 6.8 分钟 | -44.7%   |
| 用户满意度评分   | 3.6/5     | 4.5/5    | +25.0%   |

**数据解读:**

- **成功率提升 33.8%**:Skill 在不断进化中修复了错误路径,学会了处理边界情况
- **交互轮次减少 42.7%**:Agent 越来越「懂你」,需要的澄清和确认越来越少
- **手动纠正减少 73.3%**:这是最显著的改进——你不需要再反复教 Agent 了
- **任务时间缩短 44.7%**:效率的直接影响,每天节省大量时间

> **注意**
>
> 这些数据是社区用户的平均表现。个体差异很大——如果你主要做创新性、非重复的任务,Skill 的进化效果会不明显;如果你的工作包含大量重复性流程(如数据分析、报告生成、代码审查),Skill 系统的效果会非常显著。

### 4.5 如何加速技能进化

如果你想让 Skill 进化得更快、更好,可以采取以下策略:

**策略一:主动提供反馈**

不要等 Agent 问才反馈。每次使用 Skill 后,主动告诉它哪里好、哪里不好:

```bash
User: 刚才那个 Skill 执行得不错,但输出格式可以再紧凑一点
Agent: 收到反馈,已记录。
```

**策略二:给 Skill 打分**

建立给 Skill 打分的习惯。这会让系统更清楚你的偏好:

```bash
User: /skill rate news-fetch-summarize 4/5
Agent: 已记录评分。有什么具体建议吗?

User: 希望加上「争议性」标签,标出哪些新闻有争议
Agent: 好的,下次执行时会加入争议性分析。
```

**策略三:手动优化 SKILL.md**

自动进化是渐进式的,如果你想快速提升 Skill 质量,可以直接编辑 SKILL.md:

```bash
User: 编辑 news-fetch-summarize Skill
Agent: [打开编辑器,展示 SKILL.md 内容]

[用户直接修改 SKILL.md]

User: 保存
Agent: Skill 已更新到 v1.5.0(手动优化版)。
```

**策略四:使用 A/B 测试**

对同一个任务维护两个版本的 Skill,比较哪个更好:

```
~/.hermes/skills/
├── news-fetch-summarize/          # 版本 A:详细版
│   └── SKILL.md
├── news-fetch-summarize-brief/    # 版本 B:简洁版
│   └── SKILL.md
```

使用一周后比较两个版本的成功率、用户满意度,保留更好的那个。

---

## 5. 手动创建技能

### 5.1 为什么有时需要手动创建

虽然自动创建很方便,但在以下场景中,手动创建 Skill 是更好的选择:

**场景一:预先定义标准流程**

在项目开始之前,你就知道需要一套标准流程。比如新成员入职时的环境配置流程:

```markdown
## Onboard New Team Member

### Step 1: Access Setup

- Add to GitHub organization
- Grant VPN access
- Create Slack account

### Step 2: Environment

- Clone repo: [email protected]:company/project.git
- Run: ./scripts/setup-dev.sh
- Verify: make test

### Step 3: Documentation

- Read: docs/ARCHITECTURE.md
- Read: docs/CONTRIBUTING.md
- Shadow senior engineer for 2 days
```

这种流程在项目开始前就定义好了,自动创建无法预知。

**场景二:高度定制化的需求**

自动创建的 Skill 是「通用化」的,可能缺少你的特殊要求。比如你公司内部的代码规范非常严格,自动生成的 code-review Skill 不会包含这些规范。

**场景三:集成内部系统**

如果你的 Skill 需要调用公司内部 API(如 JIRA、Confluence、自研平台),自动创建无法知道这些内部系统的存在。

**场景四:从其他平台迁移**

你从 Claude Code 或 Cursor 迁移过来,想把已有的 Skill/规则迁移到 Hermes。

**场景五:追求极致优化**

自动创建的 Skill 是「70 分方案」。如果你想达到「95 分」,手动调整和优化是必要的。

### 5.2 手动创建的完整教程

手动创建一个 Skill 只需要三步:创建目录、编写 SKILL.md、验证测试。

**第一步:创建 Skill 目录**

```bash
# 确定 Skill 名称(使用 kebab-case)
SKILL_NAME="my-custom-skill"

# 创建目录
mkdir -p ~/.hermes/skills/$SKILL_NAME

# 创建 SKILL.md 文件
touch ~/.hermes/skills/$SKILL_NAME/SKILL.md
```

**第二步:编写 SKILL.md**

用你喜欢的编辑器打开文件,按照以下模板编写:

```markdown
# <Skill 名称>

## Metadata

- Name: <skill-name>
- Description: <一句话描述>
- Version: 1.0.0
- Tags: <tag1>, <tag2>
- Author: <你的名字>
- Created: <日期>

## Trigger Conditions

- <触发条件 1>
- <触发条件 2>

## Required Context

- <需要的上下文 1>
- <需要的上下文 2>

## Execution Steps

### Step 1: <步骤名称>

<具体描述>

### Step 2: <步骤名称>

<具体描述>

## Error Handling

- <错误情况 1>: <处理方式>
- <错误情况 2>: <处理方式>

## Notes

- <注意事项 1>
- <注意事项 2>

## Example Input

<User 输入示例>

## Example Output

<Agent 输出示例>
```

**第三步:验证 Skill**

```bash
# 验证 Skill 格式
$ hermes skills validate my-custom-skill

# 测试执行
$ hermes skills test my-custom-skill --input "测试输入"

# 查看 Skill 详情
$ hermes skills show my-custom-skill
```

### 5.3 Skill 文件模板大全

以下是 5 个不同场景的 Skill 模板,你可以直接复制修改。

#### 模板一:数据提取与转换

```markdown
# Extract and Transform Data

## Metadata

- Name: extract-transform-data
- Description: Extract data from source format and transform to target format
- Version: 1.0.0
- Tags: data, etl, transform

## Trigger Conditions

- User asks to "convert" data from one format to another
- User mentions "extract" data from files
- User needs data "transformed" or "reformatted"

## Required Context

- Source format: e.g., CSV, JSON, XML, Excel
- Target format: e.g., CSV, JSON, SQL, Markdown table
- Data location: file path or inline data

## Execution Steps

### Step 1: Analyze Source

- Read source data
- Identify schema, types, and constraints
- Check for missing/null values

### Step 2: Define Transformation

- Map source fields to target fields
- Apply type conversions
- Handle missing values (strategy: ask user or use default)

### Step 3: Execute Transformation

- Transform data according to mapping
- Validate output format
- Check for data integrity

### Step 4: Deliver Output

- Present transformed data
- Save to file if requested
- Provide transformation summary (rows processed, errors found)

## Error Handling

- Invalid source format: report issue and ask for correct file
- Schema mismatch: show differences and ask for mapping confirmation
- Data too large (>10MB): suggest chunking or streaming approach

## Example Input

User: "Convert this CSV to JSON, and rename 'Name' to 'username'"
[User provides CSV file]

## Example Output

Agent: "I've converted your CSV to JSON with the field mapping you specified.
Here's a preview of the first 3 records...
Full file saved as output.json"
```

#### 模板二:API 测试与验证

```markdown
# API Test and Validate

## Metadata

- Name: api-test-validate
- Description: Test API endpoints and validate responses
- Version: 1.0.0
- Tags: api, testing, http

## Trigger Conditions

- User asks to "test" an API endpoint
- User wants to "validate" API responses
- User mentions API "contract" or "spec"

## Required Context

- API endpoint URL
- HTTP method (GET/POST/PUT/DELETE)
- Expected request format (headers, body)
- Expected response format (status code, schema)

## Execution Steps

### Step 1: Prepare Request

- Construct HTTP request with proper headers
- Format request body according to content-type
- Set authentication if required

### Step 2: Send Request

- Execute HTTP call
- Record timing (latency)
- Capture full response

### Step 3: Validate Response

- Check status code matches expected
- Validate response body schema
- Check required fields present
- Verify data types correct

### Step 4: Report Results

- Show pass/fail for each validation
- Display response time
- Highlight any discrepancies
- Suggest fixes if validation fails

## Error Handling

- Connection error: check URL and network
- Timeout: report and suggest retry with longer timeout
- Authentication error: ask for credentials
- Unexpected status code: show response and ask if expected

## Example Input

User: "Test POST /api/users with {name: 'Alice', email: '[email protected]'}"

## Example Output

Agent: "API Test Results:
✓ Status: 201 Created (expected: 201)
✓ Response time: 145ms
✓ Schema: valid
✓ Required fields: all present
Response body: {id: 123, name: 'Alice', ...}"
```

#### 模板三:文档生成

```markdown
# Generate Documentation

## Metadata

- Name: generate-docs
- Description: Generate documentation from code or specifications
- Version: 1.0.0
- Tags: docs, documentation, code

## Trigger Conditions

- User asks to "document" code or API
- User wants to "generate docs" for a project
- User mentions "README", "API docs", or "documentation"

## Required Context

- Source files or specifications
- Documentation type: README, API docs, inline comments, wiki
- Target audience: developers, end users, API consumers

## Execution Steps

### Step 1: Analyze Source

- Read source files or specifications
- Identify: public APIs, key functions, data models, configuration
- Extract existing comments and docstrings

### Step 2: Structure Documentation

- Choose format based on type:
  - README: project overview, install, usage, contrib
  - API docs: endpoints, params, examples, errors
  - Inline: function docs, type hints, usage examples

### Step 3: Generate Content

- Write clear, concise explanations
- Include code examples
- Add diagrams where helpful (Mermaid)
- Follow style guide (if specified in USER.md)

### Step 4: Review and Format

- Check for completeness
- Ensure consistency
- Format according to standard (Markdown, reStructuredText, etc.)

### Step 5: Deliver

- Show preview
- Save to specified location
- Suggest next steps (review, publish)

## Error Handling

- Missing source files: ask user to provide
- Unclear scope: ask for clarification on what to document
- Unsupported language: document what we can, note limitations
```

#### 模板四:安全扫描与审计

```markdown
# Security Scan and Audit

## Metadata

- Name: security-scan-audit
- Description: Scan code or configuration for security issues
- Version: 1.0.0
- Tags: security, audit, scan

## Trigger Conditions

- User asks for "security scan" or "security audit"
- User mentions "vulnerability" or "security check"
- User wants to "review" code for security

## Required Context

- Target: code files, config files, or entire project
- Scope: quick scan vs deep audit
- Standards: OWASP, CIS, company policy

## Execution Steps

### Step 1: Discovery

- Identify target files and scope
- Check file types and technologies
- Note security-relevant files (auth, crypto, config)

### Step 2: Static Analysis

- Scan for common vulnerabilities:
  - Injection flaws (SQL, XSS, command)
  - Authentication issues
  - Sensitive data exposure
  - Insecure configurations
- Check dependency versions for known CVEs

### Step 3: Configuration Review

- Check for hardcoded secrets
- Review access controls
- Verify encryption settings
- Check logging and monitoring

### Step 4: Report Generation

- Categorize findings by severity (Critical/High/Medium/Low)
- Provide remediation guidance
- Include references (CVE, OWASP cheat sheets)
- Generate actionable task list

## Error Handling

- Binary/compiled files: note and skip
- Encrypted files: ask for decryption or skip
- Too many findings: prioritize top 10, summarize rest

## Notes

- Never expose real secrets in output
- Always suggest remediation, not just flag issues
- Distinguish between confirmed vulnerabilities and potential risks
```

#### 模板五:会议纪要与行动项提取

```markdown
# Meeting Notes and Action Items

## Metadata

- Name: meeting-notes-actions
- Description: Extract key points and action items from meeting transcripts
- Version: 1.0.0
- Tags: meeting, productivity, notes

## Trigger Conditions

- User provides meeting transcript or recording
- User asks to "summarize" a meeting
- User mentions "action items" or "meeting notes"

## Required Context

- Meeting transcript (text, audio, or video)
- Meeting context: topic, attendees, date (if available)

## Execution Steps

### Step 1: Parse Input

- Read transcript
- Identify speakers (if labeled)
- Segment by topic shifts

### Step 2: Extract Key Points

- Identify: decisions made, topics discussed, concerns raised
- Note any disagreements or unresolved items
- Capture important numbers, dates, deadlines

### Step 3: Extract Action Items

- Find tasks assigned to specific people
- Note deadlines and dependencies
- Identify blockers or risks mentioned

### Step 4: Format Output
```

# Meeting Notes: <Topic> (<Date>)

## Attendees

<list if provided>

## Key Discussion Points

1. <Point 1>
2. <Point 2>
...

## Decisions Made

- <Decision 1>
- <Decision 2>

## Action Items

| #   | Task   | Owner   | Due   | Status |
| --- | ------ | ------- | ----- | ------ |
| 1   | <task> | <owner> | <due> | Open   |

## Open Questions / Blockers

- <Item 1>

```

### Step 5: Deliver
- Present formatted notes
- Save if requested
- Suggest calendar invites for action item deadlines

## Error Handling
- Unclear transcript: ask for clarification on key sections
- Missing context: note assumptions made
- Too long: provide summary + offer full detail
```

### 5.4 编写高质量 Skill 的 10 个技巧

经过社区大量实践,我们总结出了编写高质量 Skill 的 10 个核心技巧:

**技巧 1:触发条件要具体**

差的触发条件:

```markdown
## Trigger Conditions

- User wants to do something with data
```

好的触发条件:

```markdown
## Trigger Conditions

- User asks to "convert", "transform", or "reformat" data
- User mentions changing file format (CSV, JSON, Excel, etc.)
- User provides data and asks for different output format
```

**技巧 2:步骤要原子化**

每个步骤只做一件事,步骤之间用明确的输入输出连接:

```markdown
### Step 1: Read Source

Input: file path or raw data
Output: parsed data structure

### Step 2: Validate

Input: parsed data
Output: validation report (pass/fail with details)

### Step 3: Transform

Input: validated data
Output: transformed data
```

**技巧 3:错误处理要全面**

思考所有可能的失败情况:

```markdown
## Error Handling

- File not found: ask user for correct path
- Permission denied: suggest checking file permissions
- Invalid format: show expected vs actual format
- Empty result: inform user and suggest alternatives
- Network timeout: retry with exponential backoff
```

**技巧 4:示例要真实**

使用真实的输入输出示例,不要用占位符:

```markdown
## Example Input

User: "Convert this CSV to JSON: name,age,city\nAlice,30,NYC"

## Example Output

Agent: "Here's the JSON:\n[\n {\"name\": \"Alice\", \"age\": 30, \"city\": \"NYC\"}\n]"
```

**技巧 5:版本号要管理**

从 v1.0.0 开始,每次有意义的更新都升级版本号。

**技巧 6:标签要准确**

使用社区共识的标签体系,便于搜索和分类:

```markdown
- Tags: web-search, data-analysis, python, api, documentation
```

**技巧 7:上下文要声明**

明确说明执行这个 Skill 需要什么前置信息:

```markdown
## Required Context

- API key for external service (stored in env var or MEMORY.md)
- Input data file path
- Target output directory
```

**技巧 8:输出格式要规范**

定义清晰的输出格式,让结果可预测:

```markdown
## Output Format

- Status: success / partial / failed
- Summary: one-line description
- Details: structured data
- Next steps: recommended actions
```

**技巧 9:考虑边界情况**

问自己:输入为空怎么办?数据量太大怎么办?网络断了怎么办?

**技巧 10:保持简洁**

SKILL.md 不是论文,不需要长篇大论。用简洁的语言描述清晰的步骤。如果 Skill 太复杂,考虑拆分成多个子 Skill。

### 5.5 测试与验证技能

创建 Skill 后,必须进行测试。Hermes 提供了多种测试方式:

**方式一:命令行测试**

```bash
# 验证 Skill 格式是否正确
$ hermes skills validate my-skill
✓ Metadata complete
✓ Trigger conditions defined
✓ Execution steps valid
✓ No syntax errors

# 模拟执行(不实际调用工具)
$ hermes skills test my-skill --dry-run
[显示模拟执行路径]

# 实际执行测试
$ hermes skills test my-skill --input "测试输入内容"
[实际执行并展示结果]
```

**方式二:在对话中测试**

```bash
User: /skill test my-skill "测试输入"
Agent: [执行 Skill 并展示详细日志]

Execution Log:
  Step 1: Read Source ✓
  Step 2: Validate ✓
  Step 3: Transform ✓
  Output: [结果]
```

**方式三:单元测试(高级)**

你可以为 Skill 编写测试用例:

```markdown
## Test Cases

### Test 1: Normal Case

Input: "Convert CSV with 3 columns to JSON"
Expected: Valid JSON array with 3 keys per object

### Test 2: Empty Input

Input: "Convert empty CSV to JSON"
Expected: Empty JSON array []

### Test 3: Invalid Format

Input: "Convert corrupted CSV to JSON"
Expected: Error message explaining the issue
```

```bash
$ hermes skills test my-skill --run-tests
Running 3 test cases...
✓ Test 1: PASS
✓ Test 2: PASS
✗ Test 3: FAIL
  Expected: Error message
  Got: Silent failure with empty output

  建议:在 Step 2 中添加格式验证,失败时返回明确错误。
```

---

## 6. 技能管理命令大全

### 6.1 hermes skills list —— 查看所有技能

这是最基础的技能管理命令,让你一览所有可用的 Skill。

```bash
$ hermes skills list

已安装技能 (23个):
═══════════════

内置技能 (Built-in):
  llm-wiki          v2.1.0    内置    LLM 概念速查百科
  code-review       v1.8.0    内置    通用代码审查
  git-workflow      v1.5.0    内置    Git 工作流辅助
  ...

官方技能 (Official):
  manim             v3.0.1    官方    数学动画生成
  security-audit    v2.2.0    官方    安全审计扫描
  ...

可信技能 (Trusted):
  gstack            v1.4.0    可信    技术栈管理与推荐
  openai-utils      v1.1.0    可信    OpenAI API 工具集
  ...

社区技能 (Community):
  news-fetch        v1.0.0    社区    新闻抓取摘要 (auto-generated)
  docker-deploy     v1.2.0    社区    Docker 部署流程 (auto-generated)
  ...

自动创建 (Auto-generated):
  data-clean-v2     v1.3.0    自动    数据清洗流程
  report-weekly     v2.0.0    自动    周报生成
  ...
```

**常用选项:**

```bash
# 只显示内置技能
$ hermes skills list --built-in

# 只显示自动创建的技能
$ hermes skills list --auto-generated

# 按标签过滤
$ hermes skills list --tag data-analysis

# 显示详细信息(包括描述和触发条件)
$ hermes skills list --verbose

# 显示技能大小和最后使用时间
$ hermes skills list --stats
```

### 6.2 hermes skills show <name> —— 查看技能详情

查看某个 Skill 的完整信息:

```bash
$ hermes skills show news-fetch-summarize

新闻抓取与摘要 (news-fetch-summarize)
═══════════════════════════════════════

元数据:
  名称: news-fetch-summarize
  版本: v1.2.0
  作者: auto-generated
  创建: 2026-04-15
  更新: 2026-04-18
  标签: news, research, web-search, summary

信任等级: 自动创建 (Auto-generated)

触发条件:
  1. User asks for "news" or "latest" about a topic
  2. User requests a "summary" of current events
  3. User mentions "what's happening" in a domain

执行步骤:
  Step 1: Search (web_search)
  Step 2: Filter and Rank
  Step 3: Extract Key Information
  Step 4: Generate Summary Report
  Step 5: Save (Optional)

使用统计:
  执行次数: 12
  成功率: 100%
  平均执行时间: 8.3s
  上次使用: 2小时前

文件位置:
  ~/.hermes/skills/news-fetch-summarize/SKILL.md

文件大小: 2.4 KB
```

### 6.3 hermes skills edit <name> —— 编辑技能

编辑 Skill 的内容:

```bash
# 使用默认编辑器打开
$ hermes skills edit news-fetch-summarize

# 使用指定编辑器
$ hermes skills edit news-fetch-summarize --editor vim

# 直接修改某个字段
$ hermes skills edit news-fetch-summarize --set-version 1.3.0
$ hermes skills edit news-fetch-summarize --add-tag "daily"
$ hermes skills edit news-fetch-summarize --remove-tag "experimental"
```

### 6.4 hermes skills delete <name> —— 删除技能

删除不再需要的 Skill:

```bash
# 普通删除(移动到回收站)
$ hermes skills delete old-skill
⚠️ 确定要删除技能 "old-skill" 吗?(y/N): y
已删除。如需恢复:hermes skills restore old-skill

# 强制删除(不确认,不回收)
$ hermes skills delete old-skill --force

# 批量删除
$ hermes skills delete --auto-generated --older-than 30d
# 删除所有 30 天前自动生成的技能
```

### 6.5 hermes skills export —— 导出技能

导出 Skill 以便分享或备份:

```bash
# 导出单个技能
$ hermes skills export news-fetch-summarize
已导出: ./news-fetch-summarize.tar.gz

# 导出多个技能
$ hermes skills export news-fetch-summarize docker-deploy
已导出: ./skills-bundle.tar.gz

# 导出所有技能
$ hermes skills export --all
已导出: ./all-skills-20260421.tar.gz

# 导出时包含使用统计
$ hermes skills export news-fetch-summarize --with-stats
```

导出文件的结构:

```
news-fetch-summarize.tar.gz
├── skill/
│   └── SKILL.md
├── meta/
│   └── manifest.json
└── stats/
    └── usage.json
```

### 6.6 hermes skills import —— 导入技能

导入从他人处获得或自己备份的 Skill:

```bash
# 导入单个技能
$ hermes skills import ./news-fetch-summarize.tar.gz
✓ 已导入: news-fetch-summarize v1.2.0

# 导入技能包
$ hermes skills import ./skills-bundle.tar.gz
✓ 已导入: news-fetch-summarize v1.2.0
✓ 已导入: docker-deploy v1.0.0

# 从 URL 导入
$ hermes skills import https://agentskills.io/skills/awesome-skill.tar.gz

# 导入前预览(不实际安装)
$ hermes skills import ./skill.tar.gz --dry-run
预览:
  名称: awesome-skill
  版本: 2.0.0
  作者: @community-dev
  信任等级: 社区
  触发条件: 3 条
  执行步骤: 5 步

  ⚠️ 警告: 此技能需要网络访问权限
  是否继续导入?

# 强制覆盖已有技能
$ hermes skills import ./skill.tar.gz --overwrite
```

### 6.7 其他实用命令

```bash
# 启用/禁用技能
$ hermes skills enable my-skill
$ hermes skills disable my-skill

# 复制技能(用于创建变体)
$ hermes skills copy news-fetch-summarize news-fetch-daily
# 复制为 news-fetch-daily,然后可以独立编辑

# 搜索技能
$ hermes skills search "docker"
找到 3 个匹配的技能:
  - docker-deploy
  - docker-compose-generator
  - docker-image-optimize

# 查看技能依赖
$ hermes skills deps my-skill
my-skill 依赖:
  - web_search (工具)
  - file_write (工具)
  - code-review (技能)

# 更新技能(从 Skills Hub 获取最新版本)
$ hermes skills update news-fetch-summarize
正在检查更新...
当前: v1.2.0
最新: v1.3.2
更新内容:
  - 新增: 支持按时间范围过滤
  - 修复: 0 搜索结果的处理
  - 优化: 摘要生成速度
是否更新?(y/N): y
✓ 已更新到 v1.3.2
```

---

## 7. Skills Hub 与社区技能

### 7.1 官方 Skills Hub(agentskills.io 兼容)

Skills Hub 是 Hermes 的官方技能市场,你可以把它理解为「Agent 的 App Store」。在这里,你可以发现、安装、分享 Skill,与全球开发者社区协作。

Skills Hub 的网址是 `agentskills.io`(兼容 Nous Research 官方标准)。它的核心功能包括:

1. **浏览与搜索**:按分类、标签、评分、下载量浏览技能
2. **一键安装**:找到合适的 Skill 后,一条命令即可安装到本地
3. **版本管理**:自动跟踪 Skill 的更新,一键升级
4. **评分与评论**:社区驱动的质量评估体系
5. **贡献与发布**:提交你自己的 Skill,分享给全世界

**访问 Skills Hub:**

```bash
# 在浏览器中打开
$ hermes skills hub
# 会自动打开浏览器,访问 agentskills.io

# 或者在命令行中浏览
$ hermes skills hub --browse

Skills Hub
══════════

热门分类:
  [1] 开发工具 (156 个技能)
  [2] 数据分析 (89 个技能)
  [3] 内容创作 (67 个技能)
  [4] DevOps (54 个技能)
  [5] 安全审计 (43 个技能)
  [6] 更多...

本周热门:
  1. ⭐ gstack v1.4.0 (可信) - 1,234 下载
  2. ⭐ openai-utils v1.1.0 (可信) - 987 下载
  3. ⭐ manim v3.0.1 (官方) - 876 下载
  4. ⭐ security-audit v2.2.0 (官方) - 765 下载
  5. ⭐ data-pipeline v2.1.0 (社区) - 654 下载

输入分类编号或技能名称搜索,或按 'q' 退出:
```

### 7.2 四个信任等级体系

Hermes 建立了一套严格的信任等级体系,帮助用户评估 Skill 的安全性和可靠性。根据 Hermes Atlas 官方文档,所有 Skill 分为四个信任等级:

| 等级 | 名称             | 标识 | 说明                     | 安全审计                 |
| ---- | ---------------- | ---- | ------------------------ | ------------------------ |
| 1    | 内置 (Built-in)  | 🏠   | 随 Hermes 发行版一同发布 | 完整安全审计             |
| 2    | 官方 (Official)  | ✅   | Nous Research 团队发布   | 完整安全审计             |
| 3    | 可信 (Trusted)   | 👤   | 经验证的社区成员发布     | 代码扫描 + 人工抽查      |
| 4    | 社区 (Community) | 🌐   | 任何社区成员发布         | 自动扫描(建议查看源码) |

**等级详解:**

**内置(Built-in)**

内置技能随 Hermes 安装包一起分发,是系统核心功能的一部分。它们经过了最严格的安全审计和性能测试,是最值得信赖的 Skill。

内置技能的特点是:

- 代码完全透明,可以在 GitHub 上查看源码
- 更新频率与 Hermes 主版本同步
- 不依赖外部网络服务(纯本地执行)
- 有专门的维护团队负责

**官方(Official)**

官方技能由 Nous Research 团队或官方认证的贡献者开发和维护。它们不随 Hermes 一起安装,需要通过 Skills Hub 单独安装,但同样经过了完整的安全审计。

官方技能的特点是:

- 有官方团队背书
- 定期更新和维护
- 文档完整、示例丰富
- 与 Hermes 核心功能深度集成

**可信(Trusted)**

可信技能来自经验证的社区成员。这些开发者已经通过了社区的身份验证和技能质量审核,他们发布的 Skill 被标记为「可信」。

可信技能的特点是:

- 开发者身份已验证
- 代码经过自动扫描(检测恶意代码、敏感信息泄露等)
- 人工抽查通过
- 有明确的维护承诺

**社区(Community)**

社区技能是 Skills Hub 上数量最多的类别。任何注册开发者都可以发布社区技能。这些技能经过了自动扫描,但没有人工审计。

社区技能的特点是:

- 数量庞大(截至 2026 年 4 月 19 日,Skills Hub 上共有 **643 个社区技能**)
- 创新速度快,覆盖领域广
- 质量参差不齐
- **建议安装前查看源码**

> **安全建议**
>
> 安装 Skill 时,优先选择高等级的 Skill。对于社区等级的 Skill,安装前务必查看 SKILL.md 的内容,确认:1)它不会执行危险的系统命令;2)不会向外部发送你的敏感数据;3)代码逻辑合理、无恶意行为。

### 7.3 浏览与搜索社区技能

Skills Hub 提供了多种方式帮助你找到需要的 Skill:

**按分类浏览:**

```bash
$ hermes skills hub --category development

开发工具类技能 (156个):
═══════════════════════

代码生成:
  - boilerplate-generator    生成项目脚手架
  - api-client-generator     根据 OpenAPI 生成客户端代码
  - test-case-generator      自动生成测试用例

代码审查:
  - code-review-python       Python 代码审查
  - code-review-javascript   JavaScript 代码审查
  - security-code-scan       安全漏洞扫描

调试辅助:
  - debug-trace              智能断点分析
  - log-analyzer             日志模式分析
  - performance-profile      性能瓶颈定位

...(共 156 个)
```

**按关键词搜索:**

```bash
$ hermes skills hub --search "docker"

搜索结果 (12个):
════════════════

  1. docker-deploy          v2.1.0  官方   Docker 部署流程
  2. docker-compose-gen     v1.3.0  可信   Docker Compose 生成器
  3. docker-image-optimize  v1.0.0  社区   Docker 镜像优化
  4. docker-security-scan   v1.2.0  可信   Docker 安全扫描
  5. k8s-manifest-gen       v1.5.0  社区   Kubernetes 清单生成
  ...

按评分排序 / 按下载量排序 / 按更新时间排序:
  [r] 评分  [d] 下载  [u] 更新  [q] 退出
```

**高级搜索:**

```bash
# 搜索特定信任等级的技能
$ hermes skills hub --search "data" --trust official,trusted

# 搜索特定标签
$ hermes skills hub --tag "python,api"

# 搜索最近更新的
$ hermes skills hub --updated-within 7d

# 组合条件
$ hermes skills hub --search "deploy" --trust official --min-rating 4.0
```

### 7.4 一键安装社区技能

找到心仪的 Skill 后,安装只需一条命令:

```bash
# 安装指定技能
$ hermes skills install manim

正在安装 manim v3.0.1 (官方)...
✓ 下载完成
✓ 安全扫描通过
✓ 依赖检查通过
✓ 安装完成

manim 已安装到 ~/.hermes/skills/manim/
触发条件: 用户要求生成数学动画或可视化
使用方式: 直接说 "帮我生成一个关于 <topic> 的动画"

# 安装特定版本
$ hermes skills install [email protected]

# 批量安装
$ hermes skills install manim gstack openai-utils

# 从 Skills Hub 页面安装
# 访问 agentskills.io,找到技能,复制安装命令
$ hermes skills install --from-hub skill-id-12345
```

### 7.5 技能质量评估方法

在 Skills Hub 上选择 Skill 时,可以参考以下质量指标:

**客观指标:**

| 指标     | 说明                | 优秀标准    |
| -------- | ------------------- | ----------- |
| 下载量   | 被安装的次数        | > 500       |
| 评分     | 用户打分(1-5星)   | > 4.2       |
| 版本号   | 当前版本            | v1.0.0 以上 |
| 更新频率 | 多久更新一次        | < 3 个月    |
| 信任等级 | 内置/官方/可信/社区 | 官方及以上  |

**主观评估(安装前查看 SKILL.md):**

1. **触发条件是否清晰**:好的 Skill 有明确、具体的触发条件
2. **执行步骤是否完整**:每个步骤都有清晰的描述和预期输出
3. **错误处理是否全面**:考虑了各种失败情况
4. **示例是否真实**:有真实的输入输出示例
5. **文档是否完整**:Metadata、Notes、Changelog 齐全

**社区口碑:**

```bash
# 查看技能评价
$ hermes skills reviews manim

用户评价 (23条):
════════════════

⭐⭐⭐⭐⭐ @alice-dev (2026-04-10)
"非常好用!生成数学动画的代码质量很高,
 直接就能运行。"

⭐⭐⭐⭐⭐ @bob-math (2026-04-08)
"官方出品就是不一样,文档详细,示例丰富。
 强烈推荐给需要数学可视化的朋友。"

⭐⭐⭐⭐ @charlie (2026-04-05)
"功能强大,但配置有点复杂。建议增加更多
 预设模板。"

⭐⭐⭐⭐⭐ @diana (2026-04-01)
"用它生成了毕业论文中的所有数学动画,
 导师很满意!"

平均评分: 4.7/5.0
```

### 7.6 推荐的 Top 20 社区技能

基于下载量、评分和社区反馈,以下是 Skills Hub 上最受欢迎的 20 个技能(数据截至 2026 年 4 月):

| 排名 | 技能名称           | 信任等级 | 下载量 | 评分 | 简介              |
| ---- | ------------------ | -------- | ------ | ---- | ----------------- |
| 1    | gstack             | 可信     | 3,456  | 4.8  | 技术栈管理与推荐  |
| 2    | openai-utils       | 可信     | 3,012  | 4.7  | OpenAI API 工具集 |
| 3    | manim              | 官方     | 2,876  | 4.9  | 数学动画生成      |
| 4    | security-audit     | 官方     | 2,543  | 4.8  | 安全审计扫描      |
| 5    | data-pipeline      | 社区     | 2,234  | 4.5  | 数据处理流水线    |
| 6    | docker-deploy      | 官方     | 2,102  | 4.6  | Docker 部署流程   |
| 7    | code-review-python | 内置     | 1,987  | 4.7  | Python 代码审查   |
| 8    | api-doc-generator  | 可信     | 1,876  | 4.4  | API 文档自动生成  |
| 9    | test-automation    | 社区     | 1,654  | 4.3  | 自动化测试生成    |
| 10   | git-workflow       | 内置     | 1,543  | 4.6  | Git 工作流辅助    |
| 11   | markdown-formatter | 社区     | 1,432  | 4.5  | Markdown 格式化   |
| 12   | sql-optimizer      | 可信     | 1,321  | 4.4  | SQL 查询优化      |
| 13   | regex-tester       | 社区     | 1,210  | 4.6  | 正则表达式测试    |
| 14   | cron-builder       | 社区     | 1,098  | 4.3  | Cron 表达式生成   |
| 15   | jwt-debugger       | 社区     | 987    | 4.5  | JWT Token 调试    |
| 16   | csv-analyzer       | 社区     | 876    | 4.2  | CSV 数据分析      |
| 17   | nginx-config       | 可信     | 765    | 4.4  | Nginx 配置生成    |
| 18   | ssl-checker        | 社区     | 654    | 4.3  | SSL 证书检查      |
| 19   | diff-viewer        | 社区     | 543    | 4.5  | 代码 Diff 可视化  |
| 20   | changelog-gen      | 社区     | 432    | 4.2  | 变更日志生成      |

### 7.7 推荐首装的 5 个技能

如果你是 Hermes 新用户,不知道从哪里开始,官方和社区强烈推荐以下 5 个「首装技能」:

#### 推荐 1:LLM Wiki(内置)

**信任等级:** 内置(Built-in)

**功能:** LLM 概念速查百科。当你遇到不熟悉的大模型概念(如 "RAG"、"LoRA"、"KV Cache")时,这个 Skill 会提供简明扼要但技术准确的解释。

**触发示例:**

```bash
User: 什么是 KV Cache?为什么大模型推理需要它?
Agent: [加载 LLM Wiki Skill]
       KV Cache(Key-Value Cache)是 Transformer 推理优化的核心机制...
       [提供结构化解释,包含公式、示意图、代码示例]
```

**为什么首装:** 作为 AI Agent 用户,你不可避免会遇到各种 AI/ML 术语。LLM Wiki 是你的随身技术词典,解释质量高于一般的搜索引擎结果。

**安装:** 已内置,无需安装

#### 推荐 2:Gstack(可信)

**信任等级:** 可信(Trusted)

**功能:** 技术栈管理与推荐。当你开始一个新项目时,这个 Skill 会根据你的需求推荐最合适的技术栈组合,并生成项目初始化配置。

**触发示例:**

```bash
User: 我要做一个实时聊天应用,推荐一套技术栈
Agent: [加载 Gstack Skill]
       基于你的需求(实时聊天),推荐技术栈:

       前端: React + Socket.io-client + Tailwind
       后端: Node.js + Express + Socket.io
       数据库: Redis (实时状态) + PostgreSQL (持久化)
       部署: Docker + Nginx

       [生成 package.json、Dockerfile、docker-compose.yml]
```

**为什么首装:** 技术选型是项目成功的关键。Gstack 整合了社区最佳实践,能帮你避免「选型陷阱」。

**安装:**

```bash
$ hermes skills install gstack
```

#### 推荐 3:OpenAI Utils(可信)

**信任等级:** 可信(Trusted)

**功能:** OpenAI API 工具集。提供一系列实用的 OpenAI API 辅助功能,包括 Token 计算、成本估算、批量请求管理、结果分析等。

**触发示例:**

```bash
User: 帮我估算一下,用这个 Prompt 处理 1000 条记录要多少钱?
Agent: [加载 OpenAI Utils Skill]
       正在计算...

       Prompt 长度: 1,250 Tokens
       预期输出长度: 500 Tokens
       单条成本: $0.0525 (GPT-4)
       1,000 条总成本: ~$52.50

       优化建议:
       - 使用 GPT-4o-mini 可将成本降至 $3.50
       - 批量处理(batch API)可再节省 50%
       - 预计最低成本: $1.75
```

**为什么首装:** 如果你使用商业 LLM API,成本控制是必修课。OpenAI Utils 帮你算清每一笔账。

**安装:**

```bash
$ hermes skills install openai-utils
```

#### 推荐 4:Manim(官方)

**信任等级:** 官方(Official)

**功能:** 数学动画生成。基于著名的 Manim 引擎(3Blue1Brown 使用的动画工具),帮你生成高质量的数学概念可视化动画。

**触发示例:**

```bash
User: 帮我生成一个解释梯度下降算法的动画
Agent: [加载 Manim Skill]
       好的,我来生成一个梯度下降的动画:

       场景设计:
       1. 展示损失函数的曲面
       2. 初始化随机起点
       3. 展示梯度计算过程
       4. 展示参数更新步骤
       5. 展示收敛过程

       [生成 Python 脚本]
       [运行 Manim 渲染]

       动画已生成:gradient_descent.mp4
       时长: 45 秒
       分辨率: 1080p
```

**为什么首装:** 无论是教学、演讲还是内容创作,可视化都是最强大的表达工具。Manim 让复杂的数学概念一目了然。

**安装:**

```bash
$ hermes skills install manim
```

#### 推荐 5:Security Audit(官方)

**信任等级:** 官方(Official)

**功能:** 安全审计扫描。自动扫描代码和配置文件中的安全漏洞,包括注入攻击、敏感信息泄露、不安全的依赖、配置错误等。

**触发示例:**

```bash
User: 扫描一下这个项目的安全问题
Agent: [加载 Security Audit Skill]
       正在扫描...

       🔍 扫描范围: 当前目录及所有子目录
       🔍 扫描类型: 代码安全 + 依赖安全 + 配置安全

       扫描结果:

       ⚠️ 中风险 (2个):
         1. config.py:15 - 硬编码的数据库密码
            建议: 使用环境变量
         2. requirements.txt - django 3.2 有已知 CVE-2026-XXXX
            建议: 升级到 django 4.2+

       ✅ 低风险 (5个): [详情...]
       ✅ 通过项: 23 项

       修复建议已生成: security-fixes.patch
```

**为什么首装:** 安全漏洞的代价可能是灾难性的。Security Audit 帮你把安全风险扼杀在萌芽状态。

**安装:**

```bash
$ hermes skills install security-audit
```

### 7.8 如何贡献自己的技能

如果你开发了一个好用的 Skill,欢迎贡献给社区!

**贡献流程:**

**第一步:准备 Skill**

确保你的 Skill 符合社区规范:

```bash
# 验证 Skill 格式
$ hermes skills validate my-awesome-skill

# 测试 Skill
$ hermes skills test my-awesome-skill

# 生成文档
$ hermes skills doc my-awesome-skill
```

**第二步:打包 Skill**

```bash
$ hermes skills export my-awesome-skill
已导出: ./my-awesome-skill.tar.gz
```

**第三步:提交到 Skills Hub**

```bash
$ hermes skills publish ./my-awesome-skill.tar.gz

发布新技能
══════════

技能名称: my-awesome-skill
版本: v1.0.0
作者: your-name
描述: <从 SKILL.md 读取>

选择信任等级申请:
  [1] 社区 (Community) - 自动发布
  [2] 可信 (Trusted) - 需要审核 (推荐)

请输入选择: 2

✓ 已提交审核申请
审核通常需要 1-3 个工作日
审核结果将发送到你的注册邮箱
```

**贡献规范:**

1. **代码安全**:不得包含恶意代码、后门、数据窃取逻辑
2. **隐私保护**:不得未经用户同意向外部发送数据
3. **文档完整**:必须包含完整的 Metadata、触发条件、执行步骤
4. **示例真实**:提供至少一个真实的输入输出示例
5. **开源许可**:建议使用 MIT 或 Apache 2.0 许可证

> **Tips**
>
> 贡献 Skill 不仅能帮助社区,也是展示你技术能力的好方式。很多开发者通过贡献高质量的 Skill 获得了工作机会和行业认可。Skills Hub 上的「可信」开发者名单,相当于一张技术能力的「公开证书」。

---

## 8. 跨平台技能复用

### 8.1 从 Claude Code 迁移技能

Claude Code 是 Anthropic 推出的 AI 编程助手,它也有一套「记忆」和「规则」系统。但正如 Hermes Atlas 官方文档所指出的:Claude Code 存储的是「事实」(如用户的偏好要点),而 Hermes 存储的是「程序」(可执行的工作流)。这种本质区别意味着迁移需要一些转换工作。

**Claude Code 的记忆格式:**

Claude Code 的记忆通常以简单的文本片段存储,记录用户的偏好:

```
# Claude Code Memory (示例)
- User prefers TypeScript over JavaScript
- User likes concise responses
- User's project uses Next.js and Prisma
- Always run tests before committing
```

这些「事实」类记忆可以迁移到 Hermes 的 USER.md 中,直接就能用。

**Claude Code 的规则格式:**

Claude Code 的 `.claude/rules/` 目录下的规则文件,更接近 Hermes 的 Skill:

```markdown
# .claude/rules/code-style.md

When writing code:

1. Use TypeScript with strict mode
2. Prefer functional programming patterns
3. Add JSDoc comments for all public APIs
4. Run eslint and prettier before finishing
```

**迁移方法:**

```bash
# 1. 找到 Claude Code 的规则目录
$ ls ~/.claude/rules/
code-style.md  testing.md  deploy.md

# 2. 转换为 Hermes Skill 格式
# 可以手动转换,或使用迁移工具
$ hermes skills migrate --from claude-code ~/.claude/rules/

正在迁移 Claude Code 规则...
✓ code-style.md → ~/.hermes/skills/code-style/SKILL.md
✓ testing.md → ~/.hermes/skills/testing/SKILL.md
⚠ deploy.md → 需要手动调整(包含 Claude 特有语法)

迁移完成!
请检查生成的 SKILL.md 文件,根据需要调整触发条件和执行步骤。
```

**迁移注意事项:**

1. **触发条件需要补充**:Claude Code 的规则是「全局生效」的,而 Hermes 的 Skill 需要明确的触发条件。迁移后要手动添加触发条件。
2. **工具调用需要转换**:Claude Code 的某些命令(如 `/commit`)在 Hermes 中对应不同的工具调用。
3. **测试验证**:迁移后务必测试每个 Skill,确保在 Hermes 环境下正常工作。

### 8.2 从 Cursor 迁移技能

Cursor 是另一款流行的 AI 编程编辑器,它的「Rules」和「Project Rules」功能与 Hermes 的 Skill 有一定对应关系。

**Cursor 规则格式:**

```markdown
# .cursorrules

# Code Style

- Use Python 3.11+ features
- Follow PEP8 with Black formatter
- Type hints are mandatory

# Project Structure

- All source code in src/
- Tests in tests/
- Documentation in docs/

# Testing

- Use pytest
- Minimum 80% coverage
- Mock external APIs in tests
```

**迁移方法:**

```bash
# 1. 读取 Cursor 规则文件
$ cat .cursorrules

# 2. 使用迁移工具
$ hermes skills migrate --from cursor .cursorrules

正在迁移 Cursor 规则...
分析规则文件...
识别到 3 个规则类别:
  - Code Style
  - Project Structure
  - Testing

生成 Skill:
  ✓ cursor-code-style → ~/.hermes/skills/cursor-code-style/SKILL.md
  ✓ cursor-project-structure → ~/.hermes/skills/cursor-project-structure/SKILL.md
  ✓ cursor-testing → ~/.hermes/skills/cursor-testing/SKILL.md

注意: Cursor 规则是全局的,已转换为触发条件较宽的 Skill。
建议根据实际使用场景调整触发条件。
```

### 8.3 从 OpenClaw 迁移技能

如果你是从 OpenClaw 迁移到 Hermes 的用户,技能迁移是最平滑的部分之一。因为 Hermes 本身就是从 OpenClaw 演进而来,两者的 Skill 格式高度兼容。

**OpenClaw 技能格式:**

```yaml
# .claude/skills/my-skill.yaml
name: my-skill
description: Do something useful
triggers:
  - pattern: "do something"
steps:
  - type: tool
    tool: web_search
    args:
      query: "{{input}}"
  - type: process
    action: summarize
```

**迁移方法:**

```bash
# OpenClaw 到 Hermes 的迁移非常简单
$ hermes skills migrate --from openclaw ~/.claude/skills/

正在迁移 OpenClaw 技能...
发现 5 个技能:
  ✓ my-skill → 自动转换格式
  ✓ data-fetch → 自动转换格式
  ✓ code-review → 自动转换格式
  ⚠ deploy-flow → 需要手动检查(使用了 OpenClaw 特有语法)
  ✓ test-gen → 自动转换格式

4/5 个技能自动迁移成功!
```

**OpenClaw → Hermes 格式映射:**

| OpenClaw                | Hermes                        | 说明               |
| ----------------------- | ----------------------------- | ------------------ |
| `.claude/skills/*.yaml` | `~/.hermes/skills/*/SKILL.md` | 路径不同           |
| `name`                  | `Metadata.Name`               | 相同               |
| `description`           | `Metadata.Description`        | 相同               |
| `triggers[].pattern`    | `Trigger Conditions`          | 合并为列表         |
| `steps[].type: tool`    | `Execution Steps`             | 转为 Markdown 描述 |
| `steps[].type: process` | `Execution Steps`             | 转为 Markdown 描述 |

### 8.4 技能格式兼容性说明

不同平台的技能系统虽然名称不同,但核心概念是相通的。以下是主要平台的兼容性对照:

| 平台        | 技能名称 | 文件格式                | 与 Hermes 兼容性           |
| ----------- | -------- | ----------------------- | -------------------------- |
| Hermes      | Skill    | Markdown (SKILL.md)     | 原生格式                   |
| Claude Code | Rule     | Markdown                | 高(需手动调整触发条件)   |
| Cursor      | Rule     | Markdown (.cursorrules) | 中(全局规则需转触发条件) |
| OpenClaw    | Skill    | YAML                    | 高(自动迁移)             |
| AutoGPT     | Skill    | JSON/Python             | 低(需重写)               |
| LangChain   | Chain    | Python                  | 低(概念不同)             |

**通用迁移原则:**

1. **提取核心逻辑**:无论原格式如何,提取「触发条件」和「执行步骤」这两个核心要素
2. **转换为 Markdown**:Hermes 使用 Markdown,这是最通用的文档格式
3. **补充触发条件**:其他平台的规则可能是全局的,需要为 Hermes 定义明确的触发条件
4. **测试验证**:迁移后必须测试,不同平台的工具名称和 API 可能有差异

### 8.5 迁移后的调整与优化

迁移完成后,建议进行以下优化:

**优化一:调整触发条件**

迁移后的 Skill 触发条件可能过于宽泛或过于狭窄。根据实际使用场景调整:

```markdown
# 迁移后(过于宽泛)

## Trigger Conditions

- User mentions code

# 优化后(更精确)

## Trigger Conditions

- User asks to "review" or "check" code
- User mentions "lint", "format", or "style" issues
- User requests "code quality" improvement
```

**优化二:补充错误处理**

其他平台的规则可能缺少错误处理,迁移后补充:

```markdown
## Error Handling

- If file not found: ask user for correct path
- If syntax error in code: show error location and suggest fix
- If tool execution timeout: suggest breaking task into smaller steps
```

**优化三:添加示例**

为迁移后的 Skill 添加输入输出示例,帮助 Agent 理解期望的行为:

```markdown
## Example Input

User: "Review this Python function for style issues"
[attached: function.py]

## Example Output

Agent: "I've reviewed function.py. Found 3 style issues: 1. Line 15: Missing type hints 2. Line 22: Line too long (120 chars) 3. Line 30: Unused import

       Suggested fixes: [shown inline]"
```

**优化四:版本标记**

在 Metadata 中标注这是迁移来的 Skill:

```markdown
## Metadata

- Name: my-migrated-skill
- Version: 1.0.0-hermes
- Original Platform: Cursor
- Migration Date: 2026-04-21
- Notes: Migrated from .cursorrules, adjusted trigger conditions
```

---

## 9. 出厂预装技能详解

### 9.1 74 个内置技能分类总览

Hermes 出厂预装了 **74 个内置技能**(Built-in Skills),覆盖开发、运维、内容创作、数据分析等核心领域。这些技能随 Hermes 一起安装,无需额外下载,开箱即用。

**按分类统计:**

| 分类       | 数量 | 代表技能                                      |
| ---------- | ---- | --------------------------------------------- |
| 代码开发   | 18   | code-review, debug-helper, refactor-suggest   |
| Web 与搜索 | 12   | web-search, url-fetch, rss-reader             |
| 文件与数据 | 10   | file-organize, csv-process, json-transform    |
| 系统与运维 | 9    | system-info, process-monitor, log-viewer      |
| 内容创作   | 8    | markdown-format, doc-generate, summarize      |
| 通信与消息 | 7    | email-draft, message-compose, notification    |
| 安全与审计 | 5    | security-check, secret-scan, permission-audit |
| 媒体与内容 | 3    | image-describe, audio-transcribe              |
| 金融与分析 | 2    | calculator, trend-analyze                     |

### 9.2 44 个官方可选技能介绍

除了 74 个内置技能,Hermes 还提供了 **44 个官方可选技能**(Official Skills)。这些技能由 Nous Research 团队维护,质量与内置技能相当,但因为体积较大或依赖特定环境,没有默认安装。

**主要类别:**

- **开发工具类(15个)**:如 manim(数学动画)、jupyter-helper(Notebook 辅助)、database-query(数据库查询)
- **DevOps 类(10个)**:如 docker-compose-gen、kubernetes-deploy、terraform-check
- **数据分析类(8个)**:如 pandas-helper、matplotlib-guide、sql-optimizer
- **内容创作类(6个)**:如 slide-generator、chart-creator、diagram-maker
- **安全类(5个)**:如 penetration-test、compliance-check、incident-response

安装官方可选技能:

```bash
# 查看所有官方可选技能
$ hermes skills list --official --optional

# 安装单个
$ hermes skills install manim

# 按分类批量安装
$ hermes skills install --category devops --official
```

### 9.3 重点技能详解(15 个最实用的)

以下是从 74 个内置技能 + 44 个官方可选技能中精选的 15 个最实用的技能,按使用频率排序:

#### 1. LLM Wiki(内置)

已在前面的「推荐首装 5 个技能」中详细介绍。作为 AI 领域用户的随身词典,它解释概念的质量远超一般搜索结果。

#### 2. Code Review(内置)

自动代码审查助手,支持 Python、JavaScript、Go、Rust 等主流语言。

```bash
User: 帮我审查一下这个函数
Agent: [加载 code-review Skill]
       审查结果:
       ✅ 通过项:
         - 类型注解完整
         - 错误处理到位
         - 命名规范

       ⚠️ 建议改进:
         1. 函数过长(85行),建议拆分为3个小函数
         2. 缺少单元测试
         3. 循环中使用了多次数据库查询,建议用 JOIN 优化

       🔴 严重问题:
         - 第45行: SQL 拼接存在注入风险,请使用参数化查询
```

#### 3. Web Search(内置)

智能网络搜索,不仅返回结果,还会自动筛选、排序、摘要。

```bash
User: 搜索一下最新的 React 19 特性
Agent: [加载 web-search Skill]
       找到 8 条相关结果,筛选出 5 条高质量来源:

       1. React 官方博客 (react.dev)
          - React Compiler 自动优化
          - Actions 简化表单处理
          - 新 Hook: use() 和 useOptimistic()

       2. Dan Abramov 的推文线程
          ...
```

#### 4. Git Workflow(内置)

Git 操作助手,帮你生成提交信息、建议分支策略、解决合并冲突。

```bash
User: 帮我生成提交信息
Agent: [分析变更...]
       建议提交信息:

       feat(auth): add JWT token refresh mechanism

       - Implement automatic token refresh before expiry
       - Add retry logic for 401 responses
       - Update tests for new auth flow

       类型: feat (新功能)
       范围: auth (认证模块)
       符合 Conventional Commits 规范 ✅
```

#### 5. File Organize(内置)

智能文件整理,根据内容自动分类、重命名、归档文件。

```bash
User: 整理一下 Downloads 文件夹
Agent: [扫描文件...]
       发现 234 个文件,分类如下:

       图片 (45个) → 移动到 ~/Pictures/Downloads/
       文档 (67个) → 移动到 ~/Documents/Downloads/
       安装包 (23个) → 移动到 ~/Downloads/Installers/
       压缩包 (34个) → 移动到 ~/Downloads/Archives/
       其他 (65个) → 保持原位

       是否执行整理?(y/N)
```

#### 6. Debug Helper(内置)

调试助手,分析错误日志、建议修复方案、生成调试脚本。

````bash
User: 这个报错是什么意思?
[粘贴 Traceback]

Agent: [加载 debug-helper Skill]
       错误分析:

       错误类型: AttributeError
       原因: 尝试访问 None 对象的属性
       位置: app.py:156

       根本原因推断:
       第 142 行的数据库查询可能返回了 None,
       但第 156 行没有检查就直接使用了结果。

       修复建议:
       ```python
       user = db.query(User).filter(...).first()
       if user is None:           # 添加空值检查
           raise UserNotFoundError(...)
       print(user.name)           # 现在安全了
       ```
````

#### 7. Markdown Format(内置)

Markdown 格式化助手,统一文档风格、修复格式错误、生成目录。

```bash
User: 格式化这个 Markdown 文件
Agent: [加载 markdown-format Skill]
       格式化完成:

       - 统一标题层级(修复了跳跃的 H1→H3)
       - 修复了 12 个链接格式错误
       - 代码块添加了语言标注
       - 表格列对齐
       - 生成了目录(TOC)
       - 删除了冗余空行

       变更统计: +45行, -23行, 修改 12 处
```

#### 8. Summarize(内置)

智能摘要生成,支持文章、会议记录、代码变更、邮件线程等。

```bash
User: 总结一下这篇长文章
[粘贴 5000 字文章]

Agent: [加载 summarize Skill]
       摘要(200字):

       本文探讨了 AI Agent 的记忆系统设计理念...
       [关键结论 1]
       [关键结论 2]
       [关键结论 3]

       详细摘要(800字):
       [按章节展开...]

       关键引用:
       - "..."
       - "..."
```

#### 9. API Doc Generator(官方可选)

从代码自动生成 API 文档,支持 OpenAPI/Swagger 格式。

```bash
User: 给这个 FastAPI 项目生成 API 文档
Agent: [加载 api-doc-generator Skill]
       扫描到 12 个路由...
       生成 OpenAPI 3.0 规范...

       输出:
       - openapi.json (机器可读)
       - openapi.html (交互式文档)

       文档包含:
       - 所有端点及其参数
       - 请求/响应示例
       - 认证说明
       - 错误码列表
```

#### 10. Data Pipeline(官方可选)

数据处理流水线,连接数据源、清洗、转换、输出。

```bash
User: 从 CSV 读取数据,清洗后存入 PostgreSQL
Agent: [加载 data-pipeline Skill]
       设计流水线:

       Source: CSV file
         ↓
       Transform:
         - Parse dates to ISO format
         - Normalize text encoding (UTF-8)
         - Remove duplicate rows (by ID)
         - Fill missing values (median for numeric)
         ↓
       Target: PostgreSQL table
         - Create table if not exists
         - Batch insert (1000 rows/batch)
         - Verify row count

       执行结果:
       ✓ 读取: 50,000 行
       ✓ 清洗: 删除了 234 个重复项, 填充了 1,200 个空值
       ✓ 写入: 49,766 行成功存入 PostgreSQL
```

#### 11. Test Automation(官方可选)

自动生成测试用例,覆盖边界条件、错误路径、性能测试。

````bash
User: 给这个函数生成测试
Agent: [加载 test-automation Skill]
       分析函数签名和逻辑...
       生成测试用例:

       ```python
       def test_function_normal_case():
           """正常输入"""
           ...

       def test_function_empty_input():
           """空输入边界"""
           ...

       def test_function_invalid_type():
           """错误类型"""
           ...

       def test_function_large_input():
           """大数据量性能"""
           ...

       def test_function_concurrent():
           """并发安全"""
           ...
       ```

       覆盖率预估: 87%
````

#### 12. Docker Deploy(官方可选)

Docker 部署助手,生成 Dockerfile、docker-compose、部署脚本。

```bash
User: 给这个 Python 项目生成 Docker 配置
Agent: [加载 docker-deploy Skill]
       分析项目结构...
       检测到: FastAPI + PostgreSQL + Redis

       生成配置:
       - Dockerfile (多阶段构建, 优化镜像大小)
       - docker-compose.yml (开发环境)
       - docker-compose.prod.yml (生产环境)
       - .dockerignore
       - deploy.sh (一键部署脚本)

       镜像大小预估: 145 MB (Alpine 基础镜像)
       启动时间预估: 3-5 秒
```

#### 13. Nginx Config(官方可选)

Nginx 配置生成器,支持反向代理、负载均衡、SSL、缓存。

````bash
User: 生成一个 Nginx 配置,反向代理到 3 个后端服务
Agent: [加载 nginx-config Skill]
       生成配置:

       ```nginx
       upstream backend {
           least_conn;
           server 127.0.0.1:8001;
           server 127.0.0.1:8002;
           server 127.0.0.1:8003;
       }

       server {
           listen 443 ssl http2;
           server_name api.example.com;

           ssl_certificate /etc/nginx/ssl/cert.pem;
           ssl_certificate_key /etc/nginx/ssl/key.pem;

           location / {
               proxy_pass http://backend;
               proxy_set_header Host $host;
               proxy_cache api_cache;
           }
       }
       ```

       包含: SSL, HTTP/2, 负载均衡, 缓存, 健康检查
````

#### 14. SQL Optimizer(官方可选)

SQL 查询优化,分析执行计划、建议索引、重写查询。

```bash
User: 优化这个查询
[粘贴慢查询]

Agent: [加载 sql-optimizer Skill]
       查询分析:

       当前执行计划:
       - 全表扫描: users (50万行)
       - 全表扫描: orders (200万行)
       - 执行时间: 3.2s

       优化建议:
       1. 添加复合索引: CREATE INDEX idx_orders_user_date
          ON orders(user_id, created_at);
       2. 重写查询,使用 JOIN 替代子查询
       3. 添加 LIMIT 分页

       优化后预估: 执行时间 < 50ms
```

#### 15. Changelog Generator(社区)

从 Git 提交历史自动生成变更日志。

```bash
User: 生成 v2.0.0 的变更日志
Agent: [加载 changelog-gen Skill]
       分析 Git 历史 (v1.9.0 → v2.0.0)...

       发现 156 个提交,分类如下:

       ## Features
       - 新增实时协作功能
       - 支持 Markdown 扩展语法
       - 添加暗色模式

       ## Bug Fixes
       - 修复文件保存时的并发冲突
       - 修复移动端布局问题

       ## Performance
       - 首屏加载时间减少 40%
       - 大数据文件编辑优化

       ## Breaking Changes
       - API v1 已弃用,请迁移到 v2
```

### 9.4 技能组合推荐(按使用场景)

单一 Skill 的能力有限,但 Skill 组合可以产生强大的协同效应。以下是针对常见场景的推荐组合:

**场景一:Web 开发**

```
gstack (技术栈推荐)
  → docker-deploy (生成容器配置)
  → api-doc-generator (生成 API 文档)
  → code-review (代码审查)
  → test-automation (生成测试)
  → security-audit (安全检查)
```

**场景二:数据分析**

```
data-pipeline (数据处理)
  → sql-optimizer (查询优化)
  → csv-analyzer (CSV 分析)
  → chart-creator (可视化)
  → summarize (生成报告摘要)
```

**场景三:内容创作**

```
web-search (资料搜集)
  → summarize (内容摘要)
  → markdown-format (格式化)
  → slide-generator (生成 PPT)
  → manim (数学动画,如需要)
```

**场景四:运维部署**

```
security-audit (安全扫描)
  → docker-deploy (容器化)
  → nginx-config (反向代理)
  → ssl-checker (证书检查)
  → log-analyzer (日志分析)
```

**场景五:学习研究**

```
llm-wiki (概念查询)
  → web-search (深度资料)
  → summarize (整理笔记)
  → flashcard-gen (生成记忆卡片)
```

---

## 10. 高阶技能开发

### 10.1 复合技能(一个技能调用多个子技能)

复合技能(Composite Skill)是指一个 Skill 在执行过程中调用其他 Skill,形成「技能链」。这就像乐高积木——单个积木功能简单,但组合起来可以搭出复杂结构。

**复合技能的结构:**

```markdown
# Fullstack Project Setup

## Metadata

- Name: fullstack-project-setup
- Description: Complete setup for a new fullstack project
- Version: 1.0.0

## Trigger Conditions

- User says "create a new project" or "setup project"
- User mentions "fullstack" + "scaffold" or "template"

## Execution Steps

### Step 1: Tech Stack Selection

**Call Skill**: gstack
Input: user requirements
Output: recommended tech stack

### Step 2: Backend Setup

**Call Skill**: boilerplate-generator
Input: backend framework from Step 1
Output: backend project scaffold

### Step 3: Frontend Setup

**Call Skill**: boilerplate-generator
Input: frontend framework from Step 1
Output: frontend project scaffold

### Step 4: Docker Configuration

**Call Skill**: docker-deploy
Input: project structure from Steps 2-3
Output: Dockerfile + docker-compose.yml

### Step 5: API Documentation

**Call Skill**: api-doc-generator
Input: backend code from Step 2
Output: OpenAPI specification

### Step 6: Initial Tests

**Call Skill**: test-automation
Input: generated code
Output: initial test suite

### Step 7: Security Scan

**Call Skill**: security-audit
Input: entire project
Output: security report + fixes
```

**复合技能的优势:**

1. **模块化**:每个子 Skill 独立维护,复用性高
2. **可替换**:如果某个子 Skill 有更好的替代品,只需替换调用
3. **可配置**:用户可以选择跳过某些步骤

### 10.2 条件分支技能

条件分支技能根据输入或环境的不同,执行不同的流程。

```markdown
# Smart Deploy

## Execution Steps

### Step 1: Detect Environment

Check current environment:

- If `.github/workflows/` exists → GitHub Actions
- If `.gitlab-ci.yml` exists → GitLab CI
- If `Jenkinsfile` exists → Jenkins
- If none → ask user

### Step 2: Branch by Environment

**If GitHub Actions:**

- Call Skill: github-actions-deploy

**If GitLab CI:**

- Call Skill: gitlab-ci-deploy

**If Jenkins:**

- Call Skill: jenkins-deploy

**If Manual:**

- Generate deployment script
- Provide step-by-step instructions

### Step 3: Verify Deployment

Regardless of path:

- Check service health
- Run smoke tests
- Monitor for 5 minutes
```

### 10.3 带参数的技能模板

参数化 Skill 让用户可以在执行时传入不同的值,提高灵活性。

```markdown
# Generate API Client

## Metadata

- Name: api-client-generator

## Parameters

- spec_url: URL or path to OpenAPI specification
  type: string
  required: true
- language: Target programming language
  type: string
  default: "python"
  options: [python, typescript, go, java, rust]
- output_dir: Directory to save generated code
  type: string
  default: "./generated-client/"
- include_tests: Whether to generate test stubs
  type: boolean
  default: true

## Execution Steps

### Step 1: Parse Spec

Read OpenAPI spec from {{spec_url}}

### Step 2: Generate Client

Generate {{language}} client code
Save to {{output_dir}}

### Step 3: Generate Tests (if {{include_tests}})

If include_tests is true:
Generate test stubs for each endpoint

## Example Input

User: "Generate a TypeScript API client from openapi.json,
save to ./client/, include tests"

Agent: [解析参数]
spec_url: "openapi.json"
language: "typescript"
output_dir: "./client/"
include_tests: true
[执行生成]
```

参数传递方式:

```bash
# 自然语言方式
User: 生成 Python 客户端,不要测试
Agent: [自动解析参数]

# 显式参数方式
User: /skill run api-client-generator --language=go --include-tests=false

# 交互式方式
User: /skill run api-client-generator
Agent: 请提供以下参数:
       1. OpenAPI spec 路径: [用户输入]
       2. 目标语言: [1]Python [2]TypeScript [3]Go ...
       3. 输出目录: [用户输入]
```

### 10.4 技能的错误处理

健壮的错误处理是高质量 Skill 的标志。

**错误处理策略模板:**

```markdown
## Error Handling

### Network Errors

- **Timeout**: Retry with exponential backoff (max 3 retries)
- **Connection Refused**: Check service status, suggest alternatives
- **DNS Error**: Verify URL, suggest checking network

### Data Errors

- **Invalid Format**: Show expected format, provide converter
- **Missing Required Field**: List missing fields, ask user to provide
- **Data Too Large**: Suggest pagination or streaming

### Permission Errors

- **Access Denied**: Ask for credentials or elevated permissions
- **Rate Limited**: Wait and retry, suggest upgrading plan
- **Quota Exceeded**: Inform user, suggest alternatives

### Tool Errors

- **Tool Not Found**: Check installation, provide setup guide
- **Tool Version Mismatch**: Detect version, suggest update/downgrade
- **Tool Execution Failed**: Capture error output, suggest fixes

### Fallback Strategy

If all else fails:

1. Report what was attempted
2. Explain why it failed
3. Provide manual workaround
4. Offer to create a simpler version
```

### 10.5 技能的性能优化

Skill 的执行效率直接影响用户体验。以下是优化技巧:

**技巧一:减少不必要的工具调用**

```markdown
# 优化前(4次调用)

Step 1: web_search → 获取结果
Step 2: file_read → 读取模板
Step 3: web_search → 获取更多信息
Step 4: file_write → 写入输出

# 优化后(2次调用)

Step 1: web_search ×2 (并行) → 获取所有信息
Step 2: file_write → 直接写入(模板内联到 Skill 中)
```

**技巧二:缓存中间结果**

```markdown
## Notes

- Cache API responses for 5 minutes to avoid repeated calls
- Store intermediate results in MEMORY.md if reusable
```

**技巧三:批量处理**

```markdown
# 优化前(逐条处理)

For each item:
Call API
Process result

# 优化后(批量处理)

Batch items into groups of 100
Call API with batch
Process results
```

**技巧四:异步执行**

```markdown
## Execution Steps

### Step 1: Parallel Data Fetch

- Fetch data from Source A (async)
- Fetch data from Source B (async)
- Wait for both to complete

### Step 2: Merge and Process

- Combine results
- Process merged data
```

**技巧五:提前退出**

```markdown
## Execution Steps

### Step 1: Validate Input

If input is invalid:
→ Exit early with clear error message
→ Don't proceed to expensive steps

### Step 2: Check Cache

If result already exists and is fresh:
→ Return cached result
→ Skip computation
```

---

## 11. 技能系统最佳实践

### 11.1 技能命名规范

统一的命名规范让 Skill 更容易被发现和管理。

**命名结构:**

```
[domain]-[action]-[target]

示例:
  web-search-news        # Web 领域 - 搜索 - 新闻
  code-review-python     # 代码领域 - 审查 - Python
  data-clean-csv         # 数据领域 - 清洗 - CSV
  deploy-docker-prod     # 部署领域 - Docker - 生产环境
```

**命名原则:**

1. 全部小写,用短横线连接
2. 动作动词用原形(search, review, clean, deploy)
3. 避免缩写(用 docker 而非 dk,用 kubernetes 而非 k8s)
4. 版本用目录或后缀区分(`my-skill-v2/` 或 `my-skill-advanced/`)

### 11.2 技能分类管理

当 Skill 数量超过 20 个时,分类管理变得重要。

**目录结构建议:**

```
~/.hermes/skills/
├── _active/              # 当前常用的(软链接)
├── _archive/             # 归档的、不常用的
├── development/          # 开发相关
│   ├── code-review-python/
│   ├── refactor-helper/
│   └── test-automation/
├── devops/               # 运维相关
│   ├── docker-deploy/
│   ├── nginx-config/
│   └── ssl-checker/
├── content/              # 内容创作
│   ├── summarize/
│   ├── markdown-format/
│   └── doc-generate/
└── data/                 # 数据分析
    ├── csv-analyzer/
    ├── sql-optimizer/
    └── data-pipeline/
```

**分类标签体系:**

```markdown
## Metadata

- Tags: development, python, web, devops, data-analysis,
  content-creation, security, automation
```

常用标签:

| 标签             | 用途     |
| ---------------- | -------- |
| development      | 软件开发 |
| devops           | 运维部署 |
| data-analysis    | 数据分析 |
| web-search       | 网络搜索 |
| content-creation | 内容创作 |
| security         | 安全审计 |
| automation       | 自动化   |
| testing          | 测试     |
| documentation    | 文档     |
| communication    | 通信消息 |

### 11.3 定期审计与清理

Skill 会不断积累,定期审计能保持系统高效。

**月度审计清单:**

```bash
# 1. 查看使用统计
$ hermes skills list --stats

# 2. 找出从未使用的 Skill
$ hermes skills list --unused --older-than 30d

# 3. 找出重复功能的 Skill
$ hermes skills list --duplicates

# 4. 检查过时的 Skill(很久没有更新)
$ hermes skills list --outdated

# 5. 清理
$ hermes skills archive unused-skill    # 归档(不删除)
$ hermes skills delete --unused         # 删除未使用的
```

**审计后的处理:**

- **高频使用**:确保是最新版本,考虑优化
- **偶尔使用**:保持现状
- **从未使用**:归档或删除
- **功能重复**:合并或保留最好的一个
- **已过时**:更新或替换

### 11.4 团队共享技能库的建立

在团队环境中,共享 Skill 能极大提升协作效率。

**方案一:Git 仓库共享**

```bash
# 创建团队 Skill 仓库
$ git init team-hermes-skills
$ git remote add origin [email protected]:company/hermes-skills.git

# 目录结构
team-hermes-skills/
├── README.md
├── CONTRIBUTING.md
├── skills/
│   ├── code-review-company/
│   │   └── SKILL.md        # 公司代码规范审查
│   ├── deploy-staging/
│   │   └── SKILL.md        # 公司 staging 部署流程
│   └── onboard-newbie/
│       └── SKILL.md        # 新人入职指南
└── .github/
    └── workflows/
        └── validate.yml    # CI 验证 Skill 格式

# 团队成员使用
$ git clone [email protected]:company/hermes-skills.git
$ cd hermes-skills
$ make install  # 安装所有团队 Skill 到 ~/.hermes/skills/
```

**方案二:私有 Skills Hub**

```yaml
# config.yaml
skills:
  hub:
    - url: "https://agentskills.io" # 官方 Hub
    - url: "https://skills.company.internal" # 公司私有 Hub
      auth:
        type: "token"
        token: "${COMPANY_SKILLS_TOKEN}"
```

**方案三:NAS/网盘同步**

```bash
# 团队 Skill 放在共享网盘
/Users/Shared/HermesSkills/

# 每个成员的 Hermes 配置指向共享目录
# config.yaml
skills:
  additional_paths:
    - "/Users/Shared/HermesSkills"
```

### 11.5 技能文档化建议

良好的文档让 Skill 更容易被理解和使用。

**Skill 文档模板:**

```markdown
# Skill Name

## 快速开始

一句话说明这个 Skill 是做什么的,以及最基本的用法。

## 详细说明

### 功能

- 功能 1
- 功能 2

### 触发条件

什么时候会触发这个 Skill。

### 参数

| 参数   | 类型   | 必填 | 默认值 | 说明 |
| ------ | ------ | ---- | ------ | ---- |
| param1 | string | 是   | -      | 说明 |
| param2 | int    | 否   | 10     | 说明 |

### 示例

#### 示例 1:基本用法
```

输入: ...
输出: ...

```

#### 示例 2:高级用法
```

输入: ...
输出: ...

```

## 注意事项
- 注意 1
- 注意 2

## 常见问题
**Q: 为什么...?**
A: ...

## 变更日志
### v1.1.0
- 新增...
- 修复...

### v1.0.0
- 初始版本

## 作者与贡献
- 作者: @your-name
- 贡献者: @contributor1
- 问题反馈: GitHub Issues
```

---

## 本章小结

技能系统是 Hermes Agent 最具实用价值的功能,也是它从「聊天工具」进化为「全能助手」的关键。让我们回顾本章的核心要点:

**Skill 的本质:**

Skill 不是提示词模板,而是**可执行的工作流程序**。正如 Hermes Atlas 官方文档所揭示的:「Claude Code 的 memory 存储关于你的事实——偏好要点。而 Hermes 存储的是程序——产生你想要的要点的研究-过滤-格式化工作流。事实告知模型,程序直接被复用。」

**Skill 的生命周期:**

```
需求 → 执行 → 模式识别 → 自动生成 Skill → 使用 → 反馈 → 进化 → 更优 Skill
```

**四个信任等级:**

- **内置**(🏠):随 Hermes 发行,最可信
- **官方**(✅):Nous Research 发布,经过安全审计
- **可信**(👤):经验证社区成员发布,代码扫描+人工抽查
- **社区**(🌐):任何开发者发布,自动扫描,**建议查看源码**

**核心命令速查:**

| 命令                           | 功能            |
| ------------------------------ | --------------- |
| `hermes skills list`           | 查看所有技能    |
| `hermes skills show <name>`    | 查看技能详情    |
| `hermes skills install <name>` | 安装技能        |
| `hermes skills edit <name>`    | 编辑技能        |
| `hermes skills delete <name>`  | 删除技能        |
| `hermes skills export <name>`  | 导出技能        |
| `hermes skills import <file>`  | 导入技能        |
| `hermes skills hub`            | 打开 Skills Hub |

**推荐首装 5 个技能:**

1. **LLM Wiki**(内置)—— AI 概念速查百科
2. **Gstack**(可信)—— 技术栈管理与推荐
3. **OpenAI Utils**(可信)—— API 成本估算与工具
4. **Manim**(官方)—— 数学动画生成
5. **Security Audit**(官方)—— 安全审计扫描

**自动创建的核心规则(5-Tool-Call 规则):**

当 Agent 在一次任务中成功调用了 **5 个或更多工具**,且任务最终成功完成,系统就会评估是否生成 Skill。这个规则确保了只有足够复杂、有复用价值的工作流才会被沉淀。

**社区生态:**

Skills Hub 上已有 **643 个社区技能**(截至 2026 年 4 月 19 日),涵盖几乎所有技术领域。无论你是开发者、数据分析师、内容创作者还是运维工程师,都能找到适合自己的 Skill。

**最佳实践:**

1. 先正常使用 1-2 周,让自动创建机制积累你的常用工作流
2. 定期审计 Skill,删除未使用的,合并重复的
3. 为团队建立共享 Skill 库,提升协作效率
4. 贡献高质量 Skill 给社区,既是回馈也是展示
5. 安装社区 Skill 前查看源码,确保安全

掌握技能系统,你就掌握了让 Hermes 持续进化的密码。每一次成功的任务执行,都是未来效率提升的种子。当你的 Skill 库积累到 20、50、100 个时,你会发现:Agent 不再是「你教它做什么」,而是「它知道该为你做什么」。

这就是从「工具」到「搭档」的跨越。

---