feat(agent99): establish enterprise AI automation work ledger

This commit is contained in:
ogt
2026-07-10 15:20:23 +08:00
parent a8080e13b9
commit 579d12c3fa
10 changed files with 1283 additions and 2 deletions

View File

@@ -1,5 +1,7 @@
# 2026-06-04 Reboot / Cold-Start / Backup Recovery Workplan
> **2026-07-10 執行入口:** 本文件保留 cold-start、backup 與事故經驗細節目前工作順序、Agent99 控制面、全產品/網站/工具覆蓋與完成契約,以 `docs/workplans/2026-07-10-agent99-enterprise-ai-automation-master-plan.md` 及其機器可讀總帳為準。重啟恢復仍是 P0但必須先修正 Agent99 假 resolved、routing/dedupe、secure ingress 與 verifier/callback否則不能信任自動結案。
> Owner: SRE / DevOps commander
> Timezone: Asia/Taipei
> Baseline: 2026-06-04 15:00 live read-only checks. Do not reuse the 2026-05-29 baseline without rerunning checks.

View File

@@ -1,5 +1,7 @@
# 統帥插入需求主線優先序台帳
> **2026-07-10 排序更新:** 本文件保留為完整需求與歷史證據來源;目前唯一執行順序、全主機/產品/網站/服務/工具/套件覆蓋與 Agent99 AI 自動化完成契約,改由 `docs/workplans/2026-07-10-agent99-enterprise-ai-automation-master-plan.md` 與 `docs/operations/agent99-enterprise-ai-automation-work-items.snapshot.json` 管理。下方舊狀態不得覆蓋新總帳,也不得再以歷史 `Done` 宣稱目前 runtime 完成。
> 建立時間2026-07-02 13:04 CST
> 範圍:本輪 AWOOOI / Gitea / Product Governance 工作中,使用者在主線推進期間插入的要求。
> 目的:把插入要求轉成可排序、可驗證、可接續的工作項目,避免後續 Codex 把它們當成聊天雜訊或另開支線。

View File

