# AWOOOI 全景盤點 × 2026 AI 趨勢比對 × 優化整合方案（最終版）

> 產出：2026-05-08 終版（取代 5/7 v1 + 5/8 v2）
> 範圍：254 commits / 全 codebase / 6 主機 + 1 MacBook / AI 子系統 / DB / 監控 / CI/CD / 安全 / AwoooP
> 方法：12 Agent 並行盤點 + 4 Web Researcher 並行調研 + 三機 SSH 實測效能 benchmark
> 信心：High（每節 2+ 來源交叉驗證 + 實機數據）

---

## 第一部分 — 硬體現況真相（先過這一關）

**AWOOOI 全部七台機器：零 NVIDIA GPU。** 任何 CUDA-only 工具直接劃為 not applicable。

| 主機 | 角色 | 機型 | CPU | GPU | RAM | 推理可用性 |
|---|---|---|---|---|---|---|
| 110 | DevOps 金庫 | bare metal | — | ❌ | — | 不跑 LLM（Harbor / Gitea / Sentry / Langfuse / Prometheus / Nginx Ollama proxy） |
| 120 | K3s CP MASTER | bare metal | — | ❌ | — | 不跑 LLM（keepalived MASTER + awoooi-prod） |
| 121 | K3s CP BACKUP | bare metal | — | ❌ | — | 不跑 LLM（ArgoCD / kube-state-metrics / mon cluster） |
| 188 | AI+Web 中心 | bare metal | — | ❌ | — | 不跑大 LLM（PG/Redis/SignOz/Local Ollama 集中度過高） |
| **GCP-A** `34.143.170.20` | Ollama Primary | `c4d-standard-8-lssd` | AMD EPYC 9B45 8 vCPU AVX-512 | ❌ | **30 GB** | CPU 推理 ≤7B |
| **GCP-B** `34.21.145.224` | Ollama Secondary | `c4d-standard-8-lssd` | 同 A | ❌ | **30 GB** | CPU 推理 ≤7B |
| **111** | Local Ollama 邊緣 | MacBook Pro | M1 Pro 8 CPU | **14 GPU cores Metal** | **16 GB unified** | Metal 推理 ≤7B（14B OOM） |

**儲存**：GCP-A/B 各有 **375 GB Local NVMe SSD**（c4d-lssd 後綴含義），扣掉 65G/63G 模型佔用，**仍有 290+ GB 充足空間**。GCP-A boot disk 已從 100% 滿恢復到 45%（5/8 完成）。

### 三機 LLM 實測效能（同 prompt 同 quantization）

| 平台 | 3B 單請求 | 7B 單請求 | 7B 4 並行 wall | 14B | 32B |
|---|---|---|---|---|---|
| GCP c4d-CPU | 25.6 tok/s | ~5-10 tok/s | — | 2-5 tok/s ✅統帥認可 | **0.4 tok/s（5+ 分/問）** |
| 111 M1 Pro Metal | **58.7 tok/s** | **26.3 tok/s** | **wall 11s, agg 14.6 tok/s** | OOM（16G + 4G swap 不夠） | 不可能 |

**統帥校正鐵律**：14B at 2-5 tok/s 可接受（告警解決非即時）→ SGLang 升級從「重要」降為「條件觸發」。

---

## 第二部分 — 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`、`474b913a`、`f09a8f56` |
| 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 次 |
| `services/governance_agent.py` / `ai_router.py` / `openclaw.py` / `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
- **巨型檔 8 個（>1000 行）**：

| 檔案 | 行數 | 重構優先 |
|---|---|---|
| `services/telegram_gateway.py` | **6,426** | P1 拆 4 檔 |
| `services/decision_manager.py` | **3,531** | P2 Tier 3 紅區，需授權 |
| `services/openclaw.py` | 2,711 | P3 |
| `api/v1/webhooks.py` | 2,458 | P3 |
| `db/models.py` | 1,687 | 按 domain 切 |
| `services/incident_service.py` | 1,448 | — |
| `services/ai_router.py` | 1,407 | 三 class 拆三檔 |
| `services/learning_service.py` | 1,341 | — |

**重複實作 5 例**

1. **Ollama Failover 四層疊架**：`ollama_health_monitor` → `ollama_failover_manager` → `ollama_auto_recovery` → `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` Phase 9.4 LLM stub
- `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/cve/backup）
- `routes/health.py:278` 健康檢查未完成
- `jobs/capacity_forecaster_job.py` Holt-Winters 用線性回歸代替
- `plugins/mcp/providers/grafana_provider.py:54` 例外空殼
- `plugins/mcp/providers/filesystem_provider.py:84` 同上

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

