Hermes Kanban 多 Agent 编排:让多个 Agent 并行协作完成复杂任务
Hermes Kanban 是一块持久化任务板,多个命名 Agent 在上面认领、执行、交接工作——跨进程、跨重启、可追溯。本文拆解六列看板机制、九种协作模式、delegate_task 子代理委派、五种委派模式、Kanban Codex Lane、Orchestrator 铁律,以及四个用户故事的完整实操步骤,附 8 问 FAQ。
Hermes Agent 定时任务完全实战:用 context_from 串联多阶段流水线、用 wakeAgent 门控实现零成本高频轮询、用 no-agent 模式做纯脚本看门狗,外加 17 个官方模板分类解读和 5 个可直接复制的完整配方。
Hermes Agent 的定时任务(Cron)让 AI 在你睡觉时替你干活:每天定时采集情报、按条件判断是否需要处理、多阶段流水线自动衔接、结果投递到你指定的任何平台。三个典型场景——每日 AI 新闻简报自动推送到 Telegram、SSL 证书到期前 14 天告警零成本运行、竞品仓库有新动态时自动生成分析报告。
本文完整覆盖 Hermes Cron 子系统的核心机制和实战配方。如果你还没部署 Hermes Agent,建议先阅读 Hermes Agent 完全指南 完成基础搭建。
Hermes 支持三种方式创建定时任务,核心是统一的 cronjob 工具:
方式一:聊天中用斜杠命令
/cron add 30m "Remind me to check the build"
/cron add "every 2h" "Check server status"
/cron add "every 1h" "Summarize new feed items" --skill blogwatcher
方式二:独立 CLI 命令
hermes cron create "every 2h" "Check server status"
hermes cron create "every 1h" "Summarize" --skill blogwatcher --name "feed-summary"
方式三:自然语言对话
直接告诉 Hermes 你要什么,它自动转换为定时任务:
Every morning at 9am, check Hacker News for AI news and send me a summary on Telegram.
三种方式效果完全等价,Hermes 内部都通过统一的 cronjob 工具执行。
| 格式 | 示例 | 行为 |
|---|---|---|
| 相对延迟 | 30m、2h、1d |
一次性执行 |
| 间隔 | every 30m、every 2h |
永续循环 |
| 标准 Cron 表达式 | 0 9 * * *(每天 9:00) |
五段式精确控制 |
| 工作日限定 | 0 9 * * 1-5 |
仅周一到周五 |
| ISO 时间戳 | 2026-03-15T09:00:00 |
一次性精确时间 |
间隔和 Cron 表达式默认永远运行,可通过 repeat=N 限制执行次数。
创建任务时用 --deliver 指定结果投递到哪里:
| 目标 | 说明 |
|---|---|
origin |
返回创建任务的原始聊天(消息平台默认) |
local |
保存到本地 ~/.hermes/cron/output/(CLI 默认) |
telegram |
Telegram 主频道 |
telegram:123456 |
指定 Telegram 聊天 ID |
discord |
Discord 主频道 |
discord:#engineering |
指定 Discord 频道 |
slack / email / sms |
各平台主频道 |
telegram,discord |
多平台广播(逗号分隔) |
all |
广播到所有已连接的主频道 |
支持的平台超过 15 个,包括 WhatsApp、Signal、Matrix、飞书、企业微信、钉钉、Home Assistant 等。
| 操作 | 命令 | 说明 |
|---|---|---|
| 列表 | hermes cron list |
查看所有任务、状态和下次运行时间 |
| 暂停 | hermes cron pause <id或名称> |
保留任务但停止调度 |
| 恢复 | hermes cron resume <id或名称> |
重新启用 |
| 手动触发 | hermes cron run <id或名称> |
在下次 tick 立即执行 |
| 编辑 | hermes cron edit <id> --schedule "0 8 * * *" |
修改调度时间 |
| 移除 | hermes cron remove <id或名称> |
永久删除 |
| 状态 | hermes cron status |
检查调度器是否运行 |
所有操作支持按名称查找(大小写不敏感),不用记十六进制 ID。

