# AWOOOI 全景盤點 × 2026 AI 趨勢比對 × 優化整合方案

> 產出時間：2026-05-07
> 盤點範圍：254 commits（2026-04-25 → 2026-05-07）+ 全專案 + 四主機 + AI 子系統 + 監控 + 部署 + 安全
> 方法：12 Agent 並行盤點 + 4 Web Researcher 並行調研 2026 主流趨勢
> 信心：High（每節都有 2+ 獨立來源交叉驗證）

---

## Part 1 — 完整盤點清單（12 面向）

### 1. Codex 254 commits 提交稽核（12 天）

- 作者比例：Your Name 218（86%）/ AWOOOI CD 37（14% 純自動部署）
- 類型：fix 123（48%）/ feat 48（19%）/ chore 58 / docs 16 / test 9 / **refactor 0**
- **信號**：補丁驅動開發，零重構消化技術債

**九大主題**

| 主題 | commits | 代表 commit |
|---|---|---|
| Ollama ADR-110 GCP 三層容災 | 27 | `b1ef05fa` 主架構、`fb0c72db` 推翻 A2、`c38227e9` 移除 188 |
| AwoooP Agent Platform Phase 0-8 | 10 | `8629ac70` Phase 1-8 全交付、`13e51802` Phase 0+1 |
| AIOps 飛輪 / 自動修復 | 30+ | `e45b055e` 治理四軌、`3779f6f1` /metrics 串接 |
| Governance / Watchdog | 10 | `aa4ccec4` ADR-092 B4、`f6b698c8` PromQL 注入防線 |
| Telegram 去重 / 升級 | 13 | `b3a0f0d7`+`47342dfb` fingerprint+24h、`8fb0c5df` heartbeat |
| CI/CD Gitea Actions | 25+ | `5e625f77` stale job、`fe618960` systemd runner baseline |
| K8s / Smoke / Deploy | 10+ | `47234999` playwright deps、`0f7e9d34` host runner |
| DB Migration / Schema | 7 | `4115ddde` setup_test_schema、`474b913a` playbook versioning |
| Secrets 安全事故 | 3 | `7b471e7a` Gemini key、`439c432c` Gitea token、`297afb69` ssh-mcp-key |

**反覆修補警訊（同檔案 ≥10 次 = 設計缺陷）**

| 檔案 | 修補次數 | 問題 |
|---|---|---|
| `apps/api/src/core/config.py` | **21** | 缺中央化設定模組，env/旗標散落 |
| `apps/api/src/services/decision_manager.py` | **20** | Tier 3 紅區改 20 次違反 RED_ZONES |
| `.gitea/workflows/cd.yaml` | **18** | CD 不穩，runner 改 7 次仍治標 |
| `apps/api/src/services/ollama_failover_manager.py` | **14** | 分層健康檢測抽象不完整 |
| `apps/api/src/api/v1/webhooks.py` | **14** | Alertmanager 入口反覆改格式 |
| `apps/api/src/services/telegram_gateway.py` | **12** | 去重邏輯改 12 次（fingerprint/short_id/async race） |
| `apps/api/src/services/governance_agent.py` | 10 | skip 路徑無限迴圈、dedup 非確定 |
| `apps/api/src/services/ai_router.py` | 10 | DIAGNOSE primary 改 Ollama → Gemini → 又改回 |
| `apps/api/src/services/openclaw.py` | 10 | task_type 注入、Ollama lane 反覆 |
| `apps/api/src/db/models.py` | 10 | schema 漂移 |

---

### 2. 後端 API 盤點

- **總量**：347 Python 檔，約 107,000+ 行
- **核心**：`services/` 163 檔 ~79,000 行；`api/v1/` 37 routers；`agents/` 11 檔；`jobs/` 20；`workers/` 4；`repositories/` 17；`_archived/` 2
- **Top 10 services**（最大）：
  1. `telegram_gateway.py` 6,426 行（全系統最大）
  2. `decision_manager.py` 3,531 行（Tier 3 紅區）
  3. `openclaw.py` 2,711 行
  4. `incident_service.py` 1,448 行
  5. `approval_execution.py` 1,442 行
  6. `ai_router.py` 1,407 行
  7. `learning_service.py` 1,341 行
  8. `executor.py` 1,239 行
  9. `nvidia_provider.py` 1,086 行
  10. `auto_repair_service.py` 1,044 行

**重複實作 5 例**

1. **Ollama Failover 四層疊架**（`ollama_health_monitor` → `ollama_failover_manager` → `ollama_auto_recovery` → `ollama_endpoint_resolver`），其中 `ollama_endpoint_resolver` 被 5 個 service 直接引用，繞過 ai_router（違 ADR-052）
2. **決策融合雙軌**：`decision_fusion.py` (562 行) vs `decision_fusion_adapter.py` (546 行)
3. **Trust Engine 雙份**：`core/trust_engine.py` vs `services/trust_engine.py`
4. **Playbook/Runbook 生成雙份**：`playbook_generator.py` (Ollama) vs `runbook_generator.py` (Nemotron)
5. **Governance 三元組**：`governance_agent` + `governance_dispatcher` + `governance_query_service`

**半成品 / 死代碼 10 例**

