Some checks failed
CD Pipeline / deploy (push) Failing after 59s
- 建立 Gitea Actions CD pipeline (.gitea/workflows/cd.yaml) - 部署模式: rsync Python 檔案至 188 → docker restart (volume mount) - Dockerfile/requirements 變動時自動重建 Docker image - 部署通知: Telegram (開始/成功/失敗) - 健康檢查: https://mo.wooo.work/health (最多 5 次重試) - 同步最新 CLAUDE.md / ADR-008 / memory (2026-04-19) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
57 lines
2.3 KiB
Markdown
57 lines
2.3 KiB
Markdown
# ADR-001:三 Agent 自主學習分工(Hermes / NemoTron / OpenClaw)
|
||
|
||
- **Status**: Accepted
|
||
- **Date**: 2026-04-18
|
||
- **Decision Maker**: 統帥(系統架構顧問)
|
||
- **Author**: Claude
|
||
|
||
## Context
|
||
|
||
MOMO Pro 的 OpenClaw Bot 已具備三個 AI 服務(Hermes 本地、NemoTron NIM、OpenClaw/Gemini 雲端),但學習工作流(採集→處理→應用)尚未明確分工。當前現象:
|
||
- PPT 每次重新呼叫 AI → token 浪費 + 半年前歷史簡報失真
|
||
- `services/openclaw_learning_service.py` 雖有 `store_insight()` 等 API,但只寫不讀,未形成 cache-aside 閉環
|
||
- 三個 Agent 沒有清楚邊界,可能未來重複工作或越權
|
||
|
||
## Decision
|
||
|
||
採用「**漏斗型算力分配**」:
|
||
|
||
| Agent | 模型 | 主機 | 角色 | 月成本目標 |
|
||
|---|---|---|---|---|
|
||
| Hermes | hermes3:latest 8B | Ollama @ 192.168.0.111 | 資料工程師(採集層) | $0 |
|
||
| NemoTron | meta/llama-3.1-8b-instruct | NVIDIA NIM | 神經中樞(處理層) | $0(免費 60/天) |
|
||
| OpenClaw | gemini-2.0-flash | Google 雲端 | 策略大腦(應用層) | < $5 |
|
||
|
||
**三段分工**:
|
||
|
||
1. **採集層(Hermes)**:embedding 生成、tag 抽取、相似度去重、品質分數計算
|
||
2. **處理層(NemoTron)**:Tool Calling 寫入 KM、對話分類、跨 Agent 派發
|
||
3. **應用層(OpenClaw)**:PPT 主筆、用戶對話、週報 meta-analysis
|
||
|
||
## Alternatives Considered
|
||
|
||
| 方案 | 拒絕原因 |
|
||
|---|---|
|
||
| 全用 OpenClaw / Gemini | 月成本爆炸、外部依賴單點 |
|
||
| 全用 Hermes 本地 | 品質不夠、用戶感知差 |
|
||
| 用 LangChain Agent 自動路由 | 黑盒、debug 困難、不符 FinOps 透明原則 |
|
||
|
||
## Consequences
|
||
|
||
### Positive
|
||
- 月成本可控:< $5(從 $50+ 降下來)
|
||
- 失真消除:歷史 snapshot 寫死後內容永遠一致
|
||
- 抗故障:單一 Agent 掛掉不影響全局(fallback 鏈,見 ADR-004)
|
||
|
||
### Negative / Trade-offs
|
||
- 增加維運複雜度(三個 Agent 都要監控)
|
||
- KM 表 schema 必須穩定,schema 變動成本高
|
||
- Hermes 本地主機成為單點(需要 192.168.0.111 高可用)
|
||
|
||
## Related ADRs
|
||
|
||
- ADR-002(pgvector):KM 儲存層
|
||
- ADR-003(本地 embedding):Hermes 採集層的具體實作
|
||
- ADR-004(NemoTron fallback):應對 NIM 配額耗盡
|
||
- ADR-005(時間衰減):應用層 RAG 取數的時間權重
|