Cron 任务运行在完全隔离的会话中,没有前次运行的记忆。但实际场景中,经常需要前一个任务的输出作为下一个任务的输入——采集数据后筛选,筛选后格式化,格式化后发布。
传统方案是手动在提示词里写「读某个文件」,或者用共享目录中转。Hermes 的 context_from 参数直接解决这个问题:任务 B 运行时,自动获得任务 A 的最近一次成功输出作为上下文前缀。
任务 A 执行完成 → 输出存入 ~/.hermes/cron/output/{job_a_id}/
↓
任务 B 触发时 → 自动读取任务 A 的最近输出 → 前缀到任务 B 的提示词
↓
任务 B 的 Agent 直接看到上游数据 → 无需硬编码文件路径
三个定时任务通过 context_from 自动串联,上游输出作为下游的上下文前缀注入:
提示词:生成三阶段 AI 新闻流水线的 Cron 任务
请帮我用 Hermes cronjob 工具创建三级流水线。要求:
0 7 * * *)采集 Hacker News 前 10 条 AI/ML 新闻,输出编号列表(标题、URL、一句话摘要)30 7 * * *),context_from 设为 "AI News Collector",对每条新闻按互动潜力和新颖度评分 1-10,只保留两项均 ≥ 7 的条目,输出排名列表附评分和理由0 8 * * *),context_from 设为 "AI News Triage",为入围新闻生成推文草稿(hook 行、核心洞察、URL、标签),无合格新闻时以 [SILENT] 开头回复| 格式 | 用法 |
|---|---|
| 单任务(字符串) | context_from="AI News Collector" |
| 多任务(列表) | context_from=["task-a", "task-b"] |
多任务引用时,输出按列表顺序拼接——实现扇入(fan-in)模式:一个下游任务聚合多个上游的结果。

高频轮询(每 1-5 分钟)场景下,绝大多数 tick 其实没有新内容需要处理。如果每次都启动 Agent 进行推理,月底账单会很难看。
wakeAgent 门控机制让脚本在 Agent 启动之前决定本次是否需要调用——脚本判断没有新状态时,直接跳过 Agent,零 LLM 调用、零 token 消耗、零成本。
调度 tick → 运行预检查脚本 → stdout 最后一行输出 JSON
↓
{"wakeAgent": false} → 跳过 Agent,静默结束
{"wakeAgent": true} → 正常唤醒 Agent 处理
{"wakeAgent": true, "context": {...}} → 唤醒并传递数据
只有当目标文件被修改时才唤醒 Agent。脚本通过比较文件的修改时间戳与上次记录来判断是否有变化:
提示词:生成文件变更检测门控脚本
请帮我生成 ~/.hermes/scripts/feed-changed.sh,用于 Hermes Cron 预运行门控。要求:
$HOME/data/feed.json$HOME/.hermes/scripts/.feed-changed.last 记录上次检测的 mtimestat 获取目标文件的修改时间(注意 Linux 用 stat -c %Y,macOS 用 stat -f %m){"wakeAgent": false}{"wakeAgent": true}其他系统通过创建标志文件通知 Hermes「有新数据了」。门控脚本检测标志文件是否存在,存在则删除并唤醒,不存在则跳过:
提示词:生成外部标志位门控脚本
请帮我生成 ~/.hermes/scripts/flag-ready.sh,用于 Hermes Cron 预运行门控。要求:
/tmp/new-data-ready 标志文件是否存在rm -f),输出 {"wakeAgent": true}{"wakeAgent": false}touch /tmp/new-data-ready 即可触发 Agent数据库有新数据时才唤醒,并把新增行数通过 context 字段传给 Agent,减少 Agent 重复查询:
提示词:生成数据库行数检查门控脚本
请帮我生成 ~/.hermes/scripts/new-rows.py(Python 3),用于 Hermes Cron 预运行门控。要求:
/home/me/data/app.db)messages 表的新行数(WHERE ts > strftime('%s','now','-2 hours')){"wakeAgent": false}{"wakeAgent": true, "context": {"new_rows": N}},将行数传递给 AgentwakeAgent 字段缺省时默认 true——即照常唤醒 Agentcontext 字段可携带任意数据传递给 Agent,减少 Agent 重复查询假设每 5 分钟轮询一次、每天 288 次 tick、每月 8,640 次:
| 方案 | 月度 Agent 调用 | 月度成本 |
|---|---|---|
| 无门控(每次都调 Agent) | 8,640 | 按模型定价计算 |
| 有门控(日均 2 次真实变更) | ~60 | 减少 99.3% |
| no-agent 纯脚本 | 0 | $0 |

