Agent工坊

【Agent工坊】从零构建你的第一个 Hermes Agent 自定义技能:一人公司 AI 自动化终极武器

Hermes Agent 是目前唯一内置「学习循环」的 AI Agent——它能从对话经验中自动创建技能、在使用中自我改进、跨会话持续积累知识。但真正的力量在于你自己写技能。这篇教程带你从零构建一个实用技能,让 Hermes 变成你专属的 AI 员工。


前言

如果你用过 Hermes Agent,一定用过它内置的技能系统——/plan 帮你规划方案、/github-pr-workflow 帮你管理 PR、/blogwatcher 监控博客更新。但很多人没意识到的是,写完一个自定义技能的成本低到离谱:一个 Markdown 文件,放在 ~/.hermes/skills/ 目录,你的 Agent 就多了一项专业能力。


本文以「AI 创业竞品监控」为例,带你从头到尾写一个完整的自定义技能。学完你就能给 Hermes 装上任何你需要的专业能力——从财务分析到客户支持,从 SEO 审计到社交媒体运营。


什么是 Skill?为什么它是「一人公司」的秘密武器

技能系统架构

▲ Hermes Agent 技能系统三层渐进式披露架构:从技能列表到完整内容到引用文件,最小化 token 消耗


Skill 本质是一个按需加载的知识文档。它使用「渐进式披露」(Progressive Disclosure)模式节省 token:


层级加载内容Token 消耗
Level 0技能列表(名称+描述+分类)~3k tokens
Level 1完整技能内容视文档大小
Level 2引用文件(如模板、示例数据)视文件大小

Agent 只在真正需要时才加载完整技能内容,这保证了你装 20 个技能也不会撑爆上下文窗口。


对一人公司的价值:每个 Skill 相当于一个 SOP(标准操作流程)文档,但比 SOP 更强大——它直接指导 AI 执行,而不是指导人执行。你把「竞品分析怎么做」写成一个 Skill,Hermes 就能每周自动帮你跑一遍。


SKILL.md 文件格式详解

SKILL.md文件格式

▲ SKILL.md 文件结构拆解:YAML frontmatter 元数据 + Markdown 正文,一个文件定义完整 AI 能力


一个最小可用的技能文件长这样:


<hr>
name: competitor-monitor
description: 竞品监控——搜索指定竞品的产品更新、融资动态、定价变化
version: 1.0.0
metadata:
  hermes:
    tags: [business, automation, research]
    category: business
    requires_toolsets: [web]
<hr>
# 竞品监控

## 触发条件
当用户要求「监控竞品」「竞品分析」「看看竞争对手在做什么」时加载此技能。

## 执行流程

### 1. 确认监控目标
询问用户要监控哪些竞品(公司名或产品名),默认搜索最近 7 天的信息。

### 2. 多源搜索
对每个竞品执行以下搜索:

- `web_search("竞品名 产品更新 2026")`
- `web_search("竞品名 融资 2026")`
- 如果用户提供了 HN/ProductHunt 等特定平台,限定在该平台搜索

### 3. 结构化输出
将结果整理为表格:
| 竞品 | 类型(产品/融资/定价) | 摘要 | 来源 URL | 威胁等级(高/中/低) |

### 4. 行动建议
基于发现给出 2-3 条可执行的应对建议。

## 注意事项

- 优先使用博查搜索中文内容,Tavily 搜索英文
- 同一事件多个来源报道时保留最权威的来源
- 威胁等级判断标准:融资>50M → 高;新产品发布 → 中;UI更新 → 低


关键字段说明

字段必填说明
name唯一标识符,也是 /skill-name 命令名
descriptionAgent 在 skill list 中看到的简述
version推荐方便追踪迭代
metadata.hermes.tags可选用于分类筛选
metadata.hermes.category可选分类(devops/business/creative 等)
metadata.hermes.requires_toolsets可选需要哪些工具集才能激活此技能
metadata.hermes.fallback_for_toolsets可选当指定工具集不可用时才激活(兜底技能)