- `routes/notifications.py` 全檔 stub，`TODO: 實際發送通知`
- `routes/agent.py:63,76` 假訊息，`TODO: 實際調用 OpenClaw`
- `agents/security.py:187-188` `TODO: Phase 9.4 實作 LLM 分析`
- `api/v1/ai.py:43` `TODO(R4): 移入 approval_service` 違積木化
- `api/v1/sentry_webhook.py:460` `TODO(2026-04-05)` 30 天未修
- `jobs/compliance_scanner_job.py` 三個 `TODO`：ssl_cert_valid / cve_scan / backup_tested 未實作
- `routes/health.py:278` 健康端點檢查未完成
- `jobs/capacity_forecaster_job.py` Holt-Winters 標 TODO，目前用線性回歸代替
- `plugins/mcp/providers/grafana_provider.py:54` 自訂例外空殼
- `plugins/mcp/providers/filesystem_provider.py:84` 同上

**封存待清**：`_archived/routes/approvals.py` (477 行) + `_archived/services/approval.py` (389 行)，**觀察期至 2026-04-25 已逾 12 天**

**TODO/FIXME 重災區 Top 5**

1. `services/decision_fusion_adapter.py` — **9 處 TODO**（融合權重全 hardcode，標「移到 settings 由 AI 自學調整」）
2. `services/governance_dispatcher.py` — 4 處
3. `jobs/compliance_scanner_job.py` — 4 處
4. `services/telegram_gateway.py` — 3 處
5. `services/notifications/__init__.py` — 2 處

---

### 3. 前端網站盤點

- **`apps/web/` 已從磁碟移除，但 git 仍追蹤 70+ 個 D 檔案** — 半遷移狀態
- **Active**：`/Users/ogt/wooo-aiops/web/` (Next.js 14.1 / TS 5.3 / React 18.2 / Tailwind / Radix UI / Zustand 4.5 / TanStack Query 5.17)
- **路由架構**：App Router，**無 `[locale]` 包裝層**（i18n 已被遷出時放棄）
- **頁面總數**：70 個 page.tsx
- **Sentry**：@8.55.0 已接

**i18n 完全沒接**：`useTranslations` 呼叫數 = 0，messages/ 目錄不存在 — 違反 `feedback_i18n_zero_hardcode.md` 鐵律

**硬編碼 IP 違規**

| 檔案 | 內容 |
|---|---|
| `api/v1/activities/route.ts` | `ip_address: "192.168.1.100"` 假資料 |
| `api/v1/notifications/history/route.ts` | `request_ip: "192.168.1.100"` 假資料 |
| `components/dashboard/ServiceDiscovery.tsx` | `host: "10.0.1.10"` 假資料 |
| `.env.example` | `NEXT_PUBLIC_API_URL=http://localhost:8000/api/v1` 危險（會 bake 進 Bundle） |

**Emoji 違規**：26 個檔案 / 42 處 emoji 殘留違反 `feedback_no_emoji_use_icons`

---

### 4. 前端頁面功能正常性驗收

**頁面健康狀態（70 個 page.tsx）**

| 狀態 | 數量 | 代表 |
|---|---|---|
| 功能正常 | ~25 | `/awooop/runs`、`/awooop/approvals`、`/billing`、`/settings`、`/notifications`、`/cost` |
| 半完成 | ~15 | `/awooop/approvals/[run_id]` (`as any` 殘留)、`/dashboard`、`/users`、`/tickets/*` |
| 壞掉 / 假資料 | ~30 | `/monitoring` (Math.random!)、`/tickets/dashboard` (硬寫 `DevOps:15`)、`/blog` (POSTS 寫死)、`/pricing` (純靜態 HTML)、13 個行銷頁全假 |

**P0 必修**

1. **`/monitoring/MonitoringContent.tsx`** — 全假資料 (`Math.random()` 生成 uptime)，用戶看到的 SLA 是亂數
2. **`/tickets/dashboard/page.tsx`** — 硬寫 `DevOps: 15 tickets, resolved: 14`

**殘留物**：
- `console.log` 94 處 / 14 個 page.tsx
- `as any` 3 處（tickets/[id], knowledge/new）
- TODO/FIXME 23 個檔案

---

### 5. AI / OpenClaw / Decision 子系統

**12 個 Agent 角色**

| Agent | 入口 | 用途 |
|---|---|---|
| DiagnosticianAgent | `agents/diagnostician_agent.py:68` | 診斷 |
| SolverAgent | `agents/solver_agent.py:439` | 修復方案 |
| CriticAgent | `agents/critic_agent.py:62` | 二次審查 |
| ReviewerAgent | `agents/reviewer_agent.py:64` | 最終審核 |
| CoordinatorAgent | `agents/coordinator_agent.py:49` | 協調 |
| ActionPlannerAgent | `agents/action_planner.py:270` | 動作規劃 |
| BlastRadiusAgent | `agents/blast_radius.py:164` | 影響半徑 |
| SecurityAgent | `agents/security.py` | 安全（**Phase 9.4 LLM 仍 stub**） |
| GovernanceAgent | `services/governance_agent.py:57` | 治理迴圈 |
| HostRepairAgent | `services/host_repair_agent.py:184` | 主機修復 |
| TrustDriftDetector | `services/trust_drift_detector.py:99` | 信任漂移 |
| AgentToolExecutor (MCP) | `services/ai_providers/agent_loop.py:13` | Shadow Mode |

**Ollama ADR-110 容災**

