📚 本系列目录 :《Hermes Agent》
当前第 5/9 篇 · 上一篇:技术架构全解析——Hermes Agent 是如何设计的 · 下一篇:MLOps 与研究能力——Hermes Agent 的隐藏王炸
📚 系列导航
《Hermes Agent 》共 9 篇,本篇是第 5 篇。
← 上一篇:技术架构全解析——Hermes Agent 是如何设计的
下一篇:MLOps 与研究能力——Hermes Agent 的隐藏王炸 →
Skills 系统深度解剖——掌握 Hermes Agent 的技能生态
掌握 Hermes Agent 的技能生态,创建、调试、优化和分享自己的技能。
Skills 是 Hermes Agent 的核心能力之一——解决复杂问题后自动生成可复用的技能文档。这篇深入剖析 Skills 系统的一切。
一、Skills 是什么?
1.1 概念定义
Skill 是一个可复用的能力包,包含:
组成部分 说明 示例 触发条件 何时使用这个技能 用户提到"审查代码" 执行步骤 如何执行 git diff → 分析 → 报告 相关知识 背景信息 代码规范、安全最佳实践 使用示例 输入输出示例 PR审查 → 问题列表
存储格式 :SKILL.md (Markdown 文档)
1.2 与普通 Prompt 的区别
特性 Skill 普通 Prompt Skill 优势 持久化 ✅ 永久保存 ❌ 一次性 一次创建,永久使用 可搜索 ✅ FTS5 全文索引 ❌ 快速检索 可分享 ✅ agentskills.io ❌ 社区生态 自优化 ✅ 使用中改进 ❌ 越用越强 版本管理 ✅ 支持 ❌ 可回滚 执行统计 ✅ 完整记录 ❌ 数据驱动优化
1.3 Skills 的价值
没有 Skills:
用户:帮我审查这个 PR
AI:好的...(每次都要重新分析)
用户:帮我再审查一个 PR
AI:好的...(重复之前的思考过程)
有 Skills:
用户:帮我审查这个 PR
AI:[加载 code-review 技能]好的,这是审查结果...
用户:帮我再审查一个 PR
AI:[加载 code-review 技能]好的,审查结果...
→ 更快、更一致、更专业
二、内置 40+ 技能详解
Hermes Agent 自带丰富的内置技能,覆盖多个领域:
2.1 开发工具类
技能名 功能 使用场景 githubGitHub API 操作 仓库管理、Issue、PR gitGit 命令执行 分支管理、提交、冲突解决 code-analysis代码静态分析 找出代码问题 test-runner测试运行 单元测试、集成测试 lint代码检查 ESLint、Prettier code-reviewPR 审查 安全、风格、最佳实践 dependency-check依赖检查 安全漏洞、更新提醒
2.2 数据处理类
技能名 功能 使用场景 chart图表生成 数据可视化 pdfPDF 处理 读取、生成、合并 csvCSV 操作 数据导入导出 jsonJSON 处理 解析、转换、验证 database数据库操作 SQL 查询、迁移 excelExcel 处理 读写、分析
2.3 网络交互类
技能名 功能 使用场景 browser浏览器自动化 网页操作、表单填写 web-fetch网页抓取 提取内容、爬虫 api-clientAPI 调用 REST、GraphQL web-search搜索引擎 查找信息 screenshot页面截图 可视化记录
2.4 通信类
技能名 功能 使用场景 email邮件发送 通知、报告 slackSlack 消息 团队通知 telegramTelegram 即时通讯 discordDiscord 消息 社区通知 webhookWebhook 调用 事件推送
2.5 自动化类
技能名 功能 使用场景 cron定时任务 定期执行 schedule调度管理 复杂调度 workflow工作流 多步骤自动化 reminder提醒 定时提醒 monitor监控 系统监控
2.6 AI/ML 类
技能名 功能 使用场景 whisper语音转文字 会议记录 tts文字转语音 语音播报 image-gen图片生成 插图、海报 embed向量嵌入 语义搜索
三、SKILL.md 格式完全规范
3.1 完整字段列表
---
name: code-review
version: "1.2.0"
author: hermes-auto
created: "2026-03-15"
updated: "2026-05-11"
description: "代码审查助手"
tags: [code , security , review ]
language: zh-CN
---
简要描述这个技能做什么。1-2 句话。
描述什么情况下应该使用这个技能。
- review code
- 审查代码
- check pr
- 用户要求审查代码
- 用户提到 PR 链接
- 用户提到代码变更
执行这个技能前需要满足的条件。
- git
- shell
- GITHUB_TOKEN 环境变量
使用 git diff 获取代码变更内容。
检查以下问题:
- 安全漏洞
- 代码风格
- 性能问题
汇总发现的问题,生成结构化报告。
这个技能支持的配置变量。
| 变量名 | 类型 | 默认值 | 说明 |
|--------|------|--------|------|
| severity | string | "medium" | 问题严重程度 |
| include_suggestions | boolean | true | 是否包含修改建议 |
执行这个技能需要的背景知识。
遵循 Google Style Guide。
- OWASP Top 10
- CWE Top 25
输入:审查这个 PR https://github.com/owner/repo/pull/123
输出:
1 . **[高危]** SQL 注入漏洞
- 位置:src/api/user.py:45
- 说明:...
- 建议:...
...
输入:帮我审查 main 分支的变更
输出:(类似格式)
在 config.yaml 中的配置示例:
```yaml
skills:
code-review:
severity_threshold: "medium"
auto_assign: true
reviewers: ["@alice" , "@bob" ]
注意事项
如果是大型 PR,只分析最近 20 个文件
忽略测试文件除非用户明确要求
生成中文报告
已知限制
性能指标
记录这个技能的使用统计。
指标 值 平均执行时间 45 秒 成功率 92% 使用次数 156
### 3.2 触发条件详解
触发条件是技能系统的核心,决定何时激活技能:
```yaml
## 触发条件
### 精确匹配
- "审查代码"
- "review code"
### 模糊匹配(包含以下关键词)
- "代码审查"
- "PR 审查"
- "check code"
### 正则匹配
- `^review.*pr$`
- `审查.*(PR|代码)`
### 场景匹配
- 用户提到 GitHub PR URL
- 用户提到代码变更
- 用户提到 .diff 文件
### 组合条件
- 包含"审查"且包含"代码"
- 包含"review"且不包含"test"
3.3 执行步骤详解
直接描述执行内容。
如果代码包含 SQL 查询,则执行:
- 运行 SQL 注入检测
- 检查参数化查询
对变更列表中的每个文件:
1 . 获取文件内容
2 . 运行分析
3 . 记录问题
如果发现 > 0 个问题:
- 生成详细报告
- 发送通知
否则:
- 输出"没有问题"
如果 git 命令失败:
- 提示用户检查仓库配置
- 提供手动审查指南
四、创建自定义技能详解
4.1 方法一:Hermes 自动创建
解决复杂问题后,Hermes 会自动分析并创建技能:
用户:帮我分析这个 API 性能瓶颈,找出原因并给出优化方案。
Hermes:
[分析过程...]
1. 获取 API 日志
2. 分析慢查询
3. 检查缓存策略
4. 给出优化建议
[分析完成,耗时 3 分钟]
[自动创建技能:api-performance-analysis]
是否保存这个技能以便下次使用?[Y/n]
自动创建的好处:
不需要手动编写
基于实际成功经验
自动提取关键步骤
4.2 方法二:手动创建
mkdir -p ~/.hermes/memory/skills/my-custom-skill
cd ~/.hermes/memory/skills/my-custom-skill
touch SKILL.md
最小模板:
# SKILL.md - 技能名称
## 描述
这个技能做什么。
## 触发条件
什么情况下使用。
## 执行步骤
### 步骤 1
第一个步骤。
## 示例
输入:xxx
输出:xxx
4.3 完整示例:API 性能分析技能
# SKILL.md - API 性能分析
---
name: api-performance-analysis
version: "1.0.0"
author: user
created: "2026-05-11"
tags: [api, performance, optimization]
---
## 描述
分析 API 性能瓶颈,识别慢查询和优化机会。
## 触发条件
- 用户提到"API 性能"
- 用户提到"接口慢"
- 用户提到"性能瓶颈"
- 用户提到"优化"
## 前置条件
### 必需工具
- shell
- read
- web_fetch
### 必需配置
- ANALYTICS_ API_KEY(可选)
## 执行步骤
### 步骤 1:收集指标
获取 API 相关指标:
- 响应时间分布
- QPS/TPS
- 错误率
- 慢请求列表
### 步骤 2:识别瓶颈
分析收集的指标:
- P99 > 1s → 关注
- 错误率 > 1% → 告警
- QPS 下降 → 排查
### 步骤 3:根因分析
对识别的瓶颈进行深入分析:
- 数据库查询(慢查询日志)
- 外部依赖(超时分析)
- 代码逻辑(火焰图)
### 步骤 4:生成优化方案
针对每个瓶颈:
1. 问题描述
2. 原因分析
3. 优化方案(含代码示例)
4. 预期收益
## 变量
| 变量名 | 类型 | 默认值 | 说明 |
|--------|------|--------|------|
| time_ range | string | "1h" | 分析时间范围 |
| top_n | number | 10 | 关注 Top N 慢请求 |
| include_ code | boolean | true | 是否包含代码示例 |
## 相关知识
### 性能指标
- P50/P90/P99 响应时间
- QPS(每秒请求数)
- 错误率
- 超时率
### 常见瓶颈
- N+1 查询
- 缺少索引
- 未使用缓存
- 同步阻塞
## 示例
### 示例 1:分析慢请求
输入:分析这个 API 的慢请求
输出:
## 性能分析报告
### 概览
| 指标 | 值 |
|------|-----|
| 分析时间 | 最近 1 小时 |
| 总请求数 | 15,234 |
| P99 响应时间 | 2.3s |
| 错误率 | 0.8% |
### Top 3 慢请求
1. **GET /api/users** - P99: 3.2s
- 原因:N+1 查询
- 优化:批量查询
...
### 优化建议
1. 为 users 表添加索引
2. 实现 Redis 缓存
...
### 示例 2:完整性能诊断
输入:帮我全面分析这个 API 的性能问题
输出:(类似格式,更详细)
## 配置示例
```yaml
skills:
api-performance-analysis:
time_range: "24h"
top_n: 20
auto_optimize: false
注意事项
收集数据时不影响线上服务
敏感 API 路径自动脱敏
大时间范围可能耗时较长
性能指标
指标 值 平均执行时间 35 秒 成功率 94% 使用次数 42
---
## 五、Skills Hub:社区技能生态
### 5.1 agentskills.io 平台
[agentskills.io](https://agentskills.io) 是官方技能分享平台:
┌─────────────────────────────────────────────────────────────────────┐
│ agentskills.io │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 搜索 🔍 [api testing ] │
│ │
│ ──────────────────────────────────────────────────────────────── │
│ │
│ 热门技能: │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 🔥 github-pr-reviewer (2.3k 安装) │ │
│ │ 自动审查 GitHub PR,检查安全、风格、最佳实践 │ │
│ │ Tags: github, security, review │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 🏆 api-testing (1.8k 安装) │ │
│ │ REST API 自动化测试,支持 OpenAPI │ │
│ │ Tags: api, testing, automation │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ ⭐ database-migration (1.5k 安装) │ │
│ │ 数据库迁移助手,支持 PostgreSQL/MySQL │ │
│ │ Tags: database, migration, postgresql │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
### 5.2 安装社区技能
```bash
# 安装单个技能
hermes skill install github-pr-reviewer
# 安装多个技能
hermes skill install api-testing database-migration
# 安装指定版本
hermes skill install github-pr-reviewer@1.2.0
# 从 URL 安装
hermes skill install https://agentskills.io/skills/custom-skill
5.3 发布技能
hermes skill validate my-skill
hermes skill test my-skill --dry-run
hermes skill publish my-skill
hermes skill publish my-skill --public
hermes skill publish my-skill --private
5.4 热门技能推荐
技能名 安装量 评分 用途 github-pr-reviewer2.3k ⭐4.8 PR 自动审查 api-testing1.8k ⭐4.7 REST API 测试 database-migration1.5k ⭐4.6 数据库迁移 security-scan1.2k ⭐4.9 安全扫描 docker-deploy1.1k ⭐4.5 Docker 部署 monitoring-setup980 ⭐4.4 监控配置
六、技能加载机制详解
6.1 按需加载原理
┌─────────────────────────────────────────────────────────────────────┐
│ 技能加载流程 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 1. 用户输入 │
│ "帮我审查这个 PR" │
│ │
│ 2. 触发条件匹配 │
│ ┌─────────────────────────────────────┐ │
│ │ skill: code-review │ │
│ │ triggers: │ │
│ │ - "审查" ✓ │ │
│ │ - "review" ✓ │ │
│ │ - "PR" ✓ │ │
│ │ match_score: 0.95 │ │
│ └─────────────────────────────────────┘ │
│ │
│ 3. 技能加载 │
│ 读取 ~/.hermes/memory/skills/code-review/SKILL.md │
│ │
│ 4. 执行 │
│ 按执行步骤执行代码审查 │
│ │
│ 5. 记录执行结果 │
│ - 执行时间 │
│ - 成功率 │
│ - 问题发现数量 │
│ │
└─────────────────────────────────────────────────────────────────────┘
6.2 多技能匹配
可能的匹配:
- api-performance-analysis (匹配度: 0.92 )
- code-review (匹配度: 0.78 )
处理策略:
- 主要技能:api-performance-analysis
- 次要技能:code-review(作为工具调用)
6.3 技能优先级
优先级规则(从高到低):
1. 用户自定义技能(~/.hermes/memory/skills/)
2. 社区安装技能(~/.hermes/memory/skills-installed/)
3. 内置技能(hermes 内置)
同名技能覆盖:
如果同名技能存在,后者覆盖前者
七、技能的版本管理
7.1 版本控制
hermes skill info my-skill
hermes skill update my-skill
hermes skill rollback my-skill --to 1.1.0
hermes skill history my-skill
7.2 版本历史
7.3 技能备份
hermes skill export my-skill --output ./backup/
hermes skill export-all --output ./backup/
hermes skill import ./backup/my-skill.zip
hermes skill restore my-skill --from backup.zip
八、技能的调试与测试
8.1 本地测试
hermes skill test my-skill --dry-run
hermes skill test my-skill --example 1
hermes skill test my-skill --input "帮我审查代码"
8.2 调试模式
hermes skill test my-skill --debug
8.3 常见问题排查
问题 原因 解决方法 技能不触发 触发条件不匹配 检查关键词 执行失败 前置条件不满足 检查配置 结果不符合预期 执行步骤有问题 修改步骤 执行太慢 步骤设计不合理 优化步骤
九、技能的统计分析
9.1 使用统计
hermes skill stats my-skill
9.2 性能分析
hermes skill analyze my-skill
十、技能与 MCP 的关系
10.1 MCP Server 是什么?
MCP(Model Context Protocol)是外部工具的标准协议:
┌─────────────────────────────────────────────────────────────────────┐
│ MCP 架构 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ Hermes Agent │
│ │ │
│ │ MCP Client │
│ ▼ │
│ ┌─────────────────┐ │
│ │ MCP Server │ ← 外部进程 │
│ │ (例如天气服务) │ │
│ └─────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ 真实服务 │ │
│ │ (Weather API) │ │
│ └─────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
10.2 MCP 配置
mcp:
servers:
- name: weather
command: npx
args: ["-y" , "@modelcontextprotocol/server-weather" ]
env:
WEATHER_API_KEY: "${WEATHER_API_KEY}"
- name: filesystem
command: npx
args: ["-y" , "@modelcontextprotocol/server-filesystem" , "/home/user" ]
10.3 技能中使用 MCP
## 执行步骤
### 步骤 1:获取天气
使用 weather MCP 获取当前天气:
- 调用 weather.get_current(location="北京")
- 记录温度、湿度、天气状况
### 步骤 2:生成报告
基于天气数据生成推送报告。
10.4 技能 vs MCP 对比
特性 Skill MCP Server 定义方式 SKILL.md 外部进程 创建难度 简单(Markdown) 中等(代码) 执行位置 Hermes 内 外部进程 能力范围 工作流/知识 单一工具 适用场景 复杂任务 简单工具 可分享性 agentskills.io 需要部署
十一、实战:完整技能开发流程
11.1 需求
创建一个 GitHub Issue 自动分类 技能:
接收 Issue 链接或标题
分析 Issue 内容
自动分类(bug/feature/docs/question)
添加标签和负责人
11.2 开发步骤
mkdir -p ~/.hermes/memory/skills/github-issue-classifier
cd ~/.hermes/memory/skills/github-issue-classifier
cat > SKILL.md << 'EOF'
...(见下方完整内容)
EOF
hermes skill test github-issue-classifier --dry-run
hermes skill publish github-issue-classifier --public
11.3 完整技能代码
# SKILL.md - GitHub Issue 自动分类
---
name: github-issue-classifier
version: "1.0.0"
author: your-username
created: "2026-05-11"
tags: [github, issue, classification, automation]
---
## 描述
自动分析 GitHub Issue 内容,进行分类、添加标签和分配负责人。
## 触发条件
### 触发词
- "分类 Issue"
- "classify issue"
- "处理 issue"
- "issue 分类"
### 触发场景
- 用户提供 Issue URL
- 用户提供 Issue 标题
- 用户要求自动处理 Issue
## 前置条件
### 必需工具
- github
- shell
### 必需配置
- GITHUB_TOKEN(具有 repo 写权限)
## 执行步骤
### 步骤 1:获取 Issue 信息
使用 GitHub API 获取 Issue 详情:
- 标题
- 正文
- 已有标签
- 创建者
### 步骤 2:分析 Issue 内容
使用 LLM 分析 Issue:
- 类型:bug / feature / docs / question / other
- 严重程度:高 / 中 / 低
- 需要标签
- 建议负责人
### 步骤 3:应用分类结果
根据分析结果:
1. 添加标签(bug/feature/docs/question + 严重程度)
2. 添加负责人(如适用)
3. 添加评论说明分类依据
### 步骤 4:生成报告
输出分类结果摘要。
## 变量
| 变量名 | 类型 | 默认值 | 说明 |
|--------|------|--------|------|
| auto_ assign | boolean | false | 是否自动分配 |
| add_comment | boolean | true | 是否添加评论 |
| team_ members | array | [] | 团队成员列表 |
## 示例
### 示例 1:处理 Bug Issue
输入:帮我分类这个 Issue https://github.com/owner/repo/issues/123
输出:
## Issue 分类结果
**Issue** : #123 - API 返回数据格式不一致
**分类** :
- 类型:🐛 Bug
- 严重程度:高
- 建议标签:`bug` , `high-priority`
**操作** :
- ✅ 已添加标签:bug, high-priority
- ✅ 已添加评论
**负责人** :@developer-lead
### 示例 2:处理 Feature Issue
输入:分类这个 Issue:"添加 OAuth2 支持"
输出:类似格式
## 配置示例
```yaml
skills:
github-issue-classifier:
auto_assign: true
add_comment: true
team_members:
- "@alice"
- "@bob"
- "@charlie"
注意事项
尊重已有标签,不要覆盖
添加评论时使用友好语气
分类有歧义时输出多个候选
性能指标
指标 值 平均执行时间 8 秒 成功率 96% 分类准确率 89%
---
## 十二、技能管理命令完整参考
| 命令 | 功能 | 示例 |
|------|------|------|
| `/skills` | 列出所有技能 | `/skills` |
| `/skills search [keyword]` | 搜索技能 | `/skills search api` |
| `/skill [name]` | 查看技能详情 | `/skill github` |
| `/skill [name] run` | 执行技能 | `/skill github run` |
| `hermes skill install [name]` | 安装社区技能 | `hermes skill install api-testing` |
| `hermes skill publish [name]` | 发布技能 | `hermes skill publish my-skill` |
| `hermes skill remove [name]` | 删除技能 | `hermes skill remove my-skill` |
| `hermes skill update [name]` | 更新技能 | `hermes skill update my-skill` |
| `hermes skill test [name]` | 测试技能 | `hermes skill test my-skill` |
| `hermes skill stats [name]` | 查看统计 | `hermes skill stats my-skill` |
| `hermes skill export [name]` | 导出技能 | `hermes skill export my-skill` |
| `hermes skill import [path]` | 导入技能 | `hermes skill import ./my-skill.zip` |
| `hermes skill validate [name]` | 验证格式 | `hermes skill validate my-skill` |
| `hermes skill rollback [name]` | 回滚版本 | `hermes skill rollback my-skill` |
| `hermes skill info [name]` | 查看信息 | `hermes skill info my-skill` |
---
## 十三、最佳实践
### 13.1 技能设计原则
好的技能设计:
✅ 单一职责:一个技能做一件事
✅ 清晰的触发条件:容易匹配
✅ 完整的示例:有输入输出示例
✅ 错误处理:有失败处理步骤
✅ 性能考虑:避免长时间阻塞
不好的技能设计:
❌ 多功能:一个技能做很多事
❌ 模糊触发:匹配困难
❌ 无示例:不知道如何使用
❌ 无错误处理:一失败就卡住
推荐格式:
kebab-case(小写连字符)
good: github-pr-reviewer
api-performance-analysis
database-migration
bad: GitHub_PR_Reviewer (混合大小写)
api_performance_analysis (下划线)
APIPerformanceAnalysis (驼峰)
分享技能前:
✅ 测试完整流程
✅ 验证示例输出
✅ 清理敏感信息
✅ 编写清晰的 README
分享时:
✅ 选择合适的标签
✅ 编写吸引人的描述
✅ 设置合理的许可证
✅ 维护更新
不要:
❌ 分享包含敏感配置的技能
❌ 分享未测试的技能
❌ 侵犯他人版权
---
## 十四、总结
Skills 系统是 Hermes Agent 的核心能力:
| 能力 | 说明 | 价值 |
|------|------|------|
| **自动创建** | 解决复杂问题后自动生成 | 零成本积累 |
| **可复用** | 一次创建,永久使用 | 效率提升 |
| **可分享** | agentskills.io 社区生态 | 知识共享 |
| **自优化** | 使用中持续改进 | 越用越强 |
| **版本管理** | 支持版本控制 | 可回滚 |
| **统计分析** | 使用数据可见 | 数据驱动 |
掌握 Skills 系统,让 Hermes Agent 越来越强大——从个人助手进化为团队协作平台。
---
**系列文章预告:**
下一篇:《消息网关深度指南》——Telegram / Discord / 微信全接入。
---
*想创建自己的技能?在评论区分享你的想法!*