### 3. 前端網站盤點

- **`apps/web/` 已從磁碟移除，git 仍追蹤 70+ D 檔案**（半遷移狀態）
- **Active**：`/Users/ogt/wooo-aiops/web/` (Next.js 14.1 / TS 5.3 / Radix UI / Zustand / TanStack Query / Tailwind)
- **頁面總數**：70 個 page.tsx
- **i18n 完全沒接**：`useTranslations` 呼叫數 = 0，違反 `feedback_i18n_zero_hardcode` 鐵律
- **硬編碼 IP 違規**：`activities/route.ts`、`notifications/history/route.ts` 假 IP；`.env.example` `localhost:8000` 危險
- **Emoji 違規**：26 檔 / 42 處違反 `feedback_no_emoji_use_icons`

### 4. 前端頁面功能正常性（70 個 page.tsx）

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

**P0 必修頁面 Top 5**

1. **`/monitoring/MonitoringContent.tsx`** — 全假資料（`Math.random()` 生成 SLA）
2. **`/tickets/dashboard/page.tsx`** — 硬寫 `DevOps: 15 tickets, resolved: 14`
3. `/dashboard/DashboardContent.tsx` — SSR 完全關閉，多 widget 未確認真實 API
4. `/users/page.tsx` — 168 處硬字串（全站最高）
5. `/compliance/page.tsx` — i18n=0、無 error state

**殘留物**：`console.log` 94 處 / 14 page.tsx；`as any` 3 處；TODO 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 容災（已修正 188 移除）**

| 層 | 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

**已知缺口（北極星「AI 自主化」62/100）**

| 缺口 | 嚴重度 |
|---|---|
| `USE_AI_ROUTER=False` 新路由器空轉 | 🔴 |
| `ENABLE_OPENCLAW_AGENT_LOOP_SHADOW=False` Agent Loop 仍 shadow | 🔴 |
| 9 處 `decision_fusion_adapter.py` 權重 hardcode | 🔴（與「自學」北極星矛盾） |
| Security LLM 層 stub | 🟠 |
| DIAGNOSE 已無 Ollama，全靠雲端 | 🟠（成本/延遲） |
| `FLYWHEEL_MIN_SAMPLE=10` hardcode | 🟡 |

### 6. 資料庫盤點

- **PG 表數**：~55-60（37 ORM + AwoooP 16 + Phase 1-7 約 20）
- **Pool**：`pool_size=10, max_overflow=20`
- **ClickHouse**：客戶端 max=100，server pool 不在 repo（在 SignOz 188）— 2026-05-05 過載事故根因

**12 天 11 個 migration**（AwoooP Phase 1-7 共 7 個 SQL，**未見 rollback 檔，重大缺口**）

**潛在風險**

- `learning_service.py:5028` N+1 query
- Redis namespace 不統一（`awoooi:` vs `alert:` vs `governance:` vs `incident:`）
- AwoooP RLS migration 未測量鎖時長
- `phase25_knowledge_enum_names.sql` 容忍 `insufficient_privilege` 已踩兩次

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

- **告警規則總量**：~314 條 / 14 檔
- **最大檔**：`alerts-unified.yml` 106 條 + `alerts.yml` 80 條
- **Telegram dedup 散落 4+ 模組**（**ADR-109 統一 dedup 未落地**，33 個 send_xxx 仍 caller-side）

**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 + Gitea + ArgoCD；120/188 K3s agent
- **Workloads**：3 Deployment + 5 CronJob + 3 HPA + 3 VPA（prod）
- **Gitea workflows**：8 個（cd / cd-dev / code-review / deploy-alerts / e2e-health / run-migration / ansible-lint / type-sync-check）
- **GitHub Actions 殘留 6 個應封存**