| 層 | URL | env |
|---|---|---|
| GCP-A Primary | `34.143.170.20:11434` | `OLLAMA_URL` |
| GCP-B Secondary | `34.21.145.224:11434` | `OLLAMA_SECONDARY_URL` |
| Local 111 | (188 nginx proxy) | `OLLAMA_FALLBACK_URL` |
| Gemini | flag-gated | `ENABLE_ALERT_CLOUD_FALLBACK` |

**決策融合方法 III（`services/decision_fusion.py`）**

- LOW：Hermes 0.5 + Playbook 0.3 + MCP 0.2
- MED：OpenClaw 0.35 + Hermes 0.35 + Playbook 0.2 + MCP 0.1
- HIGH：OpenClaw 0.3 + ElephantAlpha 0.25 + Playbook 0.25 + MCP 0.2
- composite > 0.7 → auto；≤ 0.7 → HITL

**已知缺口**

| 缺口 | 證據 |
|---|---|
| `USE_AI_ROUTER=False` | AI Router 實際未上線，仍走舊 fallback |
| `ENABLE_OPENCLAW_AGENT_LOOP_SHADOW=False` | Agent Loop 在 shadow，無法實際執行工具 |
| Security LLM 層未實作 | 安全審查仍純規則引擎 |
| DIAGNOSE 已無 Ollama | 全靠雲端 Gemini/NEMO，成本/延遲風險 |
| `FLYWHEEL_MIN_SAMPLE=10` hardcode | 未移到 settings |
| 9 處 fusion 權重 TODO | 「自學」與硬寫常數矛盾 |

**北極星「AI 自主化」覆蓋率**：62/100

---

### 6. 資料庫盤點

- **PG 表數**：~55-60（37 ORM + AwoooP 16 + Phase 1-7 約 20）
- **核心 ORM**：`db/models.py` 1,687 行 / 21 表；`db/awooop_models.py` 691 行 / 16 表
- **Pool**：`pool_size=10, max_overflow=20`
- **ClickHouse**：客戶端 `max_connections=100`，server pool 不在 repo（在 SignOz 188）— **正是 2026-05-05 過載事故根因**

**12 天 11 個 migration**

- `p2_decision_fusion_columns.sql` ✅
- `adr104_playbook_versioning.sql` ✅
- `phase25_knowledge_enum_names.sql` ⚠️（容忍 owner mismatch 已踩兩次）
- AwoooP Phase 1-7 共 7 個 SQL ⚠️（**未見 rollback 檔，重大缺口**）

**潛在風險**

- `learning_service.py:5028` N+1 query
- Redis namespace 不統一（`awoooi:` vs `alert:` vs `governance:`）
- AwoooP RLS migration 未測量鎖時長
- enum migration 容忍 `insufficient_privilege` 靜默 skip

---

### 7. 監控告警 Telegram 鏈路

**告警規則總量**：~314 條（14 個檔案）
**最大檔**：`ops/monitoring/alerts-unified.yml` 106 條 + `alerts.yml` 80 條

**鏈路**：Prometheus + SignOz alerting + Sentry SDK → Alertmanager → AWOOOI API webhook → AlertAnalyzer.fingerprint → LLM 仲裁 → telegram_gateway

**Telegram dedup 散落 4+ 模組**

| 場景 | Key | TTL |
|---|---|---|
| Approval/firing | `tg_sent:{fingerprint}` | 30h |
| Decision card | `telegram_sent:fp:{alertname}:{target}` | 24h |
| Escalation | `auto_repair:emergency_escalated:fp:{alertname}:{target}` | 24h |
| Drift escalation | `drift:auto_adopt_emergency:{report_id}` | 1h |
| Heartbeat | `heartbeat:silent_last_sent` + `heartbeat:warnings_hash` | 6h+24h |
| Ollama recovery | per-host key | 1h |

**ADR-109 未落地** — 33 個 `send_xxx` 仍靠 caller 端 dedup，新增方法漏 dedup 即重複轟炸

**8 個盲區**

1. ADR-109 未統一 dedup
2. Alertmanager fallback secrets 無 placeholder sanity check
3. VIP 125 SPF-1 單點
4. SignOz 與 Prometheus dedup key 分離（同事件可能雙觸發）
5. Sentry → Telegram 缺 dedup scope
6. Heartbeat hash 與真告警 collide 未驗證
7. webhooks.py:2049 `X-Forwarded-For` 第一段可被偽造
8. Loki 已棄用，但部分 rule/dashboard 可能仍引用

---

### 8. K3s + CI/CD 部署

**集群拓撲**：110 K3s server + Harbor:5000 + Gitea:3001 + ArgoCD；120/188 K3s agent

**Workloads**

- Prod (awoooi-prod)：3 Deployment + 5 CronJob + 3 HPA + 3 VPA
- 系統層：3 Deployment + 3 DaemonSet
- Dev：1 Deployment

**8 個 Gitea workflows**：cd.yaml(53KB) / cd-dev.yaml / code-review.yaml / deploy-alerts.yaml / e2e-health.yaml / run-migration.yml / ansible-lint.yml / type-sync-check.yaml

**.github/workflows 殘留 6 個應封存**（重複 / 跑不起來 / GitHub billing 風險）

**已知問題**