有些定时任务根本不需要 AI 推理——内存超标了告警一下、磁盘快满了通知一声、SSL 证书快到期了提醒一下。这些场景用脚本就能搞定,只需要一个靠谱的调度器和投递通道。
Hermes 的 no-agent 模式(--no-agent)正是为此设计:
调度 tick → 运行脚本 → 有输出?投递 / 无输出?静默
| 脚本行为 | 结果 |
|---|---|
| exit 0 + 非空 stdout | stdout 原样投递 |
| exit 0 + 空 stdout | 静默 tick,不投递 |
exit 0 + stdout 含 {"wakeAgent": false} |
静默 tick |
| 非零退出码 | 错误告警投递(坏掉的看门狗不会无声失败) |
| 脚本超时 | 错误告警投递 |
关键设计:非零退出码始终投递错误告警。这意味着看门狗本身出了问题,你一定会收到通知。
CLI 创建:
用 no-agent 模式创建一个内存看门狗,每 5 分钟检查一次,超过阈值时告警:
提示词:生成内存看门狗脚本和 Cron 任务
请帮我完成两步操作:
~/.hermes/scripts/memory-watchdog.sh 脚本:用 free 命令计算内存使用百分比,超过 85% 时输出 "RAM {百分比}% on {hostname}",未超过时不输出任何内容(空 stdout = 静默 tick)hermes cron create "every 5m",参数 --no-agent、--script memory-watchdog.sh、--deliver telegram、--name "memory-watchdog"chmod +x聊天创建(Hermes 自动判断适合 no-agent):
Ping me on Telegram if RAM is over 85%, every 5 minutes.
Hermes 会自动完成:写脚本到 ~/.hermes/scripts/ → 调用 cronjob(no_agent=True) → 配置投递。
~/.hermes/scripts/~/ 展开和路径遍历(../)均被拒绝.sh/.bash 用 /bin/bash,其他用 Python| 场景 | 频率 | 说明 |
|---|---|---|
| 内存/磁盘/GPU 看门狗 | 每 5 分钟 | 超阈值才告警,其余静默 |
| 服务端点健康检查 | 每 30 分钟 | 宕机时推送,正常时静默 |
| SSL 证书到期监控 | 每天一次 | 14 天内到期才通知 |
| CI 部署通知 | 触发式 | 部署完成发送 commit SHA |
| 定期业务指标 | 每天一次 | Stripe 收入汇总 |
| 心跳检测 | 每 10 分钟 | 证明主机存活 |
判断标准很简单——输出内容是否需要推理。如果脚本能直接计算出最终要发的消息(阈值比较、字符串拼接、数据格式化),用 no-agent。如果输出需要理解语义、做总结、写分析,用标准 Agent 模式。
两种模式共存于同一个调度器中,暂停、恢复、列表、日志、投递的管理命令完全通用,不需要为不同模式维护不同的工具链。
脚本每 15 分钟检查根分区和 /home 分区的使用率,超过阈值时输出告警文本触发投递,未超过时不输出任何内容——空 stdout 等于静默 tick。
提示词:生成磁盘空间告警脚本和 Cron 任务
请帮我完成两步操作:
~/.hermes/scripts/disk-alert.sh 脚本:用 df -h 检查根分区 / 和 /home 分区,阈值设为 90%,使用 awk 提取使用率百分比,超过阈值时输出 "Disk {使用率} full on {挂载点}",未超过时不输出hermes cron create "*/15 * * * *",参数 --no-agent、--script disk-alert.sh、--deliver telegram、--name "disk-alert"chmod +x定时任务最大的痛点是通知轰炸——每隔几小时收到一条「一切正常」的消息,很快就会把通知渠道变成噪声源。
Hermes 的解决方案:当 Agent 最终响应以 [SILENT] 开头时,投递被完全抑制。
提示词末尾加一句:
"If everything is healthy and there's nothing to report, respond with [SILENT]."
效果:
[SILENT] All systems normal → 不发消息~/.hermes/cron/output/ 供事后审计[SILENT] 影响这让你可以放心设置高频率任务——只有真正需要你关注的结果才会打扰你。
Cron 任务默认运行在隔离环境中,不加载任何项目级的 AGENTS.md、CLAUDE.md 或 .cursorrules。
通过 --workdir 参数改变这一行为:
hermes cron create "0 9 * * 1-5" \
"Audit open PRs, summarize CI health, and post to #eng" \
--workdir /home/me/projects/acme \
--deliver "discord:#engineering"
绑定后的效果:
| 项 | 说明 |
|---|---|
| 系统提示词 | 项目的 AGENTS.md、CLAUDE.md、.cursorrules 自动注入 |
| 工具工作目录 | terminal、read_file、write_file、search_files 以该目录为基准 |
| 上下文理解 | Agent 天然了解项目结构,无需在提示词中解释文件布局 |
重要限制:带 workdir 的任务在调度 tick 内串行执行(非并行池),防止终端状态互相污染。路径必须是存在的绝对目录。
通过 --profile <name> 让任务使用独立的 Hermes 配置(不同的 .env、config.yaml、HERMES_HOME):
hermes cron create "0 3 * * *" \
"Tail the security log and flag anomalies" \
--profile night-ops
适用场景:不同项目使用不同的模型、不同的 API Key、不同的投递目标。

