Agent工坊

【Agent工坊】从零构建AI Agent自动化工作流:Hermes Agent Skill + Cron 实战指南

一人公司的核心竞争力不是人力,而是能24小时运转的Agent流水线。本文带你从零搭建一个完整的自动化工作流,包括Skill开发、多Agent协作和Cron调度,所有代码可直接复制使用。

为什么要读这篇

AI创业者面临的核心矛盾:想法很多,人手不足。传统解法是招人,但在2026年,更高效的解法是让Agent替你干活

Hermes Agent是目前开源社区最活跃的AI Agent框架之一,它提供了三个一人公司必备的能力:

  • Skill系统:把重复性工作封装成可复用的技能模块
  • delegate_task:让多个子Agent并行或串行协作
  • Cron集成:定时触发,实现真正的无人值守

本文将以一个真实场景——"每日AI热点监控→内容生成→自动发布"流水线为例,完整演示从零搭建的全过程。

读完你将能够:

  • 创建自定义Skill,封装你的业务逻辑
  • 使用delegate_task实现多Agent流水线
  • 配置Cron实现定时自动化
  • 避开5个最常见的踩坑点

Skill系统深度解析

Hermes Agent Skill系统架构图:文件结构、加载流程、输出结果

▲ Skill系统架构:文件结构 → Agent加载 → 输出结果,一次编写永久复用

Skill是什么

Skill是Hermes Agent的可复用能力模块。每个Skill是一个Markdown文件,定义了Agent在特定场景下的行为规则、工具使用方式和输出格式。

~/.hermes/skills/

├── ai-neican-hotspot.md # 热点监控Skill

├── ai-neican-content-pipeline.md # 内容创作流水线Skill

├── wechat-public-account-draft.md # 公众号发布Skill

└── my-custom-skill.md # 你的自定义Skill

Skill的核心结构

一个完整的Skill包含以下部分:

<hr>

name: my-custom-skill

description: 简短描述这个Skill的用途

triggers:

  - 用户说"执行XX任务"

  - 每天定时触发

<hr>

# Skill标题

## 核心定位

这个Skill要解决什么问题,目标用户是谁。

## 执行流程

### 步骤1:数据收集

具体操作步骤...

### 步骤2:处理分析

具体操作步骤...

### 步骤3:输出结果

具体操作步骤...

## 常见陷阱

- 陷阱1:描述和解决方案

- 陷阱2:描述和解决方案

关键原则

  1. triggers要具体:模糊的触发条件会导致误触发
  2. 执行流程要原子化:每个步骤必须能用工具直接执行
  3. 陷阱要前置:把已知问题写在Skill里,Agent会自动避开

实战:创建一个"竞品监控"Skill

假设你是一个AI SaaS创业者,需要每天监控3个竞品的动态。以下是完整Skill代码:

<hr>

name: competitor-monitor

description: 竞品动态监控 - 每日自动抓取竞品官网、社交媒体和技术博客更新

triggers:

  - 每6小时竞品监控

  - 用户说"查看竞品动态"

<hr>

# 竞品动态监控

## 监控目标

1. **竞品A**:competitor-a.com/blog

2. **竞品B**:competitor-b.com/changelog

3. **竞品C**:HN搜索 "competitor-c"

## 执行流程

### 步骤1:抓取竞品A官网博客

用 web_extract 抓取 competitor-a.com/blog,提取最近3篇文章标题和摘要。

### 步骤2:抓取竞品B更新日志

用 web_extract 抓取 competitor-b.com/changelog,提取本周新增功能。

### 步骤3:搜索竞品C社区讨论

用 web_search 搜索 "competitor-c review 2026",收集用户评价和反馈。

### 步骤4:汇总输出

将所有信息汇总为结构化报告,保存到 /opt/reports/competitor-YYYYMMDD-HHMM.md

## 输出格式

# 竞品监控日报 YYYY-MM-DD

## 竞品A动态

- [标题]:[一句话摘要]

## 竞品B更新

- [功能名]:[影响分析]

## 竞品C社区舆情

- [来源]:[关键发现]

## 行动建议

- [基于监控结果的具体建议]

## 常见陷阱

- web_extract对JS渲染页面可能返回空 → 改用browser_navigate

- 竞品官网可能改版 → 每月检查一次URL有效性

- 不要仅依赖一个数据源 → 交叉验证关键信息