1. Docker Build Lock 競爭仍有機率超時
2. Stale Gitea Jobs 治理依賴 cron 排程
3. E2E / 健康檢查跑在 GitHub cloud runner（與主 CD 分離）
4. ArgoCD 與 Gitea HMAC webhook 斷線無告警
5. workflow-only 變更跳過 CD 過濾邏輯可能誤判

---

### 9. 四主機服務

| 主機 | 角色 | 近期事故 |
|---|---|---|
| **110** DevOps 金庫 | Harbor:5000、Gitea:3001、Sentry:9000、Langfuse:3100、Prometheus:9090、Nginx Ollama proxy 11435/11436/11437 | 2026-05-05 load 41→37（Sentry CH pool 升 4→8 + node-exp 71%） |
| **120** K3s Server #1 (MASTER) | keepalived MASTER 持 VIP `192.168.0.125`、awoooi-prod NodePort 31234/31235 | 無 |
| **121** K3s Server #2 (BACKUP) | keepalived BACKUP、ArgoCD :30443、kube-state-metrics :30888、mon cluster | 本機 ~/.kube/config 缺 awoooi-prod context |
| **188** AI+Web 中心 | PG:5432 (K3s Datastore Kine)、Redis:6380、SignOz:3301、Local Ollama:11434、OpenClaw:8088 | 2026-05-05 load 20→3.56（cadvisor v0.47 + SignOz CH + litellm Prisma + momo） |
| **GCP-A** `34.143.170.20` | Ollama Primary | — |
| **GCP-B** `34.21.145.224` | Ollama Secondary | — |

**5 個監控盲區**

1. 121 沒進 prometheus.yml node-exporter target
2. GCP-A/B 無主機級監控（CPU/memory/IO 全盲）
3. 120 主機沒 node-exporter target
4. cadvisor 自身仍是單點（無獨立 watchdog）
5. ClickHouse pool×ratio 沒有自動門檻檢查告警

**SPOF 警報**

- **188** = K3s datastore + 觀測 + Local Ollama + 應用 + dev API（單點集中度過高）
- **110** = CI/CD + LLM proxy 入口（Ollama nginx proxy 11435/11436/11437 都在 110）

---

### 10. 前後端串聯邏輯（破鏈與孤兒）

**5 個破鏈**

1. **`/alerts` → `GET /api/v1/alerts`**：後端 `main.py` 無此 router → 404
2. **`/repairs` → `GET /api/v1/repairs`**：後端 prefix 是 `/auto-repair` → 全部 404
3. **`/activity` → `GET /api/v1/activities`**：後端只有 `/audit-logs` → 404
4. **WebSocket `/api/v1/ws`**：前端 hardcode `localhost:8000`，後端只有 `/api/v1/stats/flywheel/ws`
5. **`dashboard/stream` SSE 不被前端使用**：前端用 WebSocket 而非 EventSource

**2 個孤兒**

1. `GET /api/v1/aiops/timeline` 後端有但前端未接
2. `GET /api/v1/audit-logs` 後端有但前端打 `/activities`

**通訊模式**：REST + Polling 為主；SSE 後端有但前端不用；WebSocket 路徑不符

---

### 11. 技術債與遺留垃圾

**死代碼 / 封存**

- `apps/api/src/_archived/` 主檔仍在 git tree
- `services/_archived/incident_engine_v1.py`、`incident_memory_v1.py`（標 2026-06-24 刪除）
- `ai_router.py:618` 標 DEPRECATED 無呼叫方
- 三個 `*_agent.py` timeout alias 標「下一 Sprint 移除」已過期

**巨型檔 8 個（>1000 行）**：telegram_gateway.py 6426 / decision_manager.py 3531 / openclaw.py 2711 / webhooks.py 2458 / db/models.py 1687 / incident_service.py 1448 / ai_router.py 1407 / learning_service.py 1341

**Spec 未閉環 18 份**：sprint5 4 份分散、aider-watch v1 未標 superseded、aiops-flywheel-repair 未 close-out

**過期 feature flag**

- `USE_AI_ROUTER`（ADR-052 已標完成，仍存）
- `AIOPS_P1~P6_ENABLED` 與 MEMORY「全完成」矛盾
- 三個 `*_TIMEOUT_SEC` alias

**必清前 10 名**

1. `git rm` apps/web 全部 70+ 個 D 檔
2. 修 `CLAUDE.md` / `HARD_RULES.md` 內 `apps/web/**` 路徑
3. 拆 `telegram_gateway.py`（6426 行）
4. 確認 `USE_AI_ROUTER` 是否能下線
5. 清三個 `*_agent.py` 過期 timeout alias
6. 清 `ai_router.py:618` DEPRECATED 死碼
7. `decision_fusion_adapter.py` 9 處 TODO 開 issue
8. `AIOPS_P*_ENABLED` 與 prod 對齊
9. 拆 `_archived/` 兩檔到 2026-06-24 自動刪除
10. 整併 sprint5 spec + close 過期 plan

---

### 12. AwoooP Agent Platform + 安全 + MCP 整合

**AwoooP Phase 0-8 進度**

