docs(adr): ADR-030 補充九-十章實作完成記錄
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1041,3 +1041,63 @@ GET /api/v1/learning/recommendation/{anomaly_key}
|
||||
- Phase 4-5: 核心流程變更,需要嚴格測試
|
||||
|
||||
**建議**: 按 Phase 順序實施,每個 Phase 完成後驗證穩定性再進入下一階段。
|
||||
---
|
||||
|
||||
|
||||
## 九、2026-04-04 實作完成 (台北時間)
|
||||
|
||||
> **更新者**: Claude Code
|
||||
> **Commit**: d0f0970, 72d7536, df3ef90
|
||||
|
||||
### 9.1 根本原因診斷 (19筆 PENDING 清查)
|
||||
|
||||
| 根因 | 說明 | 修復 |
|
||||
|------|------|------|
|
||||
| playbooks 表從未建立 | Playbook 庫空白,RAG 永遠無匹配 | phase7_playbooks_table.sql |
|
||||
| Ollama embedding is_closed=True | 滾動重啟後 http_client 失效,vector_count:0 | _get_http_client() 偵測重建 |
|
||||
| 9筆殭屍 PENDING (3/26) | mock_fallback CRITICAL 測試記錄 | 直接清除 |
|
||||
|
||||
### 9.2 完成項目
|
||||
|
||||
| 檔案 | 修改 | 說明 |
|
||||
|------|------|------|
|
||||
| `playbook_rag.py` | 新增 `_get_http_client()` | 偵測 is_closed 自動重建 HTTP client |
|
||||
| `playbook_rag.py` | `embed_playbook()` Bug 修復 | `s.sequence`→`s.step_number`, `s.description`→`s.command` |
|
||||
| `telegram_gateway.py` | 新增 `ai_model` 欄位 | format/format_with_nemotron 顯示底層模型 |
|
||||
| `openclaw.py` | proposal_dict 加 `"model"` | 傳入底層模型名稱 |
|
||||
| `decision_manager.py` | 讀取 `ai_model` 傳入 approval card | 決策路徑完整 |
|
||||
| `migrations/phase7_playbooks_table.sql` | 新增 | playbooks 表,PRIMARY KEY + 5 GIN 索引 |
|
||||
| `playbook_service.py` | `_write_to_km()` fire-and-forget | extract_from_incident() 後自動 KM 沉澱 |
|
||||
| `playbook_service.py` | `_get_rag_service()` 改走工廠 | 每次重建,避免快取 is_closed client |
|
||||
| `approval_execution.py` | `_write_execution_result_to_km()` | 移出 try/except,保證執行記錄寫入 KM |
|
||||
| `approval_execution.py` | 冷啟動修復 | 執行成功自動設定 execution_success=True, effectiveness_score=4, status=RESOLVED |
|
||||
| `approval_execution.py` | skip 路徑 debug→info | 可觀測性提升 |
|
||||
| Ollama | 刪除 smollm2:135m | 0.3GB CPU 機器不需要的模型 |
|
||||
|
||||
### 9.3 首席架構師 Review 結果
|
||||
|
||||
| 評分 | 修復項目 | 說明 |
|
||||
|------|----------|------|
|
||||
| 初版 21/25 | — | 72d7536 |
|
||||
| **Critical #1** | KM write task 移出 try/except | 保證無論 learning 成敗都寫 KM |
|
||||
| **Important #1** | PlaybookService 快取繞過工廠 | 每次走工廠避免 is_closed |
|
||||
| **Important #2** | Migration 缺 PRIMARY KEY | prod DB 已 ALTER TABLE 補齊 |
|
||||
| **Important #3** | embed_playbook() s.sequence AttributeError | 修正欄位名稱靜默失敗 bug |
|
||||
| 修復後 ~25/25 | **PASSED** | df3ef90 |
|
||||
|
||||
### 9.4 完整閉環
|
||||
|
||||
```
|
||||
告警 → AI分析(OpenClaw/Nemotron) → 查Playbook(RAG語意搜尋)
|
||||
→ 有匹配且LOW風險 → 自動執行
|
||||
→ MEDIUM/CRITICAL → Telegram等人工批准
|
||||
→ 執行成功
|
||||
→ _trigger_playbook_extraction():
|
||||
自動設定 execution_success=True, effectiveness_score=4, status=RESOLVED
|
||||
→ Playbook萃取 → 存Redis → KM沉澱(_write_to_km)
|
||||
→ incident_service.resolve() → KM萃取(knowledge_extractor)
|
||||
→ _trigger_learning() 後 → KM執行記錄(_write_execution_result_to_km)
|
||||
→ 下次相似告警 → Playbook命中(RAG) → 加速決策
|
||||
```
|
||||
|
||||
**狀態**: ✅ 閉環已通 (2026-04-04 台北時間)
|
||||
|
||||
Reference in New Issue
Block a user