H繁中版
文件教學與最佳實踐automation blueprints
<!-- Source: https://hermesbible.com/docs/guides/automation-blueprints -->

可直接複製貼上的常見自動化模式藍圖。每個藍圖使用 Hermes 內建的 cron 排程器作為時間觸發器,以及 Webhook 平台作為事件驅動觸發器。

每個藍圖都適用於任何模型——不鎖定特定供應商。

如需使用表單而非 cron 語法的參數化藍圖,請見 自動化藍圖目錄

TIP — 三種觸發類型

觸發方式操作方式工具
排程按固定週期執行(每小時、每夜、每週)cronjob 工具或 /cron 斜線指令
GitHub 事件在 PR 開啟、推送、Issue、CI 結果時觸發Webhook 平台(hermes webhook subscribe
API 呼叫外部服務 POST JSON 到你的端點Webhook 平台(config.yaml 路由或 hermes webhook subscribe

三者都支援遞送到 Telegram、Discord、Slack、SMS、email、GitHub 評論或本地檔案。


開發工作流

每夜待辦清單分類

每晚自動標記、排定優先順序並總結新 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 程式碼審查

在每個 Pull Request 開啟時自動審查。在 PR 上直接發佈審查評論。

**觸發方式:**GitHub webhook

選項 A — 動態訂閱(CLI):

hermes webhook subscribe github-pr-review \
  --events "pull_request" \
  --prompt "審查這個 Pull Request:
Repository: {repository.full_name}
PR #{pull_request.number}: {pull_request.title}
Author: {pull_request.user.login}
Action: {action}
Diff URL: {pull_request.diff_url}

用以下指令取得 diff: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: {repository.full_name}
            Author: {pull_request.user.login}
            Diff 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,檢查是否修改了:
   - 工具 schema(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 telegram

DevOps 與監控

部署驗證

在每次部署後觸發冒煙測試。你的 CI/CD 管線在部署完成時 POST 到 webhook。

**觸發方式:**API 呼叫(webhook)

hermes webhook subscribe deploy-verify \
  --events "deployment" \
  --prompt "一次部署剛完成:
Service: {service}
Environment: {environment}
Version: {version}
Deployed by: {deployer}

執行以下驗證步驟:
1. 檢查服務是否回應:curl -s -o /dev/null -w '%{http_code}' {health_url}
2. 在最近的日誌中搜尋錯誤:檢查部署負載中的錯誤指標
3. 驗證版本是否正確:curl -s {health_url}/version

回報:部署狀態(healthy/degraded/failed)、回應時間、發現的任何錯誤。
如果狀態健康,簡短回報。如果降級或失敗,提供詳細的診斷。" \
  --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: {alert.name}
Severity: {alert.severity}
Service: {alert.service}
Message: {alert.message}
Timestamp: {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 telegram

AI 新聞摘要

每週 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 上過去一天中關於「language model reasoning」或「tool-use agents」的 3 篇最有趣論文。為每篇論文建立一份 Obsidian 筆記,包含標題、作者、摘要、主要貢獻,以及對 Hermes Agent 開發的潛在相關性。" \
  --skill arxiv --skill obsidian \
  --name "論文摘要" \
  --deliver local

GitHub 事件自動化

Issue 自動標記

自動標記並回應新 Issue。

**觸發方式:**GitHub webhook

hermes webhook subscribe github-issues \
  --events "issues" \
  --prompt "收到新的 GitHub Issue:
Repository: {repository.full_name}
Issue #{issue.number}: {issue.title}
Author: {issue.user.login}
Action: {action}
Body: {issue.body}
Labels: {issue.labels}

如果這是新 Issue(action=opened):
1. 仔細閱讀 Issue 標題和內容
2. 建議合適的標籤(bug、feature、docs、security、question)
3. 如果是 Bug 回報,檢查是否能從描述中識別受影響的元件
4. 發佈一個有幫助的初步回覆確認收到 Issue

如果這是標籤或指派變更,回覆 [SILENT]。" \
  --deliver github_comment

CI 失敗分析

分析 CI 失敗並在 PR 上發佈診斷結果。

**觸發方式:**GitHub webhook

# config.yaml 路由
platforms:
  webhook:
    enabled: true
    extra:
      routes:
        ci-failure:
          events: ["check_run"]
          secret: "ci-secret"
          prompt: |
            CI 檢查失敗:
            Repository: {repository.full_name}
            Check: {check_run.name}
            Status: {check_run.conclusion}
            PR: #{check_run.pull_requests.0.number}
            Details URL: {check_run.details_url}

            如果 conclusion 為 "failure":
            1. 如果可存取,從 details URL 取得日誌
            2. 識別可能的失敗原因
            3. 建議修復方式
            如果 conclusion 為 "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: {repository.full_name}
PR #{pull_request.number}: {pull_request.title}
Author: {pull_request.user.login}
Action: {action}
Merge commit: {pull_request.merge_commit_sha}

如果 action 為 'closed' 且 pull_request.merged 為 true:
1. 取得 diff: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 事件:
Event type: {type}
Amount: {data.object.amount} cents ({data.object.currency})
Customer: {data.object.customer}
Status: {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. S&P 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. 檢查是否有新增的環境變數未被記錄

撰寫一份安全報告,按嚴重程度分類(Critical、High、Medium、Low)。
如果沒有發現,回報健康狀態良好。" \
  --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主頻道
SMS--deliver sms:+15551234567直接發送到電話號碼
特定討論串--deliver telegram:-100123:456Telegram 論壇主題

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]。

這表示你只會在代理有事要報告時才收到通知。



AWS Bedrock