| Phase | 內容 | 狀態 |
|---|---|---|
| 0 | Pre-flight Audit + 14 ADR | ✅ |
| 1 | Control Plane Schema (六合約表 + RLS migration) | ✅ schema；⚠️ RLS migration 需確認 prod 已執行 |
| 2 | Tenant Isolation + Namespace Hardening (ADR-120 三層 hard kill) | ✅ |
| 3 | Contract Packages & Validators | ✅ |
| 4 | Platform Shell Shadow Mode (SKIP LOCKED) | ✅ |
| 5 | MCP Gateway First Slice (五閘門 + redaction) | ✅ |
| 6 | EwoooC Read-Only Tenant Onboarding | ✅ schema；⏳ Provider Proxy 待 |
| 7 | Channel Hub (Telegram 入站鏡像 + Progressive Feedback) | ✅ Shadow |
| 8 | **Final Reply + Approval Flow 改寫** | 🚧 **未完成** |

**ADR-106 ~ ADR-124 一句話清單**

- **106** AwoooP 六平面 + Strangler Fig
- **111** Bootstrap 啟動順序 + 31 background loops project_id 注入
- **112** Contract 版本治理 + HMAC + approval workflow
- **113** Active Revision 切換 worker cache 失效 Outbox
- **114** Channel event 去重 + worker lease + stale run 回收
- **115** Canonical principal 統一映射 + EwoooC Provider Proxy
- **116** Security Hardening：nonce + replay 防護 + 五閘門
- **117** MCP OAuth 2.1 + Confused Deputy 防護
- **118** PostgreSQL RLS（awooop_app role + bypass for admin）
- **119** Durable Execution：step journal + SAGA 補償
- **120** 三層 token budget hard kill + $47k 教訓
- **121** OTel GenAI semantic conventions
- **122** OWASP Agentic AI Top 10 + ISO 42001 對齊
- **123** 31 background loops 三分類 + project_id 注入時程
- **124** 13 global singleton 分解（per-project vs platform_resource）

**5 個安全紅燈**

1. **🔴 .claude/settings.json 含真實 token**（line 584 GITEA、line 436-439 SENTRY 重複 4 次）— `.gitignore` 未排除
2. **🔴 RLS migration 未確認 prod 已執行** — `awooop_phase1_batch1_rls_2026-05-04.sql`
3. **🔴 03-secrets.yaml CHANGE_ME 仍在 repo** — 誤 apply 會覆蓋真實 secret
4. **🟠 settings.json merge conflict marker** 未清（line 576）
5. **🟠 Phase 8 final reply 未完成 → channel_hub Shadow 中無回應**

**MCP servers**：context7 / figma / telegram / playwright（活躍）+ Sentry / Linear / Google Drive / Gmail / Calendar（背景提及）

---

## Part 2 — 2026 AI 主流趨勢調研（4 領域）

### A. AI Agent / Multi-Agent Framework

**2026 Top 5 Framework**

| 排名 | Framework | 適用 |
|---|---|---|
| 1 | **LangGraph** | 有狀態工作流、HITL、需 audit；MIT；企業採用最廣 |
| 2 | **OpenAI Agents SDK** | 2025-03 取代 Swarm；handoff + tracing + guardrails |
| 3 | **CrewAI** | 學習曲線最低；快速原型 |
| 4 | **AutoGen (AG2)** | 對話式 GroupChat；MS 維護 |
| 5 | **AWS Strands / Pydantic AI** | AWS / Python-first 型別驗證 |

**互通協議現況**

- **A2A Protocol**（Linux Foundation, Google 捐）：v1.0 Signed Agent Cards、150+ 組織、22k stars、5 個生產 SDK — **agent 間通訊未來標準**
- **MCP**（Anthropic）：tool 連接層，2026 Roadmap 四大優先（Transport、Agent 通訊、治理、Enterprise）— Confused Deputy 風險已確認
- **AGNTCY**（Cisco 捐）：發現層，與 A2A 互補

**Tool Use 可靠性 4 種 Pattern**

1. Journal-Based Replay（Temporal、Restate）
2. Database Checkpointing（**LangGraph + Postgres** / DBOS）
3. Step-Based Retries（Inngest、Hatchet）
4. Transactional Idempotency（Prefect、Convex）

**Saga 警告**：AI 場景補償邏輯有根本局限（已寄郵件無法反向）。不可逆動作**必須事前攔截**而非事後補救

**Token / 預算 / 安全**

- OWASP Top 10 for Agentic Applications **2026** 發布（ASI08 Cascading Failures、ASI10 Rogue Agents 自我複製）
- **Microsoft Agent Governance Toolkit**（2026-04 開源）：7 模組含 Agent SRE（circuit breaker / error budget / progressive delivery）

### B. LLM Observability / GenAI Tracing / Governance

**OTel GenAI Semantic Conventions**：所有 `gen_ai.*` 屬性仍在 Development（無 Stable）。SignOz 已宣告 Agent-native observability，**推薦 OpenLLMetry SDK** 注入 → 同時送 Langfuse/Phoenix/SignOz

**LLM Tracing Top 5（2026）**

| 排名 | 工具 | License | Self-host |
|---|---|---|---|
| 1 | **Langfuse** | MIT | ✅ |
| 2 | **Phoenix (Arize)** | Elastic 2.0 | ✅ |
| 3 | **OpenLLMetry (Traceloop)** | Apache 2.0 | SDK 層 |
| 4 | **Helicone** | Apache 2.0 | ✅ |
| 5 | **LangSmith** | Proprietary | ❌ |