**已知問題**

1. Docker Build Lock 競爭仍有機率超時
2. Stale Gitea Jobs 治理依賴 cron
3. ArgoCD 與 Gitea HMAC webhook 斷線無告警
4. workflow-only 變更跳過 CD 過濾邏輯可能誤判

### 9. 四主機服務盤點（已校正）

| 主機 | 近期事故 |
|---|---|
| 110 | 2026-05-05 load 41→37（Sentry CH pool 升 4→8） |
| 188 | 2026-05-05 load 20→3.56（cadvisor v0.47 + SignOz CH + litellm Prisma + momo） |
| GCP-A | **2026-05-08 boot disk 100% → 45%（已修）** |
| GCP-B | 幾乎閒置 load 0.02（**與 ADR-110 主備配置不符**） |

**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 + 應用（單點集中度過高）

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

**5 個破鏈**

1. **`/alerts` → `GET /api/v1/alerts`**：後端無此 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`

### 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 過期未清

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

**過期 feature flag**：`USE_AI_ROUTER`、`AIOPS_P1~P6_ENABLED`、三個 `*_TIMEOUT_SEC`

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

**AwoooP Phase 0-8 進度**

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

**ADR-106 ~ ADR-124 一句話**：106 六平面 / 111 Bootstrap / 112 Contract 治理 / 113 Active Revision / 114 Channel dedup / 115 Canonical principal / 116 Security / 117 MCP OAuth 2.1 / 118 RLS / 119 Durable Execution Saga / 120 Token budget hard kill / 121 OTel GenAI / 122 OWASP+ISO 42001 / 123 31 background loops / 124 13 global singleton 分解

**5 個安全紅燈**

1. **🔴 .claude/settings.json 含真實 token**（GITEA `e6c9fecb` + SENTRY `2b730506` ×4）
2. **🔴 RLS migration 未確認 prod 已執行**
3. **🔴 03-secrets.yaml CHANGE_ME 仍在 repo**
4. **🟠 settings.json merge conflict marker** 未清
5. **🟠 Phase 8 final reply 未完成 → channel_hub Shadow 中無回應**

**MCP servers**：context7 / figma / telegram / playwright（活躍）

---

## 第三部分 — 2026 主流趨勢調研

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

**2026 Top 5**

| 排名 | 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 — agent 間通訊未來標準
- **MCP**（Anthropic）：tool 連接層；Confused Deputy 風險已確認
- **AGNTCY**（Cisco 捐）：發現層，與 A2A 互補

**Tool Use 可靠性 4 種 Pattern**：Journal-Based Replay（Temporal）/ DB Checkpointing（**LangGraph + Postgres** / DBOS）/ Step-Based Retries（Inngest）/ Transactional Idempotency（Prefect）

**Token / 預算 / 安全**：OWASP Agentic Top 10 **2026** 發布（ASI08 Cascading / ASI10 Rogue Agents）；Microsoft Agent Governance Toolkit（2026-04 開源）

### B. LLM Observability / Governance

**OTel GenAI Semantic Conventions**：所有 `gen_ai.*` 屬性仍在 Development。**OpenLLMetry SDK** 是 OTel-native 推薦做法。

**LLM Tracing Top 5**：Langfuse（已用）/ Phoenix (Arize) / OpenLLMetry (Traceloop) / Helicone / LangSmith

**AI Gateway**：LiteLLM 95ms（已用）/ Portkey 27ms / Kong AI Gateway 12ms

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

**Governance 三標準**：ISO 42001（可認證 3-6 月）/ NIST AI RMF / **EU AI Act 2026-08-02 高風險全面執法**

### C. AIOps + Autonomous Remediation

**2026 Top 5 平台**：Dynatrace Davis（拓撲驅動因果）/ PagerDuty 3 SRE Agent（91% 降噪）/ Datadog Bits AI SRE / **Microsoft Azure SRE Agent（Claude 驅動 GA）** / NeuBird Falcon

**5 種模式**：Confidence-Gate / Blast Radius Gate / Bounded-Reversible / Progressive Autonomy / Agentic War Room

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

**Alert Correlation 鐵律**：Fingerprint = SHA256 of sorted JSON（排除 timestamp）；業界標竿 70-85% 壓縮率

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

### D. RAG / Embeddings / Local LLM

**Embedding Top 5**

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

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

**RAG 進階**：CRAG（CP 值最高）/ Self-RAG / Agentic RAG（LangGraph DCG）

**Vector DB**：**pgvector 0.9 升 HNSW + sparse vector** 即可滿足現況（< 10M 向量）

**Ollama vs vLLM vs SGLang**：c4d-CPU 跑 32B = 0.4 tok/s（實測） / vLLM GPU 50-150 / SGLang H100 500-1000+；**SGLang 強制 CUDA**

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

---

## 第四部分 — Gap Analysis（盤點 vs 趨勢）

### 命中：12/12 概念對齊

Multi-Agent / MCP / Token Budget / OTel GenAI / OWASP+ISO 42001 / Ollama 容災 / fingerprint dedup / KM Flywheel / HITL / pgvector / LiteLLM / Langfuse — **概念全到位，但「規劃 vs 落地」差距顯著**。

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

| 規劃 | 落地缺口 | 影響 |
|---|---|---|
| ADR-052 AI Router | `USE_AI_ROUTER=False` | 新路由器空轉 |
| MCP Agent Loop | Shadow Mode | AI 無法主動執行工具 |
| 決策融合方法 III | 9 處權重 hardcode | 「自學」是包裝 |
| ADR-118 RLS | migration 未確認 prod 執行 | tenant isolation 形同虛設 |
| ADR-109 Telegram dedup 統一 | 33 個 send_xxx caller-side | 漏一個就重複轟炸 |
| AwoooP Phase 0-8 | **Phase 8 未完成** | 用戶端零可感知功能 |
| Security Agent Phase 9.4 LLM | stub | 安全審查仍純規則 |
| `apps/web/` 遷移 | 70+ 檔案 D 未 commit | CI 拉空殼 |
| i18n 100% next-intl | 新前端 0 useTranslations | 違反鐵律 |

### 真盲區（市場已收斂、AWOOOI 沒做）— 加上硬體相容性過濾

| 2026 主流 | 後端要求 | AWOOOI 可用性 |
|---|---|---|
| **OpenLLMetry SDK** | Python lib | ✅ 全機可用 |
| **Snowflake Arctic 2.0-L** Embedding | Ollama / Transformers | ✅ 全機可用 |
| **A2A Protocol** | gRPC / HTTP | ✅ 全機可用 |
| **NeMo Guardrails / Llama Guard 8B** | Ollama / vLLM | ✅ 全機可用 |
| ~~**SGLang**~~ | **CUDA-only** | ❌ **全機不適用，永久延後** |
| **LangGraph PG Checkpointing** | PG + Python | ✅ 用 188 現有 PG |

**結論：6 個 → 5 個立即可上（83% 命中），不動硬體。SGLang 改條件觸發。**

---

## 第五部分 — 飛輪推理層分配（基於實測效能）

| 任務類型 | 模型 | 推薦平台 | 理由 |
|---|---|---|---|
| Embedding (RAG / KM) | 1B (bge-m3 / Arctic 2.0-L) | GCP-A/B + 111 | CPU/Metal 都夠快 |
| 告警分類 / 路由 | 3B-4B | GCP-A/B + 111 | 25-58 tok/s 即時 |
| DIAGNOSE Ollama lane | 7B | GCP-A/B（首選）/ 111（次選） | 5-26 tok/s |
| Solver / Critic 簡單版 | 14B | GCP-A/B（2-5 tok/s 統帥認可） | 不需即時 |
| Solver / Critic 複雜版 | 32B+ | **雲端 API**（NEMO/Gemini/Claude） | CPU/Metal 都不行 |
| 結構化動作生成 | 32B+ | **雲端 API** | 同上 |

**這直接支持 ADR-105 commit fb0c72db「DIAGNOSE primary 改 Ollama」設計** — 只要 ≤14B 就走本地，否則回雲端。

### SGLang 升級條件（觸發才動）

| 方案 | 月成本 | 解鎖 | 觸發條件 |
|---|---|---|---|
| 維持現況 | $0 | 5/6 命中 + 14B 邊緣可用 | 預設 |
| 升 GCP-A 為 `g2-standard-8` (L4 24GB) | ~+$650 | SGLang 30x + 32B 本地 | **雲端 API 月費 > $1500** |
| 採購 Mac Studio M3/M4 Max 64GB+ | ~$5000 一次 | MLX 跑 70B 本地 | **業務需求 70B 本地** |
| 維持 NVIDIA NIM API | 按用量 | 無新成本 | 預設 |

---

## 第六部分 — 修訂後 P0-P4 Roadmap

### 🔴 P0 本週必修（5/8-5/14）— 全部不動硬體

| # | 動作 | 狀態 |
|---|---|---|
| 1 | GCP-A boot disk 100% 滿 → 45% | ✅ 已完成 5/8 |
| 2 | Journal cap 100M 防再長 | ✅ 已完成 5/8 |
| 3 | `git rm` apps/web 70+ D 檔 | ⏳ |
| 4 | 修 CLAUDE.md / HARD_RULES.md `apps/web/**` 路徑 | ⏳ |
| 5 | 清 `.claude/settings.json` 真實 token + 加入 `.gitignore` + 輪換 | ⏳ |
| 6 | 修 4 個前後端破鏈（`/repairs` / `/alerts` / `/activity` / WebSocket） | ⏳ |
| 7 | `/monitoring` + `/tickets/dashboard` 假資料替換 | ⏳ |
| 8 | 確認 `awooop_phase1_batch1_rls_2026-05-04.sql` prod 已執行 + cross-tenant pytest | ⏳ |
| 9 | LiteLLM 鎖版本 ≥ 1.83.0（2026-03 供應鏈攻擊） | ⏳ |
| 10 | 120/121 補 prometheus.yml node-exporter target | ⏳ |
| 11 | GCP-A/B 對齊 ADR-110 主備（B 目前閒置 load 0.02） | ⏳ |
| 12 | GCP-A 加 swap 8GB（防 OOM） | ⏳ |

### 🟠 P1 兩週內（5/15-5/28）— 5 個 2026 盲區全落地

| # | 動作 |
|---|---|
| 13 | **OpenLLMetry SDK 注入** API 呼叫層 → trace 同送 Langfuse + SignOz（ADR-121 落地） |
| 14 | **Embedding 升級 BGE-M3 → Snowflake Arctic 2.0-L**（同維度同 license，重跑 KM ingestion） |
| 15 | **NeMo Guardrails / Llama Guard 8B 部署 GCP-B**（閒置 + 288G SSD）→ 注入 OpenClaw 決策路徑 |
| 16 | **A2A Protocol PoC**：自製 12 Agent 之一試 Signed Agent Card |
| 17 | **LangGraph PG Checkpointing**：用 188 現有 PG，飛輪 read-only canary |
| 18 | **拆 `telegram_gateway.py` 6426 行** → 4 檔 + 落地 ADR-109 統一 dedup |
| 19 | **AwoooP Phase 8 啟動**：final reply + approval flow（首個用戶可感知功能） |
| 20 | ClickHouse pool×ratio 啟動時自檢 |
| 21 | Redis namespace 收斂 `core/redis_keys.py` |
| 22 | `USE_AI_ROUTER=True` 灰度 10% → 50% → 100% |
| 23 | AwoooP Phase 1-7 補 rollback SQL |

### 🟡 P2 一個月內（5/29-6/30）— 架構升級 / 消化技術債

| # | 動作 |
|---|---|
| 24 | MCP Agent Loop 從 Shadow 升 Production（read-only 動作起步） |
| 25 | 9 處 fusion 權重 hardcode → settings + AI 自學 |
| 26 | 拆 `decision_manager.py` 3531 行（需首席架構師授權，Tier 3） |
| 27 | AwoooP Phase 8 完成 + E2E 驗證 |
| 28 | SecurityAgent Phase 9.4 LLM 實作（升級 Llama Guard 整合） |
| 29 | CRAG 升級 RAG（擷取後加 grader 層） |
| 30 | GitHub Actions 6 個殘留 workflow 全封存 |
| 31 | 集中化 settings registry（消化 `config.py` 21 次修補） |
| 32 | 拆 188 SPOF：PG 評估 streaming replication；Local Ollama 從 188 搬出 |
| 33 | 111 角色重新定義：M1 Pro 16GB 退為「邊緣備援」 |

### 🟢 P3 兩個月內（7-8 月）— 治理 / 合規 / 前端重建

| # | 動作 |
|---|---|
| 34 | A2A Protocol 全面落地（自製 12 Agent 改 Signed Agent Cards） |
| 35 | LangGraph 全面取代飛輪 in-memory state |
| 36 | Agentic RAG 引入 LangGraph DCG |
| 37 | **ISO 42001 + NIST AI RMF + EU AI Act 合規啟動**（**EU AI Act 2026-08-02 高風險全面執法倒數**） |
| 38 | Microsoft Agent Governance Toolkit Agent SRE 模組整合 |
| 39 | 前端重建 next-intl + 設計系統（13 行銷頁假資料替換） |
| 40 | 拆 `openclaw.py` 2711 行 + `webhooks.py` 2458 行 |
| 41 | Multi-stage LLM Pipeline（Zalando 鐵證） |

### 🔵 P4 長期戰略（Q3-Q4 2026）— 自主化飛輪 80→90

| # | 動作 |
|---|---|
| 42 | Bounded-Reversible Action 全鏈分類 |
| 43 | Agentic War Room（NeuBird/Resolve.ai 模式） |
| 44 | 機構記憶複利（Azure SRE Agent 模式） |
| 45 | FalconClaw Skills Hub 模式積木化 |
| 46 | 重複實作合併（Trust Engine / Playbook+Runbook / Governance 三元組） |

### ⚪ Conditional 條件觸發

- **SGLang 落地** ← 雲端 API 月費 > $1500 或新採購 NVIDIA GPU
- **MLX 整合** ← 採購 Mac Studio M3/M4 Max 64GB+

---

## 第七部分 — 關鍵指標儀表

### Codebase / 規模

- apps/api 347 檔 ~107k 行
- 前端 70 個 page.tsx
- 11 個 ADR 待加 rollback
- 18 個 spec 待閉環
- Codex 254 commits / 12 天（fix 48% / refactor 0）

### 資料 / 儲存

- ~55-60 PG 表 / 11 migration 12 天 / pool 10+20
- ClickHouse pool×ratio 守護鐵律
- Redis namespace 4+ 種待收斂

### 監控 / 告警

- ~314 條規則 / 14 檔
- Telegram dedup 散 4+ 模組
- ADR-109 統一 dedup 待落地

### 部署 / K8s

- 3 主機 K3s + 13 Deployment + 6 CronJob + 3 DaemonSet
- 8 Gitea workflow + 6 GitHub 待封存

### AI

- 12 Agent 角色
- 北極星「自主化」覆蓋率 62/100
- USE_AI_ROUTER=False / Agent Loop Shadow / 9 處 fusion 權重 hardcode

### MCP

- context7 / figma / telegram / playwright（活躍）

### 硬體（實測 5/8 確立）

- 6 主機 + 1 MacBook 全部 **零 NVIDIA GPU**
- GCP-A/B：c4d-lssd CPU + 30GB RAM + 375GB Local NVMe
- 111：M1 Pro 14 GPU cores Metal + 16GB（≤7B 適用）

### 已完成（5/8）

- ✅ GCP-A boot disk 100% → 45%（Ollama 4.9G 搬到 SSD）
- ✅ Journal cap 100M 已配置
- ✅ 三機 LLM benchmark 實測完畢
- ✅ 14B 2-5 tok/s 統帥認可
- ✅ SGLang 改條件觸發

---

## 第八部分 — 紅燈警報

### 🔴🔴🔴 必須立刻處理

1. **`.claude/settings.json` 含真實 token** — GITEA `e6c9fecb` + SENTRY `2b730506` ×4，`.gitignore` 未排除
2. **`apps/web/` 70+ D 未 commit** — git 半遷移狀態，CI 拉空殼
3. **AwoooP RLS migration prod 未確認執行** — tenant isolation 形同虛設，EwoooC Phase 6 已開但 RLS 未驗證 → **cross-tenant data leak 風險**

### 🔴🔴 中期紅燈

4. **EU AI Act 2026-08-02 高風險全面執法** — 倒數 86 天
5. **188 SPOF 集中度過高**（PG + 觀測 + Local Ollama + 應用 + dev API 同台）
6. **Local Ollama nginx proxy 11435/11436/11437 都在 110**（110 掛全鏈斷）

### 🟠 持續觀察

7. ClickHouse pool×ratio 沒有自動門檻檢查
8. cadvisor 自身仍是單點（無獨立 watchdog）
9. ArgoCD 與 Gitea HMAC webhook 斷線無告警
10. 9 處 `decision_fusion_adapter.py` 權重 hardcode（與 AI 自學北極星矛盾）

---

## 第九部分 — 學到的教訓 → 立規矩

### 鐵律：「2026 工具評估」必須先過硬體相容性門

新增 Memory：[`feedback_hardware_compatibility_first.md`](../../../../../.claude/projects/-Users-ogt-awoooi/memory/feedback_hardware_compatibility_first.md)

任何 LLM serving / inference 工具在 roadmap 中標「立即可上」前，**必須先分類後端要求**：

| 後端類別 | 代表工具 | AWOOOI 適用性 |
|---|---|---|
| **CUDA-only** | SGLang / vLLM 主流模式 / TensorRT-LLM | ❌ 全機不適用，除非新採購 NVIDIA GPU |
| **Apple Silicon (Metal/MLX)** | MLX / llama.cpp Metal | ✅ 只 111，且 16GB RAM 限制 ≤7B |
| **CPU-friendly** | llama.cpp / Ollama (內建) | ✅ AVX-512 EPYC c4d-lssd，限制 ≤7B 即時 / 14B 慢 |
| **後端無關** | SDK / Protocol / DB lib / Tracing | ✅ 全機通用 |

**禁止行為**：把 CUDA-only 工具放「立即可上」表；用「考慮升 GPU」當作工具立即可用的理由。

### 其他次要教訓

- **「fix 48% / refactor 0」是技術債堆積信號**，下個 Sprint 必排 1 次重構衝刺消化巨型檔
- **「同檔修補 ≥10 次」是設計缺陷信號**，不是「這支架程式很重要」
- **「規劃完整 ≠ 已落地」**，roadmap 評分要看 flag 是否 True、migration 是否 prod 執行、test 是否 cover

---

## 信心評估

- 12 盤點 agent 全部讀真實檔案 + grep + git log，**證據鏈完整**
- 4 web research 每節 2+ 獨立來源交叉驗證
- 三機（GCP-A、GCP-B、111）SSH 實測 benchmark 提供硬體真相
- 統帥認可校正了原方案盲點（CUDA-only 警示 + 14B 2-5 tok/s 可接受）
- Roadmap P0-P4 共 46 項，每項對應到本盤點具體發現

**整體信心：High**

---

## 附錄：交付物索引

- 本檔（最終版）：`docs/superpowers/specs/2026-05-08-FINAL-comprehensive-audit-and-roadmap.md`
- 中間版（已被取代）：
  - `docs/superpowers/specs/2026-05-07-comprehensive-audit-and-2026-roadmap.md`
  - `docs/superpowers/specs/2026-05-08-revised-roadmap-with-hardware-truth.md`
- LOGBOOK：`docs/LOGBOOK.md`（5/7 + 5/8 entries）
- Memory：
  - `~/.claude/projects/-Users-ogt-awoooi/memory/project_audit_20260507.md`
  - `~/.claude/projects/-Users-ogt-awoooi/memory/feedback_hardware_compatibility_first.md`（新鐵律）