实战:创建「竞品监控」技能的完整流程

步骤 1:创建技能文件

mkdir -p ~/.hermes/skills
cat > ~/.hermes/skills/competitor-monitor.md << 'EOF'
<hr>
name: competitor-monitor
description: 竞品监控——搜索指定竞品的产品更新、融资动态、定价变化
version: 1.0.0
metadata:
  hermes:
    tags: [business, automation, research]
    category: business
    requires_toolsets: [web]
<hr>
# 竞品监控

## 触发条件
当用户提到「竞品」「监控」「competitor」「看看对手」时加载。

## 搜索策略

### 核心搜索词模板
对每个目标公司,执行以下搜索:

1. `"{公司名}" "融资" OR "funding" site:36kr.com OR site:techcrunch.com`
2. `"{公司名}" 产品更新 OR "new feature" OR release`
3. `"{公司名}" 定价 OR pricing change`

### 搜索优先级

1. **中文源**(博查):36氪、虎嗅、LatePost
2. **英文源**(Tavily):TechCrunch、The Verge、HN
3. **社交信号**:HN points、Twitter 讨论量

## 输出规范

### 报告格式

🔍 {竞品名} 监控报告 | {日期范围}


🚨 高优先级发现

[融资/重大产品发布/高管变动]

📋 完整动态列表

日期类型事件来源

⚠️ 威胁评估

  • 综合威胁等级:[高/中/低]
  • 理由:[一句话判断依据]

💡 应对建议

  1. [具体行动]
  2. [具体行动]

步骤 2:验证技能加载

# 方式一:在 Hermes CLI 中查看技能列表
hermes chat --toolsets skills -q "List all skills that have 'competitor' in name"

# 方式二:直接调用
hermes chat --toolsets skills,web -q "/competitor-monitor 帮我监控 Notion、Coda 和 Craft 的最新动态"


步骤 3:测试技能执行

在 Hermes CLI 中发起一个实际对话:


你:/competitor-monitor 监控这三个公司:Cursor、Windsurf、Replit

Hermes:[加载 competitor-monitor 技能]
       好的,我来监控这三个 AI 编程工具的最新动态。
       搜索时间范围:最近 7 天(2026年5月10日-17日)

       [执行 web_search: "Cursor AI 更新 2026"]
       [执行 web_search: "Windsurf AI 更新 2026"]
       [执行 web_search: "Replit AI 更新 2026"]
       
       以下是监控报告...

       ## 🔍 竞品监控报告 | 2026.5.10-5.17

       ### 🚨 高优先级发现

       - **Cursor** 被 Microsoft 内部禁用,转向 Claude Code(来源:The Verge)
       
       ### 📋 完整动态列表
       | 日期 | 公司 | 事件 | 来源 |
       |------|------|------|------|
       | 5.16 | Cursor | Microsoft 内部禁用,转向 Claude Code | The Verge |
       | 5.15 | Replit | 推出 Replit Agent 2.0 | Replit Blog |
       | ... | ... | ... | ... |


进阶技巧:让技能更智能

技巧 1:条件激活——只在必要时出现

如果你的技能依赖特定工具,用 requires_toolsets 避免在不支持的会话中出现:


metadata:
  hermes:
    requires_toolsets: [web, terminal]


如果想做一个「免费搜索引擎」兜底技能(当 Tavily 不可用时自动激活):


metadata:
  hermes:
    fallback_for_toolsets: [web]


这样当 web 工具集不可用时,Agent 会自动看到你的兜底技能。


技巧 2:用 Skill 驱动 Cron 定时任务

技能写好后,可以直接绑定到定时任务:


# 每天早上 9 点自动执行竞品监控
hermes cron create "0 9 * * *" "监控 Cursor、Windsurf、Replit" \
  --skill competitor-monitor \
  --name "每日竞品监控"


或者一次绑定多个技能:


hermes cron create "0 9 * * 1" "周一综合情报:竞品监控 + 行业新闻总结" \
  --skill competitor-monitor \
  --skill ai-news-digest \
  --name "周一情报汇总"


技巧 3:平台限制——让技能适配不同环境

如果某个技能只在特定 OS 有用(比如 iMessage 技能只适用 macOS),用 platforms 字段:


platforms: [macos]


技能会在 Linux/Windows 环境下自动隐藏。


技巧 4:用引用文件(Level 2)分离大数据

当技能需要引用模板文件、示例数据或大型配置时,不要全塞进 SKILL.md。用 Level 2 引用:


详细模板见 `references/competitor-report-template.md`


Agent 通过 skill_view(name='competitor-monitor', path='references/competitor-report-template.md') 按需加载。


一人公司实战:5 个你立刻能用的技能模板

1. 财务健康检查

name: financial-health-check
description: 分析业务财务数据,检查现金流、利润率、增速等核心指标
requires_toolsets: [terminal]


执行流程:读取 CSV/Excel → 计算关键比率 → 生成诊断报告和预警。


2. 客户支持分类器

name: support-triage
description: 分析客户消息,自动分类紧急程度、产品领域、是否需要人工介入


执行流程:分类邮件/消息 → 打标签 → 生成优先级队列 → 给出回复建议。


3. SEO 内容审计

name: seo-audit
description: 分析文章 SEO 表现,给出标题、关键词密度、meta 描述优化建议
requires_toolsets: [web]


4. 社交媒体排期

name: social-scheduler
description: 根据内容库生成一周社交媒体发布计划,含平台适配建议


5. 合同条款检查

name: contract-review
description: 检查合同中的关键条款,标记风险项,生成谈判建议


常见踩坑与解决方案

坑 1:技能没被 Agent 识别

症状/my-skill 返回「未知命令」。


排查

# 检查文件位置
ls ~/.hermes/skills/my-skill.md

# 检查 YAML frontmatter 语法
head -10 ~/.hermes/skills/my-skill.md

# 确认 name 字段无空格、无特殊字符
grep "^name:" ~/.hermes/skills/my-skill.md


常见原因:YAML frontmatter 中 name 字段有空格(name: my skill 应改为 name: my-skill)。


坑 2:`requires_toolsets` 导致技能不出现

症状:技能创建成功但 skills_list() 里看不到。


原因:当前会话没有加载所需的 toolsets。


解决

# 启动时显式加载需要的 toolsets
hermes chat --toolsets web,terminal,skills


坑 3:技能描述太长,Agent 没触发

症状:用户说了触发词但技能没加载。


原因:技能描述(description)太短或太模糊,Agent 匹配不到。


最佳实践:description 包含 3-5 个触发关键词变体:

description: 竞品监控——搜索竞品产品更新、融资动态、定价变化。当用户说"竞品""监控""对手""competitor""他们在做什么"时使用。


坑 4:Cron 里技能没加载

症状:cron 任务执行了但没按技能流程走。


排查

# 查看 cron job 配置
hermes cron list

# 确认 --skill 参数正确
hermes cron edit <job_id> --skill competitor-monitor


注意:Cron 任务里不会自动加载所有技能,必须显式通过 --skillskills= 参数指定。


坑 5:YAML 缩进错误导致 frontmatter 解析失败

症状:技能文件存在但 Agent 完全忽略它,skills_list() 里不出现。


原因:YAML frontmatter 对缩进极其敏感。metadata 下的 hermes 必须缩进 2 个空格。


正确写法

metadata:
  hermes:          # 2空格缩进
    tags: [...]    # 4空格缩进


错误写法

metadata:
hermes:            # 缩进丢失,YAML解析失败
  tags: [...]


快速检查

python3 -c "import yaml; yaml.safe_load(open('skill.md').read().split('---')[1])"


坑 6:技能文件编码问题

症状:中文内容在 Agent 输出中显示为乱码。