Hermes 官方提供了 17 个经过验证的自动化模板,覆盖三种触发类型(定时调度、GitHub 事件、API 调用)和五大场景。
| 模板 | 触发 | 做什么 |
|---|---|---|
| Nightly Backlog Triage | 每晚 2:00 | 对新 Issue 打优先级标签 P0-P3,按 bug/feature/docs/security 分类 |
| Automatic PR Code Review | GitHub Webhook | 自动审查新 PR,检查安全/性能/代码质量,投递审查评论 |
| Docs Drift Detection | 每周一 9:00 | 扫描已合并 PR,检测代码变更是否遗漏了文档更新 |
| Dependency Security Audit | 每天 6:00 | 运行 pip audit + npm audit,报告 CVSS >= 7.0 的漏洞 |
| 模板 | 触发 | 做什么 |
|---|---|---|
| Deploy Verification | API 调用 | CI/CD 部署后自动烟雾测试,验证健康端点和版本号 |
| Alert Triage | API 调用 | 接收 Datadog/PagerDuty 告警,关联近期变更,生成分诊摘要 |
| Uptime Monitor | 每 30 分钟 | 脚本检查多端点可用性,仅宕机时通知([SILENT] 模式) |
| 模板 | 触发 | 做什么 |
|---|---|---|
| Competitive Repository Scout | 每天 8:00 | 监控竞品仓库的 PR、Issue 和 Release |
| AI News Digest | 每周一 9:00 | 搜索 AI 新闻、GitHub 趋势仓库、arXiv 论文,生成周报 |
| Paper Digest with Notes | 每天 8:00 | 搜索 arXiv 论文,用 Obsidian Skill 保存笔记 |
| 模板 | 触发 | 做什么 |
|---|---|---|
| Issue Auto-Labeling | GitHub Webhook | 新 Issue 自动打标签、发初始回复 |
| CI Failure Analysis | GitHub Webhook | CI 失败时分析日志、定位原因、建议修复 |
| Auto-Port Changes | GitHub Webhook | PR 合并后自动移植到其他仓库 |
| 模板 | 触发 | 做什么 |
|---|---|---|
| Stripe Payment Monitoring | API 调用 | 监控支付失败和争议事件 |
| Daily Revenue Summary | 每天 8:00 | 编译每日业务指标 |
| 模板 | 触发 | 做什么 |
|---|---|---|
| Security Audit Pipeline | 每周日 3:00 | 组合多 Skill 进行全面安全审计 |
| Content Pipeline | 每周三 10:00 | 研究趋势话题、生成博文大纲 |
不要照搬模板——它们是起点不是终点。根据你的实际需求调整:
[SILENT] 逻辑——没事别发消息Hermes 还有另一个自动化机制——持久目标(Persistent Goals),与 Cron 形成互补:
| 维度 | Cron | Persistent Goals |
|---|---|---|
| 触发方式 | 时间驱动(定时调度) | 目标驱动(达标即停) |
| 会话模型 | 每次全新会话 | 同一会话跨轮次持续 |
| 典型时长 | 分钟级单次执行 | 可能跨越数小时 |
| 适用场景 | 循环监控、定时报告 | 复杂重构、迭代式搜索 |
| 成本模式 | 单次 Agent 调用 | 最多 20 轮迭代 |
组合用法:Cron 任务按计划触发,内部设定 Goal 驱动迭代。例如每天 9:00 的 Cron 任务,Goal 设为「找到 3 条值得写推文的 AI 新闻」——Agent 自动迭代直到找齐。