实战效果:将以上内容保存为 ~/.hermes/skills/competitor-monitor.md 后,每次说"查看竞品动态"或Cron触发时,Agent会自动执行完整的监控流程。

实战:delegate_task多Agent协作

多Agent协作流水线:主Agent协调研究、写作、审核三个子Agent

▲ 三阶段流水线:研究员收集资料 → 写手撰写文章 → 审核质量把关,文件传递中间结果

delegate_task是什么

delegate_task 是Hermes Agent的子Agent调用机制。你可以把一个复杂任务拆分成多个子任务,每个子任务由独立的子Agent执行,子Agent之间通过文件传递中间结果。

主Agent(协调者)

  ├── delegate_task → 研究员Agent(收集资料)

  │ 输出:research/outputs/01-research.md

  ├── delegate_task → 写手Agent(撰写文章)

  │ 输入:research/outputs/01-research.md

  │ 输出:content/outputs/01-article.md

  └── delegate_task → 审核Agent(质量检查)

        输入:content/outputs/01-article.md

        输出:review/outputs/01-review.md

delegate_task的核心参数

delegate_task(

    agent_name="researcher", # 子Agent名称

    prompt="研究XXX主题的最新动态", # 任务描述

    context_file="context.md", # 可选:上下文文件

    output_file="output.md", # 输出文件路径

    skill="ai-neican-hotspot", # 可选:指定Skill

    timeout=600 # 超时时间(秒)

)

实战:搭建三阶段内容流水线

以下是一个完整的"研究→写作→审核"三阶段流水线的配置示例。

阶段1:研究员Agent

# 研究员Agent配置

角色:信息收集与整理

输入:主题关键词

输出:research/outputs/{topic}-research.md

工具:web_search, web_extract, browser_navigate

规则:

  - 至少收集8个来源

  - 每个数据点标注URL和可信度(✅⚠️❓)

  - 输出格式:## 核心发现 / ## 数据汇总 / ## 来源清单

阶段2:写手Agent

# 写手Agent配置

角色:深度内容创作

输入:research/outputs/{topic}-research.md

输出:content/outputs/{topic}-article.md

工具:write_file, read_file

规则:

  - 字数2500-4000字

  - 必须包含代码块和输出示例

  - 文末添加"本文由AI辅助创作,经人工审核编辑发布"

阶段3:审核Agent

# 审核Agent配置

角色:质量把关

输入:content/outputs/{topic}-article.md

输出:review/outputs/{topic}-review.md

工具:read_file, terminal

规则:

  - 检查字数≥2500

  - 检查是否有代码块

  - 检查是否有输出示例

  - 检查是否有踩坑提醒

  - 评分≥70通过,否则退回修改

一条命令启动整条流水线

# 在Hermes Agent中执行

hermes run --skill content-pipeline --prompt "写一篇关于AI Agent自动化工作流的教程"

Agent会自动:

  1. 调用研究员Agent收集资料
  2. 将研究结果传给写手Agent
  3. 写手完成后自动触发审核Agent
  4. 审核通过则输出最终文章,不通过则自动修改

输出示例(研究阶段):

📊 研究完成:AI Agent自动化工作流

━━━━━━━━━━━━━━━━━━━━━━━━━━━

## 核心发现

1. 76%的AI创业者使用至少一种Agent框架(来源:State of AI 2026 ✅)

2. Hermes Agent的Skill系统是开源社区最活跃的模块(GitHub ⭐4.2k ✅)

3. Cron+Agent的自动化方案比Zapier便宜90%(来源:IndieHackers ⚠️)

## 数据汇总

- 部署成本:$15-50/月(服务器)+ 免费(Hermes Agent开源)

- 时间节省:平均每周节省18小时重复性工作

- 学习曲线:2-4小时可完成第一个Skill

## 来源清单

1. github.com/NousResearch/hermes-agent ✅ 官方

2. news.ycombinator.com/item?id=xxx ⚠️ 社区

3. State of AI 2026 Report ✅ 权威报告

Cron定时任务:让Agent 24小时工作

24小时Cron调度时间线:热点扫描、内容生成、竞品监控、日报汇总

▲ Cron调度时间线:06:00热点扫描 → 08:00内容生成 → 16:00竞品监控 → 22:00日报汇总

配置Cron任务

Hermes Agent的Cron配置在 ~/.hermes/config/cron.json