@@ -0,0 +1,160 @@
# Agent99 全域 AI 自動化主計畫
> 建立時間2026-07-10 15:05 CST
> 狀態P0 執行中,尚未達成全域 AI 自動化
> 機器可讀總帳:`docs/operations/agent99-enterprise-ai-automation-work-items.snapshot.json`
> 歷史需求來源:`docs/workplans/2026-07-02-commander-inserted-requirements-priority-ledger.md`
## 1. 北極星與完成定義
192.168.0.99 是內網 AI 執行與協調節點。它必須能接收 AWOOOI、AwoooP、IWOOOS、Telegram、主機、VM、服務與網站訊號完成診斷、受控修復、驗證、回報及知識沉澱不能只做排程腳本、固定 regex 分流或告警轉送。
「完整操控」的專業定義是能力範圍完整、政策受控且全程可稽核,不是任意遠端 shell
- 低風險、可回滾、已有 verifier 的動作由 Agent99 自動執行。
- 中風險動作先產生 candidate、check-mode、rollback 與 verifier再由 controlled apply 執行。
- secret 明文、破壞性 DB、主機 reboot、VM power change、firewall/DNS/provider 切換等事故級動作維持 break-glass。
- 任何 `exitCode=0` 只表示命令完成,不能代表問題已解決;只有目標狀態 verifier 通過且事件來源回讀 resolved才能標記 `resolved`
- 99 關機、LAN 中斷或全站失聯時,由獨立外部 watcher 告警並提供 L1 維護頁;不得讓 99 成為自己唯一的監視器。
全域完成必須同時符合:
1. 7 台主機、12 個產品、全部公開路由、基礎服務、工具與套件都有 inventory、owner、freshness 與 verifier。
2. 每個可處置告警都有 incident、evidence、candidate、policy、execution、rollback、verifier、callback 與 learning receipt。
3. 所有產品都有 Gitea source SHA、CD run、deploy marker、runtime image/version、public route 與資料 freshness 的同一時間窗證據。
4. 全主機重啟可被自動偵測,依相依順序恢復,並以首次可用時間與完整綠燈時間證明 10 分鐘 SLO未達標時自動報 blocker 與 ETA。
5. Telegram 只送人看得懂的繁體中文事件卡發生什麼、影響、Agent 做了什麼、結果、下一步;技術證據放按鈕或連結,適合時附圖表或截圖。
6. 相同問題的發生、解決、失敗與避免次數可查;重複問題必須提升 PlayBook trust 或產生永久修復工作項。
## 2. 覆蓋範圍
### 2.1 主機與 VM
| 主機 | 角色與必要能力 | Agent99 責任 |
| --- | --- | --- |
| 192.168.0.99 | Windows、VMware Workstation、Task Scheduler、PowerShell/OpenSSH、Agent99 | Windows/VMware 狀態、VM inventory/autostart、Windows Update 政策、桌面與命令入口、全程 audit |
| 192.168.0.110 | Gitea、Gitea Actions runner、Docker、Harbor/Registry、Prometheus、Alertmanager、Sentry、backup | Source/CD/registry/observability 恢復、CPU/queue 降載、備份與 restore verifier |
| 192.168.0.111 | 必要 VMware guest目前角色與 verified VMX inventory 未完整 | 補 role manifest、VMX、boot/uptime/SSH/exporter、autostart 與服務 verifier |
| 192.168.0.112 | Kali / IWOOOS 安全節點 | 開機、SSH、安全工具健康、受控調查與 AISOC evidence禁止外部攻擊型掃描自動化 |
| 192.168.0.120 | K3s control plane、VIP、AWOOOI workloads | node/pod/rollout/image-pull/cron/Velero 恢復與 verifier |
| 192.168.0.121 | K3s peer、DR drill | peer readiness、workload balance、DR/Velero drill 與 verifier |
| 192.168.0.188 | PostgreSQL、Redis、MOMO、AI/observability/web workloads | data/AI/provider/SignOz/OpenClaw/Ollama/Nginx 健康、效能與備份修復 |
### 2.2 產品與原始碼
目前 Gitea inventory 的 12 個產品全部納入:`awoooi``ewoooc``2026fifa``agent-bounty-protocol``awooogo``stockplatform-v2``vibework``momo-pro-system``tsenyang-website``vtuber``bitan-pharmacy``clawbot-openclaw`。AWOOOI 內的 AwoooP、IWOOOS、AgentOps、AISOC、KM/RAG/MCP 與 OpenClaw 是平台控制面也必須納入版本、runtime、告警與回寫契約。
### 2.3 公開網站與 API
以 cold-start baseline 為最低完整清單AWOOOI web/API/IWOOOS、VibeWork、AwoooGo、2026 FIFA、Agent、MOMO web/health、StockPlatform web/health/API、碧潭大藥局、天揚、VTuber、Gitea、Harbor、Registry、Sentry、SignOz、Langfuse、AIOps。每列都要有 owner product、expected status、L0 maintenance、L1 external fallback、TLS、runtime version 與資料 freshness不能只看 HTTP 200。
### 2.4 服務、工具、套件與資料
- RuntimeWindows services、VMware、systemd、Docker、containerd、K3s、Nginx、PostgreSQL、Redis、MinIO/物件資料、CronJob/Task Scheduler。
- DevSecOpsGitea、Actions runner、Harbor/Registry、ArgoCD/部署標記、Ansible、Velero、restic/rclone、SBOM 與 package inventory。
- ObservabilityPrometheus、Alertmanager、node exporter、cAdvisor、Sentry、SignOz、Langfuse、Wazuh/IWOOOS、Telegram receipt。
- AIAgent99、OpenClaw、Hermes、NemoTron、ElephantAlpha、Ollama、LiteLLM、MCP、KM、RAG、PlayBook、模型與 provider freshness。
- 資料與備份主機設定、DB、repo、registry、網站、套件清單、工具設定、logs、AI artifacts、K3s/Velero、offsite、integrity check 與 restore drill。
## 3. 目標控制面
| 節點 | 權責 |
| --- | --- |
| 外部 watcher / edge | 99 或全內網失聯時仍可產生 down/up 告警、狀態頁與 L1 維護頁;不依賴 99/110/188 |
| AWOOOI | 事件與 incident source of truth、alert normalization、fingerprint、recurrence、產品與 SLO read model |
| AwoooP | Work Item、Run、approval、candidate、rollback、verifier、資產與 owner 總帳 |
| IWOOOS / AISOC | 安全事件 evidence、policy、調查與受控 response高風險行為不得繞過安全邊界 |
| Agent99 | 99/VM/host/service/website 的 evidence collector、planner executor、controlled remediation 與 callback client |
| KM/RAG/MCP/PlayBook | 可重播 evidence、知識、工具介面、已驗證修復與 trust/recurrence 統計 |
| Telegram SRE 戰情室 | 人類命令與事件摘要介面,不是資料庫、任意 shell 或唯一事件來源 |
## 4. 標準 AI 閉環
所有告警與指令必須走同一條鏈:
1. **Sense**:外部 watcher、Alertmanager、Sentry/SignOz、Windows/VMware、host/exporter、logs、backup、public synthetic 收件。
2. **Normalize**:產生 `event_id``incident_id`、fingerprint、source、target、severity、product、host、service、first_seen/last_seen。
3. **Group/Dedupe**:先做 5 分鐘 grouping、single-flight 與同狀態抑噪,再交給 Agent99狀態改變、修復完成與 SLO breach 不抑制。
4. **Collect Evidence**:執行模式專屬 MCP/readback收 metrics、logs、最近變更、source/runtime/version/freshness 與 dependency state。
5. **Plan**:規則 PlayBook 優先AI planner 只產出 allowlisted tool calls、風險、check-mode、rollback、verifier 與 confidence。
6. **Policy**:依動作與 blast radius 判斷 observe、auto-apply、controlled apply 或 break-glass不可由 producer 自行硬設 `controlledApply=true`
7. **Execute**idempotency key、single-flight、timeout、circuit breaker、before evidence、限定 target selector。
8. **Verify**:模式專屬 post-condition、來源事件 resolved、產品/資料 freshness 與回歸 smoke失敗時執行真正 rollback 或明確升級。
9. **Write Back**Agent99 回寫 AWOOOI incident、AwoooP Run/Work Item/Verifier、IWOOOS evidence 與 Telegram 人類事件卡。
10. **Learn**:更新 occurrence/resolved/failed/avoided 計數、MTTA/MTTR、KM/RAG chunk、PlayBook trust、永久修復候選。
合法狀態只有:`received``diagnosing``candidate_ready``executing``verifying``resolved``degraded``blocked``failed``resolved` 必須有 `verifier_passed=true``source_event_resolved=true` 及 evidence reference。
## 5. 更新後的唯一執行順序
### Wave 0先修正 AI 決策真相
| 順序 | ID | 工作 | 狀態 | 驗收 |
| --- | --- | --- | --- | --- |
| 1 | AG99-P0-001 | 修正 `exitCode=0 => resolved` 假綠,對齊 99 runtime script 與 Gitea source SHA | **進行中current P0** | 每種模式以 verifier 決定 outcome舊 runtime/script drift 歸零;不得再把缺證據算 resolved |
| 2 | AG99-P0-002 | 修正 alert taxonomy、wrong-domain routing、bridge-before-grouping 與重複事件 | 待辦 | `suggestedMode`/kind 優先於 source 字串5 分鐘先 group同 fingerprint 只建立一個 active incident |
| 3 | AG99-P0-003 | 強化 ingressrelay token 必填、Telegram chat+sender allowlist、idempotency/single consumer | 待辦 | 未認證 LAN request 拒絕producer `auto_repair`/policy 被保留;所有 request 可追 trace |
| 4 | AG99-P0-004 | 新增 EvidenceCollect / RepairCandidate / MCP lane | 待辦 | 缺 evidence 的事件會建立可查 candidate不再錯送 Perf/AwoooRepair`INC-*` 可從收件追到 candidate |
### Wave 1完成可驗證修復閉環
| 順序 | ID | 工作 | 狀態 | 驗收 |
| --- | --- | --- | --- | --- |
| 5 | AG99-P0-005 | 模式專屬 verifier、真 rollback、cooldown/circuit-breaker | 待辦 | Recover/Perf/LoadShed/Harbor/AWOOOI/backup/provider 各有 post-condition失敗不寫成功 cooldown |
| 6 | AG99-P0-006 | Agent99 → AWOOOI/AwoooP/IWOOOS completion callback | 待辦 | incident/Run/Work Item/Verifier/recurrence 同一 trace 收斂Telegram 可讀回報只從結果物件產生 |
| 7 | AG99-P0-007 | 全主機 10 分鐘 reboot state machine | 進行中live readiness 60% | boot_id/uptime/VM power 建立 reboot event依 dependency DAG 恢復;首可用/全綠時間與 blocker/ETA 可查 |
| 8 | AG99-P0-008 | 99 VMware/VMX/autostart/lock 與 Windows Update no-auto-reboot | 進行中 | 111/112/120/121/188 VMX inventory、開機順序、lock repair、guest running、政策 drift 全部 verifier green |
### Wave 2擴至所有產品與運維面
| 順序 | ID | 工作 | 狀態 | 驗收 |
| --- | --- | --- | --- | --- |
| 9 | AG99-P0-009 | 外部 down/up watcher、L0/L1 維護頁與 502 failover | 進行中 | 99/內網全斷仍能告警edge 失聯自動顯示維護頁;恢復後撤回並驗證,不改正式 DNS 作為日常修復 |
| 10 | AG99-P0-010 | 12 產品、全部網站/API 的版本與資料 freshness 矩陣 | 進行中 | 每列具 source SHA、CD、deploy marker、runtime、HTTP、功能 smoke、data timestamp任何缺欄不宣稱最新 |
| 11 | AG99-P0-011 | 全域 log source registry、AI 異常判讀與 correlation | 待辦 | host/product/site/service/package/tool logs 有 freshness、redaction、tag、cluster、primary/secondary/noise 判定 |
| 12 | AG99-P0-012 | 備份 observability、integrity、offsite 與 restore drill | 進行中 | 所有 backup domain 有 schedule/last success/freshness/restore receipt失敗可定位且 TG 只報一次狀態變化 |
| 13 | AG99-P0-013 | 110/188 及全主機效能 AIOps 與安全降載 | 進行中 | CPU/memory/disk/IO/queue/DB attributionallowlisted action 後 verifier無空值 perf alert、無單次下降假結案 |
| 14 | AG99-P0-014 | Gitea/Harbor/Registry/Gitea-only CD 與完整 DR | 進行中 | repo/main/dev、full dump、DB/settings/issues/packages/LFS、registry、sample restore、runner/CD/runtime marker 全部可回讀 |
### Wave 3真正 AI Agent 與產品化
| 順序 | ID | 優先序 | 工作與驗收 |
| --- | --- | --- | --- |
| 15 | AG99-P1-001 | P1 | 接入 OpenClaw/Hermes/NemoTron/ElephantAlpha 的 planner/reviewer先 replay、shadow、canary再提升執行權限 |
| 16 | AG99-P1-002 | P1 | PlayBook trust/promotion成功、失敗、rollback、人工介入與 recurrence 決定自動化等級 |
| 17 | AG99-P1-003 | P1 | Telegram 繁中事件卡一眼摘要、影響、AI 動作、驗證結果、下一步;長證據摺疊,圖表/截圖按事件需要產生 |
| 18 | AG99-P1-004 | P1 | 99 桌面控制中心、Telegram `/agent99`、本機 Submit Request、API command surface 共用同一 policy/audit不依賴 Codex 額度 |
| 19 | AG99-P1-005 | P1 | AwoooP Runs/Work Items/Knowledge 與 AWOOOI Incident/Observability、IWOOOS/AISOC 完整產品化整合 |
| 20 | AG99-P1-006 | P1 | 工具/套件版本、CVE、SBOM、EOL、更新與 rollbackWindows/Linux/container/model/package drift 皆可查 |
| 21 | AG99-P1-007 | P1 | 安全事件 AI triage、evidence preservation、containment candidate外部攻擊、credential 與不可逆隔離維持 break-glass |
| 22 | AG99-P1-008 | P1 | 每日/事故/週報MTTA、MTTR、SLO、recurrence、avoided、false-positive、automation coverage、人工介入與永久修復 |
| 23 | AG99-P2-001 | P2 | 定期 cold-start/restore/chaos drill 與 game day先隔離環境再 production controlled drill |
| 24 | AG99-P2-002 | P2 | capacity、成本、模型品質與自動化成功率趨勢據此調整資源與 agent routing |
| 25 | AG99-P2-003 | P2 | 受控 GUI/VM Console/browser automation只能用 allowlisted app/action、畫面證據與 rollback不以像素點擊取代 API/CLI |
## 6. 目前真相與禁止誤報
2026-07-10 15:04 production readback
- AWOOOI health HTTP 200但整體狀態為 `degraded`,不能稱完整正常。
- Reboot SLO 為 `blocked_reboot_auto_recovery_slo_not_ready`readiness 60%12 個 active blockersprimary 是 `reboot_event_required_host_unreachable`
- Service/data/backup 的部分 readback 已綠,不代表 reboot event、VMware、edge fallback 與 Windows policy 已完成。
- Gitea inventory 有 12 個產品的 main/dev SSH refs這只證明 repo/branch 存在,不證明每個產品 production 都是最新版本。
- Agent99 現況仍是規則式 SRE automation在 planner、tool loop、mode verifier、callback、secure ingress 完成前,不得宣稱完整 AI Agent。
## 7. 工作項強制欄位與治理
每個工作項必須先有:`id`、priority/order/status、scope、owner lane、dependencies、acceptance 與 next action。任何工作項升到 `candidate_ready``in_progress``executing` 前,還必須補齊 problem、trigger、evidence sources、AI role、action mode、controlled actions、prohibited actions、rollback、mode-specific verifier、callback、evidence refs 與 last update缺一不可執行。
執行規則:
1. 同一時間只有一個 `current_p0`;可平行收集證據,但不能改變執行順序。
2. 所有狀態改變寫入 JSON 總帳,再投影到 AWOOOI/AwoooPMarkdown 是人類說明,不是 runtime truth。
3. source/test、Gitea CD、runtime deploy、public/data readback 分層保存,不能用其中一層替代其他層。
4. controlled apply 前必須有 target selector、before evidence、check-mode、rollback、verifier、timeout、single-flight。
5. `resolved` 後仍要跑 freshness/recurrence observation window復發則 reopen 同 fingerprint 並增加 recurrence。
6. GitHub 全面停用;所有 source、CD 與 restore truth 只走 Gitea、本機與 production readback。
## 8. 立即下一步
目前唯一 P0 是 `AG99-P0-001`:先修正 Agent99 假 resolved 與 99 runtime/source drift建立 outcome contract 與 regression tests。完成後依序做 routing/dedupe、secure ingress、RepairCandidate再回到 reboot state machine 的 live rerun如此不是離開重啟主線而是先修正會把重啟與告警錯誤結案的控制核心。