**AI Gateway**：LiteLLM(OSS, 95ms) / Portkey(SaaS, 27ms) / Kong AI Gateway(Enterprise, 12ms)

**Guardrails**：NeMo Guardrails（Apache 2.0, Colang）/ LLM Guard（MIT, 35 scanner）/ Lakera Guard（被 Check Point 收購）/ Llama Guard（Meta 開源）

**Governance 三標準**

- **ISO 42001**（2023 發布，可認證，3-6 月）
- **NIST AI RMF 1.0**（自願性，啟動期最適）
- **EU AI Act**（**2026-08-02 高風險全面執法**）

實作順序：NIST → ISO 42001 → EU AI Act（共 8-12 月），共用 AI 系統清單

### C. AIOps + Autonomous Remediation

**2026 Top 5 平台**：Dynatrace Davis（拓撲驅動因果 RCA）/ PagerDuty 3 SRE Agent（91% 降噪）/ Datadog Bits AI SRE（$500/20 investigations）/ **Microsoft Azure SRE Agent（Claude 驅動，2026-03-10 GA，機構記憶）** / NeuBird Falcon（$15/investigation）

**Autonomous Remediation 5 種模式**

1. **Confidence-Gate**（信心分數 + SLO for agentic）
2. **Blast Radius Gate**（單節點自動 / 跨服務 HITL）
3. **Bounded-Reversible Action**（不可逆永遠 HITL）
4. **Progressive Autonomy**（建議 → 半自動 → 完全自動）
5. **Agentic War Room**（多 agent 並行假設）

**SRE Copilot 商用**：Resolve.ai（$1M+/年）、Rootly（$20/user/月）、Azure SRE Agent（Azure 訂閱）

**Alert Correlation 鐵律**

- Fingerprint = SHA256 of sorted JSON（**排除 timestamp / 即時值**）
- 業界標竿 70-85% 壓縮率，PagerDuty 91%，NeuBird 98.8% dedup
- Dedup + Correlation 缺一不可

**Knowledge / Postmortem**：Zalando 兩年生產驗證 — 多階段 LLM pipeline 必勝（小模型幻覺 40%）；HITL 監督不可省

### D. RAG / Embeddings / Local LLM

**Embedding Top 5（2026）**

| 排名 | 模型 | 維度 | License | 備註 |
|---|---|---|---|---|
| 1 | Qwen3-Embedding-8B | 7168 | Apache 2.0 | 需 16GB VRAM |
| 2 | NV-Embed-v2 | 4096 | CC-BY-NC | NVIDIA NIM |
| 3 | Jina v5-text-small | 1024 | Apache 2.0 | 最佳 quality-to-size |
| 4 | **Snowflake Arctic 2.0-L** | **1024** | **Apache 2.0** | **比 BGE-M3 高 14% MTEB-R** |
| 5 | BGE-M3（現況） | 1024 | MIT | 已過時 |

**升級路徑**：BGE-M3 → Arctic 2.0-L 或 Jina v5（同維度同 license，重跑 ingestion 即可）

**Reranker**：BGE-Reranker-v2-M3（OSS）/ Cohere Rerank 3.5 / Jina Reranker v2

**RAG 進階模式**：CRAG（CP 值最高，+1 分類層）/ Self-RAG（幻覺最少）/ Agentic RAG（LangGraph DCG，4-10x 成本但品質最高）

**Vector DB**：**pgvector 0.9 升 HNSW + sparse vector 即可滿足現況**（< 10M 向量），無需引入新系統

**Ollama vs vLLM vs SGLang**

| 指標 | Ollama | vLLM | **SGLang** |
|---|---|---|---|
| 吞吐量 | 484 tok/s | 8033 tok/s | **16200 tok/s** |
| RAG/prefix-heavy | 最差 | 一般 | **最佳（RadixAttention）** |
| Structured Output | 弱 | XGrammar-2 | XGrammar-2 |

**GCP-A/B 應改 SGLang，Local 111 留 Ollama 做最後備援**

**Multi-LLM Router**：LiteLLM 仍主流，但**鎖定版本 ≥ 1.83.0**（2026-03 供應鏈攻擊）

---

## Part 3 — 比對分析（Gap Analysis）

### 命中率：AWOOOI 已對標 2026 主流的部分

| 領域 | AWOOOI 現況 | 2026 主流 | 命中 |
|---|---|---|---|
| Multi-Agent 架構 | 12 Agent 角色（Diagnostician/Solver/Critic/Reviewer） | LangGraph supervisor 模式 | ✅ 概念對齊 |
| Tool Use Pattern | MCP Gateway 五閘門 | MCP + OAuth 2.1 + Confused Deputy 防護 | ✅ |
| Token Budget | ADR-120 三層 hard kill | OWASP ASI08/ASI10 防禦 | ✅ |
| OTel GenAI | ADR-121 規劃中 | OTel `gen_ai.*` Development | ✅ 規劃同步 |
| Governance | ADR-122 OWASP+ISO 42001 對齊 | NIST/ISO 42001/EU AI Act | ✅ 規劃同步 |
| 三層 Ollama 容災 | GCP-A/B/Local | 多端點容災 | ✅ |
| Fingerprint dedup | SHA256 + 24h TTL | 業界鐵律 | ✅ |
| KM Flywheel | KM 雙路徑寫入 | Azure SRE Agent 機構記憶 | ✅ 概念對齊 |
| HITL | Telegram approval | Bounded-Reversible | ✅ |
| pgvector | 已用 | pgvector 0.9 是 < 10M 向量首選 | ✅ |
| LiteLLM | 已部署 | 仍主流 | ✅ |
| Langfuse | 已連 | Top 1 LLM tracing | ✅ |