{

  "jobs": [

    {

      "id": "daily-hotspot-scan",

      "schedule": "0 */6 * * *",

      "skill": "ai-neican-hotspot",

      "prompt": "执行热点扫描,发现重大新闻立即生成内容",

      "timeout": 600,

      "notify_on_error": true

    },

    {

      "id": "competitor-monitor",

      "schedule": "0 8,16 * * *",

      "skill": "competitor-monitor",

      "prompt": "执行竞品监控,输出日报",

      "timeout": 300

    },

    {

      "id": "weekly-report",

      "schedule": "0 9 * * 1",

      "skill": "weekly-report-generator",

      "prompt": "生成本周内容运营周报",

      "timeout": 900

    }

  ]

}

调度语法说明

* * * * *

│ │ │ │ │

│ │ │ │ └── 星期几 (0-7, 0和7都代表周日)

│ │ │ └──── 月份 (1-12)

│ │ └────── 日期 (1-31)

│ └──────── 小时 (0-23)

└────────── 分钟 (0-59)

实战:配置每日内容发布流水线

{

  "jobs": [

    {

      "id": "morning-research",

      "schedule": "0 6 * * *",

      "skill": "ai-neican-hotspot",

      "prompt": "扫描过去12小时AI行业热点,输出选题建议到 /opt/reports/daily-topics.md",

      "timeout": 600

    },

    {

      "id": "content-generation",

      "schedule": "0 8,12,16,20 * * *",

      "skill": "ai-neican-content-pipeline",

      "prompt": "从选题池中选取最高优先级选题,执行研究→写作→审核流水线",

      "timeout": 1200,

      "depends_on": "morning-research"

    },

    {

      "id": "daily-digest",

      "schedule": "0 22 * * *",

      "prompt": "汇总今日所有产出,生成工作日报保存到 /opt/reports/daily-digest-{date}.md",

      "timeout": 300

    }

  ]

}

监控Cron执行状态

# 查看所有Cron任务状态

hermes cron list

# 查看特定任务的执行历史

hermes cron history daily-hotspot-scan --limit 10

# 查看失败任务日志

hermes cron errors --since 24h

输出示例

┌─────────────────────┬──────────┬──────────────┬─────────┐

│ Job ID │ Status │ Last Run │ Runtime │

├─────────────────────┼──────────┼──────────────┼─────────┤

│ daily-hotspot-scan │ ✅ OK │ 2026-05-24 │ 47.2s │

│ │ │ 06:00 UTC │ │

│ competitor-monitor │ ✅ OK │ 2026-05-24 │ 32.1s │

│ │ │ 08:00 UTC │ │

│ content-generation │ ⚠️ WARN │ 2026-05-24 │ 589.3s │

│ │ │ 12:00 UTC │ │

│ │ │ (接近超时) │ │

└─────────────────────┴──────────┴──────────────┴─────────┘

踩坑与排障

六大常见陷阱与修复方案对比卡片

▲ 六大陷阱与修复:从触发条件宽泛到Markdown解析错误,每个陷阱都有对应解决方案

坑1:Skill触发条件过于宽泛

症状:Agent在不同场景下错误触发同一个Skill,例如写文章时却触发了"竞品监控"Skill。

原因:trigger中写了用户说"查看"这样的模糊条件。

修复:将触发条件改得更具体:

# ❌ 错误

triggers:

  - 用户说"查看"

# ✅ 正确

triggers:

  - 用户说"查看竞品动态"或"竞品监控"

  - 每6小时竞品监控

坑2:delegate_task子Agent超时

症状:子Agent执行到一半卡住,主Agent一直等待,最终整个流水线失败。

原因:子Agent执行的web_search或web_extract需要的时间超过了默认超时。

修复

# 为不同子Agent设置不同超时

delegate_task(

    agent_name="researcher",

    prompt="...",

    timeout=900 # 研究员给15分钟(需要大量网络请求)

)

delegate_task(

    agent_name="writer",

    prompt="...",

    timeout=600 # 写手给10分钟

)

坑3:子Agent之间的文件传递格式不一致

症状:写手Agent读研究员Agent的输出时,因为格式不匹配导致信息丢失。

原因:没有在Skill中明确定义输出格式规范。

修复:在Skill的"输出格式"部分用具体模板约定格式:

## 输出格式(子Agent必须严格遵循)

{ "topic": "主题", "findings": [ {"title": "发现1", "source": "URL", "credibility": "✅|⚠️|❓"} ], "data_points": [ {"value": "具体数字", "unit": "单位", "source": "URL"} ] }

坑4:Cron任务依赖未处理

