docs(api): record decision manager ollama fallback rollout [skip ci]

This commit is contained in:
Your Name
2026-05-19 13:28:51 +08:00
parent 11842170df
commit 3477c7569a

View File

@@ -2181,6 +2181,119 @@ Pod 內 OllamaToolProvider smoke:
- 前端 AI 自動化管理介面同步:約 91%。
- 完整 AI 自動化管理產品化:約 88%。
---
## 2026-05-19T78 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
```
**目前整體進度**
- 本輪 WIPT73-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 前端狀態語意接入,低樣本不再偽裝紅燈