Post

Hermes-Agent v0.11.0 (v2026.4.23) 升級與 CI/CD 優化實戰

Hermes-Agent v0.11.0 (v2026.4.23) 升級與 CI/CD 優化實戰

本文紀錄了將 Hermes-Agent 從 v2026.4.16 升級至 v2026.4.23 的完整流程,套件含解決 GitHub Actions OOM 記憶體溢位問題,以及實作 Multi-arch 多架構自動合併的解決方案。

1. 升級核心步驟 (SOP 執行)

1
2
**步驟 A:建立獨立升級分支**
確保舊版本 `my-config-v2026.4.16` 完整保留,作為穩定運行的備份。

`git checkout -b my-config-v2026.4.23 git rebase v2026.4.23

1
2
3
4
5
6
7
8
9
10
11
    **步驟 B:解決 Dockerfile 衝突**
    官方 v2026.4.23 重構了 Node 安裝流程。手動解決衝突,恢復自定義的「不必要組件排除」邏輯,但隨後決定全面恢復功能並優化效能。

    **步驟 C:優化 GitHub Actions 與 Multi-arch**
    解決同時建構 amd64/arm64 導致的記憶體溢位 (OOM)。改用 Matrix 分流建構,最後進行 Manifest 合併。

    
# 提交變更並推送至個人遠端
git add . && git commit -m "feat: optimize CI/CD for multi-arch"
git push kuniakil my-config-v2026.4.23

2. Dockerfile:自定義 vs. 官方差異

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        項目
        官方版本 (v2026.4.23)
        你的優化版本
    


    
        **記憶體限制**
        無設定
        NODE_OPTIONS="--max-old-space-size=4096"` 防止 Vite 編譯時 OOM
    
    
        **npm 參數**
        標準 `npm install`
        `--prefer-offline --no-audit` 極大化減少記憶體與網路開銷
    
    
        **Playwright**
        完整安裝
        `--only-shell` 僅保留必要組件,減輕映像檔體積

3. Docker-compose:環境適配差異

你的 docker-compose.yml 針對個人運行環境進行了深度客製:

services: hermes: image: ghcr.io/kuniakil/hermes-agent:v2026.4.23 # 指向私有 Registry container_name: hermes-agent environment: - TZ=Asia/Taipei # 加入本地時區 stdin_open: true tty: true # 開啟互動模式以便 TUI 操作 ``

4. CI/CD 工作流重大更新

這是本次升級最核心的優化,將原本可能失敗的單一任務拆解為:

1
2
3
4
5
- **Matrix Build**:linux/amd64` 與 `linux/arm64` 在獨立 Job 中執行,各自享用完整 7GB RAM。

- **Digest Upload**:將各架構的數位指紋暫存為 Artifact。

- **Manifest Merge**:使用 `docker buildx imagetools` 將多架構指紋合併至單一 `v2026.4.23` 標籤。

結果:解決了 GitHub Actions 免費版建構 Multi-arch 時的 OOM 頑疾。

© 2026 mlee - Hermes-Agent Maintenance Notes

This post is licensed under CC BY 4.0 by the author.