**命中率：12/12 主流概念都有對應，但「規劃 vs 落地」差距明顯**

### 落地差距：規劃完整、落地未完成

| 規劃 | 落地缺口 | 影響 |
|---|---|---|
| ADR-052 AI Router | `USE_AI_ROUTER=False` | 新路由器空轉，舊 fallback 仍主導 |
| MCP Agent Loop | Shadow Mode (`SHADOW=False`) | AI 無法主動執行工具，自主化最後一哩未通 |
| 決策融合方法 III | 9 處權重 hardcode TODO | 「AI 自學調整」是包裝，實際是常數 |
| ADR-118 RLS | migration 未確認 prod 執行 | tenant isolation 形同虛設 |
| ADR-109 Telegram dedup 統一 | 33 個 send_xxx 仍 caller-side | 新增方法漏 dedup 即重複轟炸 |
| AwoooP Phase 0-8 | **Phase 8 未完成** | 用戶端零可感知功能，無 E2E 驗收起點 |
| Security Agent Phase 9.4 LLM | stub | 安全審查仍純規則 |
| Sentry Phase 9 | 30 天未修 TODO | 跨系統關聯弱 |
| `apps/web/` 遷移 | 70+ 檔案 D 未 commit | 半遷移狀態，CI 拉空殼 |
| i18n 100% next-intl | 新前端 0 useTranslations | 違反鐵律 |

### 真正的盲區（規劃也沒有，市場已收斂）

| 2026 主流 | AWOOOI 缺什麼 |
|---|---|
| **OpenLLMetry SDK** 統一 instrumentation | 現靠手動注入 trace |
| **A2A Protocol** agent 間通訊 | 自製 agent 是 Python function call，無加密身份 |
| **NeMo Guardrails** Output guardrail | 無 semantic guardrail，僅 keyword 攔截 |
| **LangGraph** durable checkpointing | 飛輪狀態存 context window |
| **Agentic RAG**（routing/grading/verifying 節點） | RAG 是單次擷取，無 self-correction |
| **SGLang** 高吞吐 inference | GCP-A/B 仍用 Ollama（吞吐量 30 倍差距） |
| **Snowflake Arctic 2.0-L** | 仍用 BGE-M3（同維度同 license，差 14%） |
| **Microsoft Agent Governance Toolkit** SRE 模組 | 自製 circuit breaker，未對標業界 |
| **Multi-stage LLM Pipeline**（Zalando 鐵證） | 部分 agent 仍單次大 prompt（幻覺風險 40%） |

---

## Part 4 — 優化整合方案（分階段 Roadmap）

### 🔴 P0：本週必修（5/8-5/14）

**目標：止血、清債、補洩漏**

1. **`git rm` apps/web 70+ 個 D 檔**，修 CLAUDE.md/HARD_RULES.md 路徑指向 `wooo-aiops/web/**`
2. **清 .claude/settings.json 真實 token**（GITEA `e6c9fecb` + SENTRY `2b730506` ×4），加入 `.gitignore`，輪換兩個 token
3. **修前後端 4 個破鏈**：
   - `/repairs` → `/auto-repair`
   - `/alerts` 後端建路由或前端改路徑
   - `/activity` → `/audit-logs`
   - WebSocket `/api/v1/ws` → `/api/v1/stats/flywheel/ws`（或統一改用 SSE）
4. **`/monitoring` + `/tickets/dashboard` 假資料替換為真 API**（用戶看到的不是亂數）
5. **確認 `awooop_phase1_batch1_rls_2026-05-04.sql` 已在 prod PG 執行**，加 pytest fixture 驗證 cross-tenant
6. **LiteLLM 鎖版本 ≥ 1.83.0** + hash 驗證（2026-03 供應鏈攻擊）
7. **120/121 補 prometheus.yml node-exporter target**

### 🟠 P1：兩週內（5/15-5/28）

**目標：對標 2026 主流，補齊核心整合**

8. **OpenLLMetry SDK 注入**：API 呼叫層加 2-3 行 init，trace 同時送 Langfuse + SignOz；ADR-121 直接落地
9. **Embedding 升級 BGE-M3 → Snowflake Arctic 2.0-L**（同維度同 license，重跑 KM ingestion，+14% MTEB-R）
10. **拆 `telegram_gateway.py` 6426 行**：分 callback router / formatter / dedup / message-builder 4 檔；同步落地 ADR-109 統一 dedup（33 個 send_xxx 改用 `dedup_scope` 參數）
11. **AwoooP Phase 8 啟動**：final reply + approval flow，這是首個用戶可感知里程碑
12. **NeMo Guardrails 本地部署**：注入 OpenClaw 決策路徑做 output guardrail（替代 keyword 攔截）
13. **ClickHouse pool×ratio 啟動時自檢**：query `system.settings`，pool×ratio < 25 直接 fail（feedback_clickhouse_pool_size_rules.md 落地）
14. **Redis namespace 收斂**：建 `core/redis_keys.py` 集中模板，`alert:*`/`governance:*`/`incident:*` 全改 `awoooi:`
15. **`USE_AI_ROUTER` 翻轉到 True**：先 dev 驗證，再 prod 灰度 10% → 50% → 100%
16. **AwoooP Phase 1-7 補 rollback SQL**