理解底层有助于排障。Gateway 守护进程每 60 秒 tick 一次调度器:
~/.hermes/cron/jobs.json 加载任务列表next_run_at 是否到期AIAgent 会话文件锁 ~/.hermes/cron/.tick.lock 防止重叠的调度 tick 重复运行同批任务。
任务定义存储在 ~/.hermes/cron/jobs.json 中,使用原子文件写入(写入临时文件后重命名)防止并发损坏。每次任务执行的输出保存到 ~/.hermes/cron/output/{job_id}/{timestamp}.md,可用于 context_from 链接和事后审计。
默认情况下,Hermes 会在投递消息中包含标题和页脚,标识该消息来自定时任务而非实时对话。可通过 cron.wrap_response: false 关闭这个包装,让消息看起来和普通对话一样。
Cron 执行的会话无法递归创建更多 Cron 任务——Hermes 在 Cron 执行内部禁用 Cron 管理工具,防止失控的调度循环。这是一个有意为之的安全边界:如果 Agent 能在定时任务中创建新的定时任务,很容易产生指数级膨胀的调度链,最终耗尽所有资源。
通过 enabled_toolsets 逐任务控制可用工具:
cronjob(
action="create",
name="weekly-news-summary",
schedule="every sunday 9am",
enabled_toolsets=["web", "file"], # 只给 web 搜索和文件读写
prompt="Summarize this week's AI news..."
)
优先级:任务级 enabled_toolsets > hermes tools 平台配置 > 内置默认。
Cron 任务继承配置的模型降级策略和凭据池轮换。主 API Key 限流时,自动降级到备选 Provider 或轮换到凭据池中的下一个 Key。
实际效果:早上 8 点多个 Cron 任务集中触发,主模型配额用完时,任务自动切换到备选模型继续执行,不会因为限流失败。

