字节笔记本
2026年6月21日
hermes教程-自动化蓝图
开发工作流
夜间积压任务分类
每晚对新的 issue 进行标记、优先级排序和总结,并将摘要发送到团队频道。
触发器: 定时(夜间)
hermes cron create "0 2 * * *" \
"你是一个项目经理,负责对 NousResearch/hermes-agent GitHub 仓库进行积压任务分类。
1. 运行:gh issue list --repo NousResearch/hermes-agent --state open --json number,title,labels,author,createdAt --limit 30
2. 识别过去 24 小时内创建的 issue
3. 对于每个新 issue:
- 建议一个优先级标签(P0-critical、P1-high、P2-medium、P3-low)
- 建议一个类别标签(bug、feature、docs、security)
- 写一行分类说明
4. 总结:总开放 issue 数、今日新增数、按优先级分布
格式化为清晰的摘要。如果没有新 issue,则回复 [SILENT]。" \
--name "夜间积压任务分类" \
--deliver telegram自动 PR 代码审查
每当拉取请求被打开时自动进行审查,并将审查评论直接发布在 PR 上。
触发器: GitHub webhook
选项 A — 动态订阅(CLI):
hermes webhook subscribe github-pr-review \
--events "pull_request" \
--prompt "审查此拉取请求:
仓库:{repository.full_name}
PR #{pull_request.number}:{pull_request.title}
作者:{pull_request.user.login}
操作:{action}
差异 URL:{pull_request.diff_url}
使用以下命令获取差异:curl -sL {pull_request.diff_url}
审查要点:
- 安全问题(注入、认证绕过、代码中的密钥)
- 性能问题(N+1 查询、无界循环、内存泄漏)
- 代码质量(命名、重复、错误处理)
- 新行为缺少测试
发布简洁的审查意见。如果 PR 只是简单的文档/拼写更改,简要说明即可。" \
--skill github-code-review \
--deliver github_comment选项 B — 静态路由(config.yaml):
platforms:
webhook:
enabled: true
extra:
port: 8644
secret: "your-global-secret"
routes:
github-pr-review:
events: ["pull_request"]
secret: "github-webhook-secret"
prompt: |
审查 PR #{pull_request.number}:{pull_request.title}
仓库:{repository.full_name}
作者:{pull_request.user.login}
差异 URL:{pull_request.diff_url}
审查安全、性能和代码质量。
skills: ["github-code-review"]
deliver: "github_comment"
deliver_extra:
repo: "{repository.full_name}"
pr_number: "{pull_request.number}"然后在 GitHub 中:Settings → Webhooks → Add webhook → Payload URL:http://your-server:8644/webhooks/github-pr-review,Content type:application/json,Secret:github-webhook-secret,Events:Pull requests。
文档漂移检测
每周扫描已合并的 PR,发现需要更新文档的 API 变更。
触发器: 定时(每周)
hermes cron create "0 9 * * 1" \
"扫描 NousResearch/hermes-agent 仓库,检测文档漂移。
1. 运行:gh pr list --repo NousResearch/hermes-agent --state merged --json number,title,files,mergedAt --limit 30
2. 筛选出过去 7 天内合并的 PR
3. 对于每个合并的 PR,检查它是否修改了:
- 工具模式(tools/*.py)——可能需要更新 docs/reference/tools-reference.md
- CLI 命令(hermes_cli/commands.py、hermes_cli/main.py)——可能需要更新 docs/reference/cli-commands.md
- 配置选项(hermes_cli/config.py)——可能需要更新 docs/user-guide/configuration.md
- 环境变量——可能需要更新 docs/reference/environment-variables.md
4. 交叉引用:对于每个代码变更,检查同一 PR 中是否也更新了相应的文档页面
报告任何代码变更但文档未更新的差距。如果一切同步,则回复 [SILENT]。" \
--name "文档漂移检测" \
--deliver telegram依赖安全审计
每日扫描项目依赖中的已知漏洞。
触发器: 定时(每日)
hermes cron create "0 6 * * *" \
"对 hermes-agent 项目运行依赖安全审计。
1. cd ~/.hermes/hermes-agent && source .venv/bin/activate
2. 运行:pip audit --format json 2>/dev/null || pip audit 2>&1
3. 运行:npm audit --json 2>/dev/null(如果存在 website/ 目录)
4. 检查是否存在 CVSS 评分 >= 7.0 的 CVE
如果发现漏洞:
- 列出每个漏洞的包名、版本、CVE ID、严重程度
- 检查是否有可用的升级
- 注明是直接依赖还是传递依赖
如果没有漏洞,则回复 [SILENT]。" \
--name "依赖审计" \
--deliver telegramDevOps 与监控
部署验证
每次部署后触发冒烟测试。你的 CI/CD 管道在部署完成时向 webhook 发送 POST 请求。
触发器: API 调用(webhook)
hermes webhook subscribe deploy-verify \
--events "deployment" \
--prompt "刚刚完成一次部署:
服务:{service}
环境:{environment}
版本:{version}
部署者:{deployer}
执行以下验证步骤:
1. 检查服务是否响应:curl -s -o /dev/null -w '%{http_code}' {health_url}
2. 搜索近期日志中的错误:检查部署负载中是否有任何错误指示
3. 验证版本是否匹配:curl -s {health_url}/version
报告:部署状态(健康/降级/失败)、响应时间、发现的任何错误。
如果健康,保持简短。如果降级或失败,提供详细诊断。" \
--deliver telegram你的 CI/CD 管道触发它:
curl -X POST http://your-server:8644/webhooks/deploy-verify \
-H "Content-Type: application/json" \
-H "X-Hub-Signature-256: sha256=$(echo -n '{"service":"api","environment":"prod","version":"2.1.0","deployer":"ci","health_url":"https://api.example.com/health"}' | openssl dgst -sha256 -hmac 'your-secret' | cut -d' ' -f2)" \
-d '{"service":"api","environment":"prod","version":"2.1.0","deployer":"ci","health_url":"https://api.example.com/health"}'告警分类
将监控告警与最近的变更关联起来,草拟响应。适用于 Datadog、PagerDuty、Grafana 或任何可以 POST JSON 的告警系统。
触发器: API 调用(webhook)
hermes webhook subscribe alert-triage \
--prompt "收到监控告警:
告警:{alert.name}
严重程度:{alert.severity}
服务:{alert.service}
消息:{alert.message}
时间戳:{alert.timestamp}
调查:
1. 在网上搜索此错误模式的已知问题
2. 检查是否与最近的部署或配置变更相关
3. 草拟分类摘要,包括:
- 可能的根本原因
- 建议的初步响应步骤
- 升级建议(P1-P4)
保持简洁。此消息将发送到值班频道。" \
--deliver slack正常运行时间监控
每 30 分钟检查端点。仅在出现故障时通知。
触发器: 定时(每 30 分钟)
import urllib.request, json, time
ENDPOINTS = [
{"name": "API", "url": "https://api.example.com/health"},
{"name": "Web", "url": "https://www.example.com"},
{"name": "Docs", "url": "https://docs.example.com"},
]
results = []
for ep in ENDPOINTS:
try:
start = time.time()
req = urllib.request.Request(ep["url"], headers={"User-Agent": "Hermes-Monitor/1.0"})
resp = urllib.request.urlopen(req, timeout=10)
elapsed = round((time.time() - start) * 1000)
results.append({"name": ep["name"], "status": resp.getcode(), "ms": elapsed})
except Exception as e:
results.append({"name": ep["name"], "status": "DOWN", "error": str(e)})
down = [r for r in results if r.get("status") == "DOWN" or (isinstance(r.get("status"), int) and r["status"] >= 500)]
if down:
print("OUTAGE DETECTED")
for r in down:
print(f" {r['name']}: {r.get('error', f'HTTP {r[\"status\"]}')} ")
print(f"\nAll results: {json.dumps(results, indent=2)}")
else:
print("NO_ISSUES")hermes cron create "every 30m" \
"如果脚本报告 OUTAGE DETECTED,则总结哪些服务宕机并建议可能的原因。如果报告 NO_ISSUES,则回复 [SILENT]。" \
--script ~/.hermes/scripts/check-uptime.py \
--name "正常运行时间监控" \
--deliver telegram研究与情报
竞品仓库侦察
监控竞品仓库中感兴趣的 PR、功能和架构决策。
触发器: 定时(每日)
hermes cron create "0 8 * * *" \
"侦察以下 AI 代理仓库在过去 24 小时内的显著活动:
要检查的仓库:
- anthropics/claude-code
- openai/codex
- All-Hands-AI/OpenHands
- Aider-AI/aider
对于每个仓库:
1. gh pr list --repo <repo> --state all --json number,title,author,createdAt,mergedAt --limit 15
2. gh issue list --repo <repo> --state open --json number,title,labels,createdAt --limit 10
重点关注:
- 正在开发的新功能
- 架构变更
- 我们可以借鉴的集成模式
- 可能也影响我们的安全修复
跳过常规的依赖升级和 CI 修复。如果没有值得注意的内容,则回复 [SILENT]。
如果有发现,按仓库组织,并对每个项目进行简要分析。" \
--skill competitive-pr-scout \
--name "竞品侦察" \
--deliver telegramAI 新闻摘要
每周 AI/ML 发展综述。
触发器: 定时(每周)
hermes cron create "0 9 * * 1" \
"生成一份涵盖过去 7 天的每周 AI 新闻摘要:
1. 在网上搜索主要的 AI 公告、模型发布和研究突破
2. 在 GitHub 上搜索热门的 ML 仓库
3. 在 arXiv 上检查关于语言模型和代理的高引用论文
结构:
## 头条新闻(3-5 条主要故事)
## 值得注意的论文(2-3 篇论文,每篇一句话摘要)
## 开源项目(有趣的新仓库或重大发布)
## 行业动态(融资、收购、发布)
每个项目保持 1-2 句话。包含链接。总字数不超过 600 字。" \
--name "每周 AI 摘要" \
--deliver telegram论文摘要与笔记
每日 arXiv 扫描,将摘要保存到你的笔记系统中。
触发器: 定时(每日)
hermes cron create "0 8 * * *" \
"在 arXiv 上搜索过去一天中关于“语言模型推理”或“工具使用代理”的最有趣的 3 篇论文。对于每篇论文,创建一个 Obsidian 笔记,包含标题、作者、摘要总结、关键贡献以及与 Hermes Agent 开发的潜在相关性。" \
--skill arxiv --skill obsidian \
--name "论文摘要" \
--deliver localGitHub 事件自动化
Issue 自动标记
自动标记并回复新 issue。
触发器: GitHub webhook
hermes webhook subscribe github-issues \
--events "issues" \
--prompt "收到新的 GitHub issue:
仓库:{repository.full_name}
Issue #{issue.number}:{issue.title}
作者:{issue.user.login}
操作:{action}
正文:{issue.body}
标签:{issue.labels}
如果这是一个新 issue(action=opened):
1. 仔细阅读 issue 标题和正文
2. 建议合适的标签(bug、feature、docs、security、question)
3. 如果是 bug 报告,尝试从描述中识别受影响的组件
4. 发布一条有帮助的初始回复,确认收到 issue
如果这是标签或分配变更,则回复 [SILENT]。" \
--deliver github_commentCI 失败分析
分析 CI 失败并在 PR 上发布诊断信息。
触发器: GitHub webhook
## config.yaml route
platforms:
webhook:
enabled: true
extra:
routes:
ci-failure:
events: ["check_run"]
secret: "ci-secret"
prompt: |
CI 检查失败:
仓库:{repository.full_name}
检查:{check_run.name}
状态:{check_run.conclusion}
PR:#{check_run.pull_requests.0.number}
详情 URL:{check_run.details_url}
如果结论是 "failure":
1. 如果可访问,从详情 URL 获取日志
2. 识别失败的可能原因
3. 建议修复方案
如果结论是 "success",则回复 [SILENT]。
deliver: "github_comment"
deliver_extra:
repo: "{repository.full_name}"
pr_number: "{check_run.pull_requests.0.number}"跨仓库自动移植变更
当一个 PR 在一个仓库中合并时,自动将等效变更移植到另一个仓库。
触发器: GitHub webhook
hermes webhook subscribe auto-port \
--events "pull_request" \
--prompt "PR 在源仓库中合并:
仓库:{repository.full_name}
PR #{pull_request.number}:{pull_request.title}
作者:{pull_request.user.login}
操作:{action}
合并提交:{pull_request.merge_commit_sha}
如果 action 是 'closed' 且 pull_request.merged 为 true:
1. 获取差异:curl -sL {pull_request.diff_url}
2. 分析变更内容
3. 确定此变更是否需要移植到等效的 Go SDK
4. 如果需要,创建一个分支,应用等效变更,并在目标仓库上打开一个 PR
5. 在新 PR 描述中引用原始 PR
如果 action 不是 'closed' 或未合并,则回复 [SILENT]。" \
--skill github-pr-workflow \
--deliver log业务运营
Stripe 支付监控
跟踪支付事件并获取失败摘要。
触发器: API 调用(webhook)
hermes webhook subscribe stripe-payments \
--events "payment_intent.succeeded,payment_intent.payment_failed,charge.dispute.created" \
--prompt "收到 Stripe 事件:
事件类型:{type}
金额:{data.object.amount} 分({data.object.currency})
客户:{data.object.customer}
状态:{data.object.status}
对于 payment_intent.payment_failed:
- 从 {data.object.last_payment_error} 识别失败原因
- 建议这是临时问题(重试)还是永久问题(联系客户)
对于 charge.dispute.created:
- 标记为紧急
- 总结争议详情
对于 payment_intent.succeeded:
- 仅简短确认
保持回复简洁,适合运营频道。" \
--deliver slack每日收入摘要
每天早上整理关键业务指标。
触发器: 定时(每日)
hermes cron create "0 8 * * *" \
"生成一份早间业务指标摘要。
在网上搜索:
1. 当前比特币和以太坊价格
2. 标普 500 状态(盘前或前收盘)
3. 过去 12 小时内任何重大的科技/AI 行业新闻
格式化为简短的早间简报,最多 3-4 个要点。
以清晰、可扫描的消息形式交付。" \
--name "早间简报" \
--deliver telegram多技能工作流
安全审计管道
结合多种技能进行全面的每周安全审查。
触发器: 定时(每周)
hermes cron create "0 3 * * 0" \
"对 hermes-agent 代码库运行全面的安全审计。
1. 检查依赖漏洞(pip audit、npm audit)
2. 在代码库中搜索常见的安全反模式:
- 硬编码的密钥或 API 密钥
- SQL 注入向量(查询中的字符串格式化)
- 路径遍历风险(用户输入未经验证的文件路径)
- 不安全的反序列化(pickle.loads、yaml.load 未使用 SafeLoader)
3. 审查最近的提交(过去 7 天)中与安全相关的变更
4. 检查是否有新增的环境变量未记录
编写一份安全报告,按严重程度(严重、高、中、低)分类发现。
如果未发现任何问题,则报告健康状况良好。" \
--skill codebase-security-audit \
--name "每周安全审计" \
--deliver telegram内容管道
按计划研究、起草和准备内容。
触发器: 定时(每周)
hermes cron create "0 10 * * 3" \
"研究并起草一篇关于 AI 代理领域热门话题的技术博客文章大纲。
1. 在网上搜索本周讨论最多的 AI 代理话题
2. 选择与开源 AI 代理最相关且最有趣的一个
3. 创建大纲,包含:
- 钩子/引言角度
- 3-4 个关键部分
- 适合开发者的技术深度
- 结论,包含可操作的建议
4. 将大纲保存到 ~/drafts/blog-$(date +%Y%m%d).md
大纲保持在约 300 字。这是一个起点,不是最终文章。" \
--name "博客大纲" \
--deliver local快速参考
Cron 调度语法
| 表达式 | 含义 |
|---|---|
every 30m | 每 30 分钟 |
every 2h | 每 2 小时 |
0 2 * * * | 每天凌晨 2:00 |
0 9 * * 1 | 每周一上午 9:00 |
0 9 * * 1-5 | 工作日(周一至周五)上午 9:00 |
0 3 * * 0 | 每周日凌晨 3:00 |
0 */6 * * * | 每 6 小时 |
交付目标
| 目标 | 标志 | 说明 |
|---|---|---|
| 同一聊天 | --deliver origin | 默认 — 交付到创建任务的位置 |
| 本地文件 | --deliver local | 保存输出,不发送通知 |
| Telegram | --deliver telegram | 主频道,或 telegram:CHAT_ID 指定 |
| Discord | --deliver discord | 主频道,或 discord:CHANNEL_ID |
| Slack | --deliver slack | 主频道 |
| 短信 | --deliver sms:+15551234567 | 直接发送到手机号码 |
| 特定话题 | --deliver telegram:-100123:456 | Telegram 论坛话题 |
Webhook 模板变量
| 变量 | 描述 |
|---|---|
{pull_request.title} | PR 标题 |
{issue.number} | Issue 编号 |
{repository.full_name} | owner/repo |
{action} | 事件操作(opened、closed 等) |
{__raw__} | 完整 JSON 负载(截断至 4000 字符) |
{sender.login} | 触发事件的 GitHub 用户 |
[SILENT] 模式
当 cron 任务的响应包含 [SILENT] 时,交付被抑制。使用此模式避免在安静运行时产生通知垃圾:
如果没有值得注意的事情发生,则回复 [SILENT]。
这意味着只有当代理有内容要报告时,你才会收到通知。