### 🟡 P2：一個月內（5/29-6/30）

**目標：架構升級、消化技術債**

17. **MCP Agent Loop 從 Shadow 升 Production**：先低 blast-radius 動作（read-only / 查詢類），HITL 仍開
18. **GCP-A/B Ollama → SGLang 評估**：在 GCP-A 部署 SGLang 並 benchmark vs Ollama；確認 30x 吞吐量提升 + XGrammar-2 結構化輸出穩定
19. **9 處 fusion 權重 hardcode → settings + AI 自學**：對標北極星「AI 自主化」，用線上資料計算權重（不是常數包裝）
20. **拆 `decision_manager.py` 3531 行**（Tier 3 紅區但已被改 20 次）：按 phase flag 拆 P5/P6 分支，需首席架構師授權
21. **AwoooP Phase 8 Final Reply 完成 + E2E**：Telegram → AwoooP run → AI 回覆 → audit log 全鏈路驗證
22. **SecurityAgent Phase 9.4 LLM 實作**：升級為 Llama Guard 或 NeMo Guardrails 整合
23. **CRAG 升級 RAG**：擷取後加 grader 層（CP 值最高的 RAG 進化步驟）
24. **拆 188 SPOF**：PG 外移評估或加 streaming replication；Local Ollama 從 188 搬到專用節點
25. **GitHub Actions 6 個殘留 workflow 全封存**（GitHub billing 鐵律）
26. **集中化 settings registry**：消化 `config.py` 21 次修補的根因

### 🟢 P3：兩個月內（7-8 月）

**目標：架構治理、合規、前端重建**

27. **A2A Protocol 評估**：自製 12 Agent 改用 A2A Signed Agent Cards（為 AwoooP 對外開放奠基）
28. **LangGraph + Postgres Durable Checkpointing 評估**：飛輪狀態從 in-memory 改為持久化（DBOS 模式，零新基礎設施）
29. **Agentic RAG 引入 LangGraph DCG**：高 blast-radius 告警走 routing/grading/verifying 完整迴路
30. **ISO 42001 + NIST AI RMF + EU AI Act 合規啟動**：8-12 月時程，**EU AI Act 2026-08-02 高風險全面執法**前必須完成 Map 階段
31. **Microsoft Agent Governance Toolkit Agent SRE 模組整合**：對標 circuit breaker + error budget + progressive delivery 業界基線
32. **前端重建 next-intl + 設計系統**：100% i18n 鐵律落地（或正式廢除鐵律）+ 13 個行銷頁假資料替換
33. **拆 `openclaw.py` 2711 行 + `webhooks.py` 2458 行**
34. **Multi-stage LLM Pipeline**（Zalando 鐵證）：高 blast-radius 路徑強制走 Critic 二次驗證 + 數值型輸出 DB 實測覆蓋

### 🔵 P4：長期戰略（Q3-Q4 2026）

**目標：自主化飛輪 80→90 的最後一哩**

35. **Bounded-Reversible Action 全鏈分類**：所有 playbook 標 blast-radius 等級 + reversible flag；不可逆動作硬性 HITL
36. **Agentic War Room（NeuBird/Resolve.ai 模式）**：多 agent 並行對 code/infra/telemetry 三路調查（壓縮事故開頭 3-5 分鐘）
37. **機構記憶複利（Azure SRE Agent 模式）**：investigation trace 結構化存 PG + RAG 查詢鏈，Diagnostician 優先查 KM 降低 LLM 推理成本
38. **FalconClaw Skills Hub 模式積木化**：所有 Ansible/kubectl 修復腳本封裝為帶 blast-radius 標籤的 Skill 物件（解 `feedback_auto_execute_pattern_bug.md` 根因）
39. **Strangler Fig 完成 leWOOOgo 積木化**：Router 層禁直接存取 Redis/DB 鐵律 100% 落地
40. **重複實作合併**：Trust Engine 雙份 / Playbook+Runbook generator 雙份 / Governance 三元組 → 收斂為單一架構

---

## 附錄：關鍵指標（盤點起點）

- **Codebase**：apps/api 347 檔 ~107k 行 / 70 個 page.tsx / 11 個 ADR 待加 rollback / 18 個 spec 待閉環
- **DB**：~55-60 PG 表 / 11 migration（12 天）/ pool 10+20
- **告警**：~314 條規則 / 14 檔 / Telegram dedup 散 4+ 模組
- **K8s**：3 主機 K3s + 13 Deployment + 6 CronJob + 3 DaemonSet
- **Workflows**：8 Gitea + 6 GitHub 待封存
- **Agent**：12 個 Agent 角色 / 北極星覆蓋率 62/100
- **MCP**：5 servers 活躍（context7/figma/telegram/playwright/sentry）

---

## 信心評估

- 12 盤點 agent 全部讀真實檔案 + grep + git log，**證據鏈完整**
- 4 web research 每節 2+ 獨立來源交叉驗證
- 比對表 12 個概念全部對應，gap 與盲區基於實際檔案/commit 證據
- Roadmap P0-P4 每個項目都對應到本盤點具體發現

**整體信心：High**
