From 3477c7569a04473540bf64fa37296adf6ab90ca6 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 19 May 2026 13:28:51 +0800 Subject: [PATCH] docs(api): record decision manager ollama fallback rollout [skip ci] --- docs/LOGBOOK.md | 113 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index b9063241..8d8bc447 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -2181,6 +2181,119 @@ Pod 內 OllamaToolProvider smoke: - 前端 AI 自動化管理介面同步:約 91%。 - 完整 AI 自動化管理產品化:約 88%。 +--- + +## 2026-05-19|T78 decision_manager 紅區 Ollama direct caller 收斂 + +**背景**: + +- T77 保留 `decision_manager.py` 紅區核心未動,避免把路由修正與決策狀態機變更混在一起。 +- 統帥明確校正:所有 Ollama 路徑都必須固定為 `GCP-A → GCP-B → 111 local → Gemini`,Gemini 只作最後備援。 +- 本段只處理 `decision_manager.py` 內兩段 direct Ollama caller: + - NemoClaw second opinion。 + - AI Playbook 草稿生成。 + +**完成變更**: + +- `decision_manager.py` 引入 `resolve_ollama_order("deep_rca")`。 +- NemoClaw second opinion 改成依序嘗試 GCP-A / GCP-B / 111,單一端點失敗只 debug log 並繼續下一個端點。 +- AI Playbook 草稿生成改成同一 ordered fallback loop;所有 Ollama 端點失敗或回傳內容不足時維持既有 no-op 行為。 +- 新增 `test_decision_manager_ollama_routing.py`,刻意讓 GCP-A 失敗,驗證 NemoClaw 與 Playbook draft 會繼續打 GCP-B。 +- 未修改 decision / approval / executor 狀態機;這是紅區窄修路由,不是自動執行權限變更。 + +**保留邊界 / 技術債**: + +- `decision_manager.py` 仍有既有 legacy import-order 債;本段只跑 `F,E9` 與新增測試 import-order,未大面積格式化紅區檔案。 +- Gemini 最終備援仍由既有 AI Router / provider fallback 負責,本段未新增 Gemini direct call。 + +**Commit / Deploy**: + +```text +a379a80c fix(api): route decision manager ollama calls through fallback +11842170 chore(cd): deploy a379a80 [skip ci] +``` + +**本地驗證**: + +```text +python -m py_compile + decision_manager.py + test_decision_manager_ollama_routing.py + -> OK + +ruff check --select F,E9 + decision_manager.py + test_decision_manager_ollama_routing.py + -> OK + +ruff check --select I + test_decision_manager_ollama_routing.py + -> OK + +rg direct OLLAMA_URL in decision_manager.py + -> no matches + +pytest + test_decision_manager_ollama_routing.py + test_ollama_endpoint_resolver.py + test_ollama_failover_manager.py + -> 43 passed + +pytest broader route set + test_decision_manager_ollama_routing.py + test_chat_manager_ollama_routing.py + test_intent_classifier.py + test_ollama_endpoint_resolver.py + test_local_code_review_cloud_fallback.py + test_nvidia_provider.py + test_governance_dispatcher.py + -> 77 passed, 7 skipped + +git diff --check -> OK +``` + +**Gitea Actions**: + +```text +2436 Code Review for a379a80c -> success +2435 CD for a379a80c -> success + tests -> success + 2125 passed, 23 skipped + B5 integration -> 5 passed + build-and-deploy -> success + post-deploy-checks -> success +``` + +**Production 驗證**: + +```text +K8s image: +awoooi-api 192.168.0.110:5000/awoooi/api:a379a80ce1793075061f5256a2f188fbe9229be9 +awoooi-worker 192.168.0.110:5000/awoooi/api:a379a80ce1793075061f5256a2f188fbe9229be9 +awoooi-web 192.168.0.110:5000/awoooi/web:a379a80ce1793075061f5256a2f188fbe9229be9 + +GET https://awoooi.wooo.work/api/v1/health + -> healthy, prod, mock_mode=false + -> api/postgresql/redis/ollama/openclaw/signoz all up + +Pod 內 resolver smoke: +interactive / hermes / deep_rca / embedding / rag / code_review / image_analysis + -> ollama_gcp_a:http://34.143.170.20:11434 + -> ollama_gcp_b:http://34.21.145.224:11434 + -> ollama_local:http://192.168.0.111:11434 + +Pod 內 decision_manager source smoke: + decision_manager_direct_ollama_url=False +``` + +**目前整體進度**: + +- 本輪 WIP(T73-T78 告警閉環與 Ollama direct caller 收斂):約 100%。 +- AwoooP 告警可觀測鏈:約 95%。 +- 低風險自動修復閉環:約 95%。 +- 前端 AI 自動化管理介面同步:約 91%。 +- 完整 AI 自動化管理產品化:約 88.5%。 + - T21 已把 verifier coverage / freshness 從後端真相鏈推到前端;下一段建議 T22 拆解 9 筆 non-success verification 的原因,將 degraded/failed/timeout 分流到工作鏈路與 Ticket / PlayBook / KM 修復項。 ## 2026-05-14 | T20 Governance SLO 前端狀態語意接入,低樣本不再偽裝紅燈