原因:文件被保存为非 UTF-8 编码。


解决

file ~/.hermes/skills/my-skill.md
# 应输出:UTF-8 Unicode text
# 如果显示 ISO-8859 或其他编码,转换:
iconv -f GBK -t UTF-8 my-skill.md > my-skill-utf8.md


完整实战:从技能创建到定时自动化

Cron自动化工作流

▲ 技能 + Cron = 定时自动化工作流:从技能文件创建到绑定定时任务,实现无人值守运营


让我们把整个流程串起来——从零开始创建一个「客户邮件自动分类」技能,并绑定到每天早上 8 点的定时任务:


第一步:创建技能文件

cat > ~/.hermes/skills/email-triage.md << 'SKILLEOF'
<hr>
name: email-triage
description: 分析客户邮件,自动分类紧急程度、产品领域、是否需要人工回复
version: 1.0.0
metadata:
  hermes:
    tags: [business, customer-support]
    category: business
<hr>
# 客户邮件分类

## 处理流程

1. 读取待处理邮件列表
2. 对每封邮件判断:
   - 紧急度:urgent(2h内回复)/ normal(24h)/ low(可忽略)
   - 类别:bug/功能请求/付费咨询/投诉/其他
   - 是否需要人工介入
3. 对低紧急度+标准化问题,生成 AI 回复草稿
4. 输出分类表格 + 优先级排序

## 输出格式
| # | 发件人 | 类别 | 紧急度 | 需人工 | AI草稿 |
|---|--------|------|--------|--------|--------|
| 1 | 张三 | bug | urgent | 是 | - |
| 2 | 李四 | 付费 | normal | 否 | [草稿内容] |
SKILLEOF


第二步:测试技能

hermes chat --toolsets skills,terminal \
  -q "/email-triage 检查 ~/inbox/ 下今天的新邮件"


第三步:绑定 Cron

hermes cron create "0 8 * * *" \
  "检查今天的新邮件,按 email-triage 技能流程处理,结果发到 Telegram" \
  --skill email-triage \
  --name "早间邮件分类"


第四步:验证定时任务

# 查看任务状态
hermes cron list

# 手动触发一次测试
hermes cron trigger <job_id>


完成。从此每天早上 8 点,Hermes 会自动扫描邮箱,分类紧急度,生成回复草稿——你只需要审核、点击发送。


技能迭代:让 Agent 帮你改进技能

Hermes 最独特的能力之一是技能自我改进。当你通过对话调整技能行为、发现新的边界 case、优化 prompt 措辞后,可以直接让 Agent 更新技能文件:


你:刚才竞品监控搜索了太多无关内容,把搜索策略改成只搜最近 3 天的,并且排除纯 UI 更新。

Hermes:[使用 patch 工具修改 competitor-monitor.md]
       已更新搜索策略:时间范围改为 3 天,过滤条件增加「排除 UI 更新」。


这样每个技能都在持续进化,越用越精准。


总结

自定义 Skill 是把 Hermes Agent 从「通用助手」变成「领域专家」的钥匙。对一人公司来说,每个 Skill 就是一份数字化 SOP,一份可复用的智力资产。


三个核心要点


  1. Skill 成本极低——一个 Markdown 文件,15 分钟写完,永久可用
  2. Skill + Cron = 自动化员工——绑定定时任务后,Agent 自动执行标准化工作流程
  3. Skill 会自我进化——Agent 在对话中学习到的改进可以写回 Skill,持续升级

行动建议:打开终端,用今天的内容创建你的第一个 Skill。从最简单的「每日站会总结」开始——15 分钟就能跑起来。


#AI创业 #HermesAgent #Agent工坊 #一人公司 #AI自动化 #技能开发


*本文由 AI 辅助创作,经人工审核编辑发布。Hermes Agent 功能基于 v0.14.0 (2026.5.16) 版本,最新特性请以官方文档为准。*


本文由AI辅助创作,经人工审核编辑发布