症状:内容生成任务在研究员任务完成前就启动了,结果基于空数据生成文章。

原因:Cron配置中depends_on参数虽然指定了依赖,但依赖任务失败时下游任务仍然执行。

修复

{

  "id": "content-generation",

  "depends_on": "morning-research",

  "depends_behavior": "skip_if_failed", // 关键:前置任务失败则跳过

  "schedule": "0 8 * * *"

}

坑5:Agent写入文件的路径权限问题

症状:Agent执行时报"Permission denied"无法写入文件。

原因:Hermes Agent运行用户对目标目录没有写权限。

修复

# 确保输出目录存在且有权限

mkdir -p /opt/hermes-home/projects/ai-neican/research/outputs

mkdir -p /opt/hermes-home/projects/ai-neican/content/outputs

mkdir -p /opt/hermes-home/projects/ai-neican/review/outputs

chmod -R 755 /opt/hermes-home/projects/ai-neican/

坑6:Skill文件中的Markdown格式错误导致解析失败

症状:Agent加载Skill时报错 Skill parse error: unexpected token

原因:Skill Markdown文件中的YAML front matter格式不正确,或Markdown语法有误。

修复清单

# 检查以下项目:

- [ ] front matter的 `---` 分隔符是否成对

- [ ] triggers中的列表项是否用 `- ` 开头(注意空格)

- [ ] 代码块是否用 ``` 正确闭合

- [ ] 特殊字符是否需要转义(如 `:` 在YAML中需要引号包裹)

常见问题(FAQ)

Q1:Hermes Agent和OpenClaw有什么区别?该选哪个?

A:两者都是AI Agent框架,核心差异在于:

  • Hermes Agent:更侧重Skill系统和内容创作流水线,对"一人公司"场景优化更好
  • OpenClaw:更侧重企业级多Agent编排和网关管理,适合团队协作场景

如果你的场景是内容创作+运营自动化,Hermes Agent更适合;如果是复杂的企业工作流编排,OpenClaw可能更合适。

Q2:Cron任务的最小间隔是多少?

A:理论上是1分钟,但建议不小于15分钟。原因:

  • Agent执行一个任务通常需要30秒到几分钟
  • 两个任务同时执行会竞争资源(API调用、文件写入)
  • 过于频繁的调度可能触发API限流

Q3:delegate_task最多能嵌套多少层?

A:官方没有硬性限制,但实测超过3层嵌套后,子Agent的上下文会显著膨胀,建议保持在2-3层以内。更深层的任务拆分建议用Cron串联而非delegate_task嵌套。

Q4:如何调试失败的Cron任务?

A:

# 1. 查看错误日志

hermes cron errors --job-id <job-id> --limit 5

# 2. 手动重新执行(失败任务的prompt)

hermes run --skill <skill-name> --prompt "上一次失败的prompt内容"

# 3. 查看详细输出

hermes cron output --job-id <job-id> --last

Q5:Skill如何版本管理?

A:建议:

# 在Git中管理Skill文件

cd ~/.hermes/skills

git init

git add *.md

git commit -m "v1.0: 初始Skill版本"

# 每次修改后提交

git add competitor-monitor.md

git commit -m "v1.1: 修复触发条件过于宽泛的问题"

Q6:多个Cron任务同时写入同一个文件会冲突吗?

A:会。Hermes Agent的文件写入是非原子的。解决方案:

  • 每个任务输出到独立文件名(加时间戳或任务ID)
  • 使用slug参数防止并发串文件
  • 汇总任务在所有上游任务完成后执行

总结

本文带你走完了从Skill创建到Cron调度的完整流程。核心要点回顾:

  1. Skill即能力:把重复性工作封装为Skill,一次编写,永久复用
  2. delegate_task即团队:复杂任务拆分为研究→写作→审核三阶段,子Agent各司其职
  3. Cron即引擎:定时调度让Agent真正24小时运转
  4. 踩坑即经验:6个常见陷阱和修复方案,帮你少走弯路

行动建议

  • 今天:创建一个简单的"日报生成"Skill(30分钟)
  • 本周:配置2-3个Cron任务,体验自动化流水线(2小时)
  • 本月:搭建完整的研究→写作→审核→发布多Agent体系(1天)

AI创业的本质是杠杆——用Agent放大你的产能。掌握Skill+Cron这套组合拳,你的一人公司就有了24小时运转的引擎。


#Agent工坊 #HermesAgent #自动化工作流 #一人公司

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

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