Hermes Agent技能开发SkillAI Agent

技能开发:用 Skill 扩展 Hermes Agent 能力边界


为什么要开发技能

当 Hermes Agent 帮你完成了三次”下载数据→回测→生成报告”的工作流后,你会发现每次的指令都差不多。为什么不把它保存下来,下次直接复用?

这就是 Skill(技能)的作用——把你的工作方法固化为 Agent 可读的知识文档。

Skill 解决了什么问题

问题没有 Skill有 Skill
每次重复描述”先下载数据,然后回测,再生成报告……”一句话:“执行量化日报”
遗漏步骤忘了检查数据完整性Skill 里写好了所有步骤
知识失传换环境从头学Skill 随身携带
效率提升靠记忆和复制粘贴靠结构化知识

SKILL.md 结构

每个 Skill 都是一个目录下的 SKILL.md 文件:

~/.hermes/skills/
├── quant-morning-check/     ← 技能目录
│   └── SKILL.md             ← 技能文档
├── wind-report-generator/
│   └── SKILL.md
└── data-analysis-pro/
    ├── SKILL.md
    ├── references/          ← 可选:参考文档
    └── scripts/             ← 可选:脚本

SKILL.md 格式

---
name: my-skill
description: 一句话描述这个技能在什么场景下用
version: 1.0.0
author: 你的名字
license: MIT
metadata:
  hermes:
    tags: [标签1, 标签2]
    related_skills: [相关的-其他-技能]
---

# 技能标题

## 概述
这个技能做什么、为什么有用。

## 使用场景
什么时候触发这个技能。

## 步骤
1. 第一步:做什么
2. 第二步:做什么
3. ...

## 常见坑
- 可能遇到的问题
- 如何解决

## 验证
怎么确认技能执行成功

第一个技能:量化数据检查器

我们来创建一个检查量化数据完整性的技能。

---
name: quant-data-checker
description: 检查 DuckDB 量化数据的完整性,包括缺失日期、数据行数、最新更新日期
version: 1.0.0
author: Hermes
license: MIT
metadata:
  hermes:
    tags: [量化, 数据, 检查]
    related_skills: [quant-morning-check]
---

# 量化数据检查

## 概述
检查 DuckDB 中存储的 A 股、ETF、可转债日线数据的完整性,
确保没有缺失日期、数据行数在合理范围、最新数据及时更新。

## 步骤
1. 连接 DuckDB 数据库(路径:data/quant.duckdb)
2. 检查股票数据:查询 stock_daily 表,统计总行数和最新日期
3. 检查 ETF 数据:查询 etf_daily 表
4. 检查可转债数据:查询 bond_daily 表
5. 检查缺失日期:按 code 分组,检查日期是否连续
6. 汇总结果

## SQL 模板
```sql
-- 检查数据量
SELECT 'stock' as type, count(*) as rows, max(date) as latest 
FROM stock_daily
UNION ALL
SELECT 'etf', count(*), max(date) FROM etf_daily
UNION ALL
SELECT 'bond', count(*), max(date) FROM bond_daily;

正常范围

  • 股票:> 1500 万行
  • ETF:> 6 万行
  • 可转债:> 70 万行
  • 最新日期:应为最近 5 个交易日内

验证

输出应包含每个数据类型的行数和最新日期,无 SQL 错误。


## 创建技能的方式

### 方式一:对话中让 Agent 创建

把这个流程保存成技能”quant-data-checker”:

  1. 连接 DuckDB
  2. 检查三张表的数据量
  3. 报告结果

Agent 会自动创建 SKILL.md。

### 方式二:手动用工具创建

```python
# 在 execute_code 或对话中
skill_manage(
    action='create',
    name='quant-data-checker',
    content='''---\nname: quant-data-checker\n...\n---\n\n...'''
)

方式三:直接写文件

mkdir -p ~/.hermes/skills/quant-data-checker
# 然后编辑 SKILL.md

加载和使用技能

在会话中加载

hermes -s quant-data-checker    # 启动时加载

或在会话中:

/skill quant-data-checker

在 cron 任务中使用

hermes cron create "0 6 * * *" \
  --name "数据检查" \
  --skills quant-data-checker \
  --prompt "执行数据完整性检查并报告"

自动加载

Agent 在收到任务时会自动扫描技能库,找到匹配的技能并加载。所以你不需要每次都手动指定。

高级技能技巧

引用文件

技能可以附带参考文档和模板脚本:

my-skill/
├── SKILL.md
├── references/
│   └── api-docs.md          ← API 参考文档
├── templates/
│   └── report-template.md   ← 报告模板
└── scripts/
    └── validate.py          ← 验证脚本

在 SKILL.md 中引用它们:

## 参考
`references/api-docs.md` 了解 API 详情。

分类组织

把同类技能放在一个分类下:

~/.hermes/skills/
├── quant/ 量化分类
   ├── data-checker/
   └── backtest-runner/
├── devops/ 运维分类
   ├── disk-YOUR_API_KEY/
   └── system-monitor/
└── writing/ 写作分类
    ├── report-generator/
    └── article-writer/

创建时指定分类:

skill_manage(action='create', name='my-skill', category='quant')

技能模板变量

在 SKILL.md 中可以用 {{变量}} 做模板,Agent 执行时替换为实际值:

## 步骤
1. 使用 Python 计算 {{stock_code}} 的 20 日均线
2. 判断收盘价是否在均线 {{threshold}}% 以内

技能维护

查看已安装技能

hermes skills list

更新技能

发现技能过时了,随时更新:

把这个技能的步骤 3 更新成新的 API 调用方式

Agent 会自动用 skill_manage(action='patch') 更新。

技能自动维护

Hermes 有一个 Curator(策展人)系统,会自动检查技能质量:

hermes curator status        # 查看技能库健康状态
hermes curator run           # 手动触发检查

它会标记过时的技能、建议合并重复的技能。

常见问题

技能加载了但没有效果?

检查技能是否有完整的 frontmatter(--- 包裹的 YAML 头),description 不能超过 1024 字符。

技能太多会不会影响性能?

Agent 会根据任务描述自动匹配相关技能,不是全部加载。所以技能多不意味着响应慢。

怎么分享技能给别人?

技能就是纯文本的 SKILL.md 文件。可以:

  • 分享文件本身
  • 推送到 GitHub 仓库
  • 发布到 Hermes Skills Hub:hermes skills publish

小结

Skill 是 Hermes Agent 最强大的特性之一。它让你把经验结构化、知识可复用、工作自动化

从创建第一个简单的检查技能开始,逐步建立起自己的技能库——你的 Agent 会越来越懂你,效率越来越高。

本文是 Agent 学习路径的第 4 步,也是最后一步。Agent 路径学完了,接下来建议切换到「量化学习路径」开始策略实战。

相关文章

💬 评论