每天自动采集、筛选、生成推文草稿,投递到 Telegram 和 Discord:
提示词:生成三级 AI 新闻流水线 Cron 任务
请帮我用 hermes cron create 创建三级流水线。要求:
0 7 * * *),搜索 Hacker News、Reddit r/MachineLearning 和 arXiv 的 AI Agent 新闻,聚焦开源框架/工具使用突破/多 Agent 系统,输出编号列表(标题、URL、一句话摘要),--deliver local30 7 * * *),--context-from "ai-news-collect",按互动潜力和新颖度两轴评分 1-10,只保留两项均 ≥ 7 的条目,输出排名列表附评分和理由,--deliver local0 8 * * *),--context-from "ai-news-triage",为每条入围新闻写推文草稿(hook 行 < 50 字符、核心洞察 1-2 句、URL、标签最多 3 个),无合格新闻时以 [SILENT] 开头回复,--deliver "telegram,discord"设计要点:
context_from 串联,上游输出自动注入下游[SILENT]——没有合格新闻时不打扰每天检查所有域名 SSL 证书,14 天内到期才告警,全年运行成本 $0:
用 no-agent 模式实现零成本 SSL 监控——脚本直接检查证书有效期,无需 AI 参与:
提示词:生成 SSL 证书到期监控脚本和 Cron 任务
请帮我完成两步操作:
~/.hermes/scripts/ssl-check.sh,set -euo pipefail。要求:example.com api.example.com docs.example.com)和阈值变量(14 天)openssl s_client 连接 443 端口获取证书到期时间openssl x509 -noout -enddate 提取到期日期,计算剩余天数date -j -f)和 Linux(date -d)的日期解析"SSL WARNING: {域名} expires in {天数} days"{"wakeAgent": false}(静默跳过),有告警输出告警文本(触发投递)hermes cron create "0 9 * * *",参数 --no-agent、--script ssl-check.sh、--deliver telegram、--name "ssl-expiry-watch"chmod +x设计要点:
{"wakeAgent": false} 静默跳过工作日每天 9 点检查项目 PR 和 CI 状态,全绿时静默:
工作日每天 9 点自动审计项目 PR 和 CI 状态,全绿时静默不打扰:
提示词:生成项目级 CI 健康巡检 Cron 任务
请帮我用 hermes cron create 创建 CI 健康巡检任务。要求:
"0 9 * * 1-5"(仅工作日)gh pr list --state open --limit 10 汇总未合并 PR;②用 gh run list --limit 5 报告 CI 通过/失败率;③检查是否有 PR 超过 7 天未 review;④将结果发布到 #eng 频道[SILENT] 开头回复--name "morning-ci-health"--workdir 绑定项目目录(Agent 自动加载 AGENTS.md/CLAUDE.md 理解项目结构)--skill github-pr-workflow(挂载 GitHub Skill 增强能力)--deliver "discord:#engineering"每天早上监控竞品的新 PR 和 Issue,有重要动态时生成分析报告:
提示词:生成竞品仓库监控 Cron 任务
请帮我用 hermes cron create "0 8 * * *" 创建竞品监控任务。要求:
anthropics/claude-code、openai/codex、All-Hands-AI/OpenHands、aider-chat/aidergh 命令:①gh pr list --repo REPO --state all --limit 10 --json number,title,createdAt;②gh issue list --repo REPO --state open --limit 5 --json number,title,labels;③gh release list --repo REPO --limit 3[SILENT] 开头回复--name "competitor-scout"--deliver "telegram,discord:#research"设计要点:
在 macOS 上部署 Gateway 并让 Cron 任务与知识库目录联动:
pipx install "hermes-agent[messaging]"
hermes gateway install
plutil -replace WorkingDirectory \
-string "$HOME/projects/knowledge-base" \
~/Library/LaunchAgents/ai.hermes.gateway.plist
前三步完成安装、注册 launchd 服务和修补工作目录后,还需要重启 Gateway、验证状态并创建绑定知识库的 Cron 任务:
提示词:完成 macOS Gateway 部署和知识库联动
请帮我完成 Hermes Gateway macOS 部署的后续步骤。要求:
hermes gateway restarthermes cron status 和 hermes cron listinbox/todo.md,汇总标记为 urgent 或 overdue 的条目,无紧急事项时以 [SILENT] 回复--name "kb-todo-check"、--deliver telegram关键踩坑点:
hermes gateway install 每次执行都会从内置模板重新生成 plist,覆盖你手工设的 WorkingDirectory。每次升级或重装 Gateway 后必须重新修补。WorkingDirectory 决定了所有 Cron 任务中相对路径的基准。设置为知识库根目录后,任务中 read_file('inbox/todo.md') 直接落在知识库里。stat -c %Y 不可用,门控脚本需改用 stat -f %m 获取修改时间。Cron 任务可以挂载一个或多个 Skill,让 Agent 在执行时拥有额外能力。
cronjob(
action="create",
skill="blogwatcher",
prompt="Check the configured feeds and summarize anything new.",
schedule="0 9 * * *",
name="Morning feeds",
)
cronjob(
action="create",
skills=["blogwatcher", "maps"],
prompt="Look for new local events and interesting nearby places.",
schedule="every 6h",
name="Local brief",
)
| Skill | 功能 | Cron 搭配场景 |
|---|---|---|
blogwatcher |
RSS/Atom 源监控 | 每日早报、内容趋势追踪 |
github-pr-workflow |
PR 生命周期管理 | 自动 Code Review |
youtube-content |
YouTube 视频分析 | 竞品频道监控 |
obsidian |
Obsidian 笔记读写 | 论文摘要自动存档 |
kanban-orchestrator |
看板式任务编排 | 定时任务巡检 |
定时任务的提示词在创建和更新时自动扫描:
包含以上模式的提示词会被直接阻止。
| 项 | 路径 |
|---|---|
| 任务定义 | ~/.hermes/cron/jobs.json(原子写入) |
| 任务输出 | ~/.hermes/cron/output/{job_id}/{timestamp}.md |
| 脚本目录 | ~/.hermes/scripts/ |
| 调度锁 | ~/.hermes/cron/.tick.lock |
任务存储使用原子文件写入(写入临时文件后重命名),防止并发损坏。
Cron 任务在完全全新的会话中运行——没有之前对话的记忆、没有聊天历史、没有上下文。提示词必须包含 Agent 完成任务所需的一切。
错误写法:
Do my usual morning briefing.
Agent 不知道「usual」是什么。
正确写法:
Search the web for the latest news about AI agents and open source LLMs.
Find at least 5 recent articles from the past 24 hours.
Summarize the top 3 most important stories in a concise daily briefing format.
For each story include: a clear headline, a 2-sentence summary, and the source URL.
Use a friendly, professional tone.
Format with bullet points and end with a total story count.
具体到:搜索什么、多少篇、什么格式、什么语气、输出结构。
Reddit 社区中最受欢迎的 Cron 用例是每日简报。一位用户分享了完整的晨间自动化配置:
NousResearch/hermes-agent 仓库最近 24 小时的提交,分页遍历所有页,投递变更摘要这种配置的价值在于:你每天早上打开 Telegram 就能看到今天的完整日程 + 关注领域的最新动态,不需要手动打开日历、GitHub、新闻网站逐一检查。
无 Agent 模式的经典场景:
这些任务全年运行成本为零——纯脚本执行,只有出问题时才投递告警。
多阶段流水线是 Hermes Cron 最能体现差异化的场景:
| 原则 | 说明 |
|---|---|
| 提示词必须自包含 | 不依赖对话历史,写清搜什么、多少篇、什么格式 |
| 频率匹配信息密度 | 新闻简报一天一次够用,系统告警需要分钟级 |
| 默认加静默 | 每个任务都考虑 [SILENT],只有真正有事才通知 |
| 先手动测试再自动化 | 先在对话中跑一次确认效果,再创建 Cron 任务 |
| 给任务起好名字 | 所有管理命令支持按名称操作,好名字比记 ID 轻松 |
| 维度 | Hermes Cron | OS crontab | n8n / Make |
|---|---|---|---|
| 调度能力 | 内建 | 内建 | 内建 |
| Agent 推理 | 原生集成 | 无 | 需外接 API |
| 任务链衔接 | context_from 自动 |
手动文件中转 | 连线拖拽 |
| 智能门控 | wakeAgent |
无 | 条件节点 |
| 零 LLM 模式 | --no-agent |
默认如此 | 需跳过 AI 节点 |
| 多平台投递 | 15+ 目标内建 | 需自写 | 需配节点 |
| 静默抑制 | [SILENT] |
自行实现 | 需配条件 |
| 项目上下文 | --workdir |
无 | 无 |
| 部署成本 | 自托管免费 | 免费 | SaaS 按量 |
Hermes Cron 的核心优势是 Agent 推理与调度的原生融合——不是「脚本写完了调个 API」,而是「AI 直接理解任务语义并决策输出」。
最常见的原因是 Gateway 没有运行。检查步骤:
# 检查调度器状态
hermes cron status
# 如果显示未运行,重启 Gateway
hermes gateway restart
# macOS 上确认 launchd 服务状态
launchctl list | grep hermes
按顺序排查:
hermes cron list 查看任务的 deliver 字段~/.hermes/cron/output/{job_id}/ 最近的文件,确认是否以 [SILENT] 开头hermes cron run <任务名> 观察执行过程检查上游任务是否成功执行过。context_from 读取的是上游最近一次成功完成的输出。如果上游从未成功执行(没有产出 ~/.hermes/cron/output/{job_id}/ 下的文件),下游任务正常运行但不会有额外上下文。
确认脚本位于 ~/.hermes/scripts/ 目录下,并且有执行权限(chmod +x)。脚本的 {"wakeAgent": false} 必须出现在 stdout 的最后一行——如果脚本在 JSON 之后还有其他输出,门控判断会失效。
每次运行 hermes gateway install 都会从模板重新生成 plist 文件。解决方案是在每次 install 之后立即执行 plutil -replace WorkingDirectory 修补,然后 gateway restart。建议把这三步写成一个小脚本,每次升级 Hermes 后运行。
操作系统 crontab 只负责按时运行脚本,输出靠你自己处理。Hermes Cron 在此基础上集成了 Agent 推理层(可选开启或关闭)、多平台投递路由(Telegram/Discord/邮件等 15+ 目标)、context_from 任务链自动衔接上下游输出、wakeAgent 门控按条件跳过调用、以及 Skill 挂载实现工具增强。简单说:crontab 管调度,Hermes Cron 管调度 + 推理 + 投递 + 串联。
取决于模式。no-agent 纯脚本模式零 LLM 调用,成本为 $0。带 wakeAgent 门控的任务,只在门控脚本判定需要唤醒时才调用 Agent——未唤醒的 tick 成本为 $0。常规 Agent 任务每次执行消耗一次模型推理费用,具体金额取决于你配置的模型和任务复杂度。三种模式组合使用可以把月度成本控制在极低水平。
没有硬性级数限制。你可以按 Job 1 → Job 2 → Job 3 → ... 任意延伸。每一级读取的是上游最近一次成功完成的输出,不会等待同一 tick 内正在运行的上游任务。实际建议控制在 3-5 级以内——超过 5 级的流水线通常意味着中间环节可以合并。
非零退出码时,Hermes 视为错误状态并投递错误告警——坏掉的看门狗不会无声失败。wakeAgent 字段缺省时默认 true,即照常唤醒 Agent。设计原则是:宁可多唤醒一次,不能漏掉真正需要处理的事件。
默认不可以——Cron 任务运行在隔离会话中,不加载任何项目级配置。通过 --workdir 参数指定项目目录后,AGENTS.md、CLAUDE.md、.cursorrules 会自动注入系统提示词,终端和文件工具也以该目录为工作目录。需要注意带 workdir 的任务在调度 tick 内串行执行。
运行 hermes gateway install 注册 launchd 服务。关键踩坑点:每次执行 gateway install 会从内置模板重新生成 plist,覆盖手工修改的 WorkingDirectory。自定义工作目录时,每次安装后需用 plutil -replace WorkingDirectory -string '/your/path' 修补,然后 hermes gateway restart 生效。
Agent 最终响应以 [SILENT] 开头时,投递被完全抑制——不发消息到任何平台。输出仍保存在本地供审计。解决定时任务的通知轰炸问题:只有真正需要关注的结果才会打扰你。注意失败的任务始终投递错误告警,不受 [SILENT] 影响。
可以组合。Cron 是时间驱动(按计划触发全新会话),Persistent Goals 是目标驱动(同一会话内跨轮次持续直到达标)。组合用法:Cron 按计划触发任务,内部设定 Goal 驱动迭代。例如每天 9:00 的 Cron 任务,Goal 设为「找到 3 条值得写推文的 AI 新闻」,Agent 自动迭代直到找齐——比单纯的「搜一次就完」更可靠。
每周精选 AI 编程与自动化实战内容,直达你的邮箱