Files
awoooi/docs/ai/AI_AGENT_PROACTIVE_OPERATIONS_2026-06-11.md
Your Name b17a28c293
Some checks failed
CD Pipeline / tests (push) Successful in 1m35s
Code Review / ai-code-review (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Successful in 6m19s
CD Pipeline / post-deploy-checks (push) Successful in 1m30s
feat(governance): 新增報表 runtime 啟動前閘門
2026-06-12 11:34:21 +08:00

186 lines
21 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AI Agent 主動營運委派與版本生命週期分析報告
> 日期2026-06-11台北時間
> 文件定位P2-402A / P2-402B / P2-402C / P2-402D / P2-402E / P2-402F / P2-402G / P2-403A / P2-403B / P2-403C / P2-403D / P2-403E / P2-403F / P2-403G / P2-403H / P2-403I / P2-403J 只讀契約與治理 UI 摘要。權威細節以 MASTER §3.2.1c / §3.2.1d、`ai_agent_proactive_operations_contract_v1`、`ai_agent_interaction_learning_proof_v1`、`ai_agent_live_read_model_gate_v1`、`ai_agent_redis_dry_run_gate_v1`、`ai_agent_learning_writeback_approval_package_v1`、`ai_agent_telegram_receipt_approval_package_v1`、`ai_agent_owner_approved_learning_dry_run_v1`、`ai_agent_owner_approved_fixture_dry_run_v1`、`ai_agent_runtime_write_gate_review_v1`、`ai_agent_post_write_verifier_package_v1`、`ai_agent_runtime_verifier_evidence_review_v1`、`ai_agent_report_truth_actionability_review_v1`、`ai_agent_report_automation_review_v1`、`ai_agent_version_freshness_snapshot_v1`、`ai_agent_tool_adoption_approval_package_v1`、`ai_agent_telegram_action_required_digest_policy_v1`、`ai_agent_gitea_pr_draft_lane_v1` 與 `ai_agent_host_stateful_version_inventory_v1` 為準。
## 0. P2-403J 補記:報表真相、日週月報與風險自動化
2026-06-12 已新增 `ai_agent_report_truth_actionability_review_v1``ai_agent_report_automation_review_v1`:全 0 週報不再可被解讀為健康,而是 report truth / source freshness / confidence 缺口;日報、週報、月報需共用 truth gateWatchdog / NoAlertsReceived 等心跳需進 actionability lane本產品正式 Telegram 告警需收斂至 **AwoooI SRE 戰情室**`SRE_GROUP_CHAT_ID`)。同時建立每個 AI Agent 的工作量、圖表化報告、AI 分析建議與高 / 中 / 低風險自動化政策:高風險仍需統帥審核,中低風險目前只完成 policy review尚未啟動 runtime auto worker。其他 TG Bot、舊 `TELEGRAM_ALERT_CHAT_ID`、direct Telegram API send 與多 bot token route 目前只列為待收斂風險,不代表已改 secret 或已切 route。
## 1. 本波完成度
| 範圍 | 完成度 | 狀態 |
|---|---:|---|
| 主動營運委派契約 | 100% | 已完成 schema / snapshot / API / 測試 |
| Repo-only 版本新鮮度快照 | 100% | P2-402B 已完成 schema / committed snapshot / API / 測試 |
| 工具採用批准包 | 100% | P2-402C 已完成 Renovate / OSV-Scanner / Trivy / Syft / Grype schema / committed snapshot / API / 測試 |
| Telegram action-required digest policy | 100% | P2-402D 已完成 critical / action-required / failure-only digest schema / committed snapshot / API / 測試 |
| Gitea PR 草案 lane | 100% | P2-402E 已完成 grouping、automerge=false、測試證據、rollback、owner response schema / committed snapshot / API / 測試 |
| Host / K3s / stateful 版本只讀盤點 | 100% | P2-402F 已完成 5 台主機、2 個 K3s 節點、12 個 stateful / ops 服務與 maintenance window 批准包 schema / committed snapshot / API / 測試 |
| Governance UI 可委派能力顯示 | 100% | P2-402G 已把可委派能力、版本生命週期、Host / K3s / stateful 只讀盤點、maintenance window 與 Telegram / redaction gate 接入治理頁 |
| Agent 互動與學習證據面 | 100% | P2-403A 已把目前真相、證據階梯、三 Agent lane、可觀測訊號、runtime gates 與 redaction policy 接入治理頁live counts 全為 `0` |
| Redis dry-run gate | 100% | P2-403C 已把 consumer group dry-run、handoff envelope、ack / dead-letter / replay idempotency 與治理頁顯示接入live counts 全為 `0` |
| Learning writeback approval package | 100% | P2-403D 已把 KM / PlayBook trust / timeline learning / replay score 的 owner review、rollback、redaction 與 blocked write actions 接入live writes 全為 `0` |
| 整體主動營運與版本生命週期 | 100% | P2-402A~G、P2-403A、P2-403B、P2-403C、P2-403D、P2-403E、P2-403F、P2-403G、P2-403H、P2-403I 與 P2-403J 只讀契約、snapshot、API、測試與治理 UI 已完成runtime 排程、工具安裝、CI 變更、實際 PR 建立與更新、host probe、升級、重啟、learning write、Telegram receipt、post-write verifier execution、report delivery、AI analysis runtime、中低風險 auto worker 仍未開 gate |
## 2. 可交給 AI Agent 的工作分類
| 類別 | 可交給 Agent 主動做 | 不可自動做 |
|---|---|---|
| 版本與依賴 | 版本發現、新鮮度、changelog、升級批准包 | 套件升級、lockfile 寫入、auto merge |
| AI Agent / 模型 | 市場 watch、scorecard、sanitized replay 計畫 | SDK 安裝、付費 API、shadow/canary、生產路由 |
| 主機 / K3s | version skew、maintenance window 草案 | apt upgrade、kernel / K3s 升級、reboot |
| 資安 / SBOM | SBOM / CVE / license 工具採用評估 | 安裝掃描器、外部 live scan、修補套件 |
| 監控 / 告警 | 噪音分析、Telegram 送達稽核、fallback gap | 改 receiver、route、silence、直接發 Bot |
| 備份 / DR | freshness、restore readiness、DR 批准包 | restore、prune、offsite sync |
| 成本 / 容量 | resource / provider / cost delta 建議 | 增費、改 runtime limit、切付費 provider |
| 前後台 / 文件 | UI smoke、overflow、a11y、runbook / postmortem 草稿 | 修改 UI、發布文件、寫 canonical KM |
## 3. 已定義的正式契約
| 產物 | 用途 |
|---|---|
| `docs/schemas/ai_agent_proactive_operations_contract_v1.schema.json` | 主動營運委派與版本生命週期 schema |
| `docs/evaluations/ai_agent_proactive_operations_contract_2026-06-11.json` | 12 類版本 domain、24 類可委派能力、5 種 cadence、8 類 MCP、4 類 RAG memory |
| `GET /api/v1/agents/agent-proactive-operations-contract` | 只讀 API不啟用排程、不升級、不發 Telegram |
| `docs/schemas/ai_agent_version_freshness_snapshot_v1.schema.json` | Repo-only 版本新鮮度 schema所有外部查詢與更新權限預設 false |
| `docs/evaluations/ai_agent_version_freshness_snapshot_2026-06-11.json` | 12 類 repo-only source、5 個 daily step、3 Agent role、5 個 action-required source |
| `GET /api/v1/agents/agent-version-freshness-snapshot` | 只讀 API不觸發掃描、不查外部、不改 repo、不發 Telegram |
| `docs/schemas/ai_agent_tool_adoption_approval_package_v1.schema.json` | 工具採用批准包 schema工具安裝、CI 變更、外部查詢、漏洞 DB、PR、Telegram 全部預設 false |
| `docs/evaluations/ai_agent_tool_adoption_approval_package_2026-06-11.json` | Renovate / OSV-Scanner / Trivy / Syft / Grype 官方來源、採用 lane、批准欄位、rollback plan |
| `GET /api/v1/agents/agent-tool-adoption-approval-package` | 只讀 API不安裝工具、不改 CI、不查外部、不建 PR、不發 Telegram |
| `docs/schemas/ai_agent_telegram_action_required_digest_policy_v1.schema.json` | Telegram action-required digest policy schemadirect send、queue write、route / receiver change、workflow、transcript 全部預設 false |
| `docs/evaluations/ai_agent_telegram_action_required_digest_policy_2026-06-11.json` | 8 條 digest rule、3 個 channel 草案、5 類 trigger category、成功降噪、redaction、fallback policy |
| `GET /api/v1/agents/agent-telegram-action-required-digest-policy` | 只讀 API不送 Telegram、不寫 queue、不改 route / receiver、不觸發 workflow |
| `docs/schemas/ai_agent_gitea_pr_draft_lane_v1.schema.json` | Gitea PR 草案 lane schemabranch push、PR creation、workflow trigger、lockfile、automerge、Telegram 全部預設 false |
| `docs/evaluations/ai_agent_gitea_pr_draft_lane_2026-06-11.json` | 6 條 grouping rule、7 個 lane step、9 個 required check、6 條 rollback requirement、4 個 draft template |
| `GET /api/v1/agents/agent-gitea-pr-draft-lane` | 只讀 API不 push branch、不建立 PR、不觸發 workflow、不改 CI、不升級套件、不發 Telegram |
| `docs/schemas/ai_agent_host_stateful_version_inventory_v1.schema.json` | Host / K3s / stateful 版本只讀盤點 schemaSSH、kubectl、upgrade、drain、reboot、restart、Telegram 全部預設 false |
| `docs/evaluations/ai_agent_host_stateful_version_inventory_2026-06-11.json` | 5 台主機、2 個 K3s 節點、12 個 stateful / ops 服務、6 個只讀 probe 步驟、maintenance window approval package |
| `GET /api/v1/agents/agent-host-stateful-version-inventory` | 只讀 API不 SSH、不 kubectl、不升級、不 drain、不 reboot、不重啟 stateful、不發 Telegram |
| `docs/schemas/ai_agent_interaction_learning_proof_v1.schema.json` | P2-403A Agent 互動、接手、學習、成長與 Telegram receipt 證據面 schema |
| `docs/evaluations/ai_agent_interaction_learning_proof_2026-06-11.json` | 證據階梯、live truth、三 Agent lane、可觀測訊號、runtime gatesP2-403J 後完成度 `100%`live counts 全部 `0` |
| `GET /api/v1/agents/agent-interaction-learning-proof` | 只讀 API不啟動 worker、不開 Redis consumer、不 DB migration、不發 Telegram、不顯示工作視窗對話 |
| `docs/schemas/ai_agent_post_write_verifier_package_v1.schema.json` | P2-403H post-write verifier package schemacanonical readback、rollback work item、Telegram failure receipt 與 live verifier execution 全部 false |
| `GET /api/v1/agents/agent-post-write-verifier-package` | 只讀 API只回傳 verifier package、failure lane 與人工操作選項,不讀 canonical target、不寫 rollback、不發 Telegram |
| `docs/schemas/ai_agent_runtime_verifier_evidence_review_v1.schema.json` | P2-403I runtime verifier evidence review schemaruntime verifier implementation、canonical readback、rollback work item、Telegram failure receipt 與 live verifier execution 全部 false |
| `GET /api/v1/agents/agent-runtime-verifier-evidence-review` | 只讀 API只回傳 evidence checks、implementation lanes 與人工操作選項,不實作或執行 verifier |
| `docs/schemas/ai_agent_report_truth_actionability_review_v1.schema.json` | P2-403J 報表真相與告警有效性審查 schema全 0 週報、日週月 truth gate、Telegram route 收斂與 operator actions |
| `GET /api/v1/agents/agent-report-truth-actionability-review` | 只讀 API不發 Telegram、不改 CronJob / Alertmanager / route、不讀 secret、不寫 work item |
| `docs/schemas/ai_agent_report_automation_review_v1.schema.json` | P2-403J 日週月報、每個 Agent 工作量、圖表化報告、AI 分析建議與高 / 中 / 低風險自動化 policy review schema |
| `GET /api/v1/agents/agent-report-automation-review` | 只讀 API不排程實發、不送 Telegram、不啟動中低風險 auto worker、不執行生產優化 |
| `docs/schemas/ai_agent_live_read_model_gate_v1.schema.json` | P2-403B AgentSession / Redis Streams live read model gate schema |
| `docs/evaluations/ai_agent_live_read_model_gate_2026-06-11.json` | AgentSession safe fields、Redis envelope、worker gate、rollback plan、no-write smoke、frontend redactionlive counts 全部 `0` |
| `GET /api/v1/agents/agent-live-read-model-gate` | 只讀 API不連 DB、不讀寫 Redis、不啟動 worker、不發 Telegram |
## 4. P2-402B Repo-only 版本新鮮度快照
| Source | 主責 | 狀態 | 下一步 |
|---|---|---|---|
| JavaScript workspace manifests | Hermes | action_required | P2-402C 前只比較 repo specifier / lockfile不查 npm registry |
| Python package manifests | Hermes | action_required | 只讀比較 pyproject / requirements不 pip / uv install |
| Dockerfiles | Hermes | action_required | P2-402C 評估 Trivy / Syft / Grype / Docker Scout 採用,不 build / pull |
| Committed evaluation snapshots | Hermes | action_required | 將 2026-06-04~06-05 舊基線列入 stale refs不假裝是外部最新 |
| Agent / model governance snapshots | NemoTron | action_required | 只做離線 freshness note不進 shadow / canary / production route |
| K8s / Gitea / observability / Ansible / backup / web surfaces | OpenClaw + Hermes | baseline_ready / planned_next | P2-403K 已進 SRE 戰情室路由收斂;下一步接 P2-403L 報表 runtime 啟動前閘門與 P2-403M no-write dry-run現階段仍只讀 |
本波只把「每天要看哪些 repo 內版本來源」定義成可驗證資料面。每日排程、外部 registry 查詢、主機/K3s live probe、Telegram digest 與 Gitea PR lane 都仍是下一階段 gate。
## 5. P2-402C 工具採用批准包
| 工具 | 主責 Agent | 建議角色 | 目前狀態 |
|---|---|---|---|
| Renovate for Gitea | Hermes | 依賴更新 PR 草案、grouping、automerge=false | 只建立批准包bot token、workflow、PR 全部未啟用 |
| OSV-Scanner | OpenClaw | 依賴漏洞 advisory lookup 候選 | 只建立批准包;外部查詢與 DB lookup 未啟用 |
| Trivy | OpenClaw | Container / filesystem / IaC / SBOM scanner 候選 | 只建立批准包;不安裝、不下載 DB、不掃 image |
| Syft | Hermes | SBOM 產生候選 | 只建立批准包;不產 SBOM artifact、不上傳 artifact |
| Grype | OpenClaw | Syft SBOM / image vulnerability cross-check 候選 | 只建立批准包;不安裝、不下載 DB、不送 Telegram |
P2-402C 的重點是把「哪些工具可被採用、採用前要填哪些批准欄位、風險與 rollback 如何定義」固定成資料契約。它不是工具導入本身工具安裝、CI workflow、外部 registry / vulnerability DB、Gitea PR、Telegram 實發都維持 blocked。
## 6. P2-402D Telegram Action-Required Digest Policy
| 類別 | 決策 | Telegram 邊界 |
|---|---|---|
| 成功 / 已驗證 / 快照完成 | `suppress_success_noise` | 不即時送 Telegram只進每日 KM / LOGBOOK 摘要草案 |
| 版本來源失敗 / Telegram silence / critical CVE 或 EOL | `draft_failure_escalation_digest` | 只產 failure escalation digest 草案;需 OpenClaw review不能直發 |
| 工具安裝 / CI 變更 / scanner disagreement / no executable repair candidate | `draft_action_required_digest` | 只產 action-required digest 草案;未批准不得寫 Gateway queue |
本波把「哪些事情值得通知」和「哪些成功訊息必須壓掉」固定成資料契約。Telegram Gateway queue write、direct send、route / receiver change、AwoooP event write、workflow trigger、runtime execution 仍全部為 false。
## 7. P2-402E Gitea PR 草案 Lane
| 類別 | 本波定義 | 仍禁止 |
|---|---|---|
| Grouping | 6 條低風險依賴、CVE / OSV、container image、AI Agent contract、host / K3s / stateful、docs / KM | 不混入無關風險,不把 critical 變更和低風險 patch 同 PR |
| PR policy | `automerge=false`、draft-only、需 OpenClaw review、需 rollback | 不 push branch、不建立 / 更新 PR、不留言、不 merge |
| Tests | schema / JSON、targeted tests、secret / transcript redaction、vulnerability / image / replay / deployment evidence | 不觸發 workflow、不改 CI、不 build / pull image |
| Owner response | owner、decision、business impact、risk acceptance、rollback acceptance、maintenance window、evidence ref | 不用 Agent 自我批准取代 owner response |
| Redaction | 不顯示 secret、提示詞、推理鏈、瀏覽器上下文、工作視窗對話內容 | 不把工作視窗對話放到前端或文件 |
P2-402E 的重點是先把「PR 草案要長什麼樣、要有哪些證據、誰要回覆、怎麼 rollback」固定成契約。它不是 Gitea bot 啟用bot account、branch policy、實際 PR creation、workflow trigger、lockfile write、package upgrade、Telegram 實發全部維持 blocked。
## 8. P2-402F Host / K3s / Stateful 版本只讀盤點
| 類別 | 本波定義 | 仍禁止 |
|---|---|---|
| Host inventory | 5 台主機188 AI / DB / monitoring / backup、110 DevOps / registry、112 Kali read-only、120 K3s blocked、121 K3s peer / VIP evidence | 不 SSH、不跑 host command、不 apt upgrade、不 reboot |
| K3s inventory | 2 個 K3s server 節點與 VIP API endpoint要求 version skew policy、node readiness、ArgoCD sync / health、rollback ref | 不 kubectl、不 K3s upgrade、不 node drain、不 kubelet restart |
| Stateful services | 12 個服務PostgreSQL、Redis、MinIO、ClickHouse、SignOz、Prometheus、Alertmanager、Gitea、Harbor、Sentry、Langfuse、ArgoCD | 不 restart、不 upgrade、不 migration、不 restore、不刪 backup |
| Readonly probe packet | 6 個 planned-only steprepo endpoint map、CD banner evidence、host probe packet、K3s skew packet、stateful packet、maintenance window packet | 不把 planned probe 當已執行,不開 runtime gate |
| Maintenance window | owner、decision、maintenance window、affected scope、backup snapshot、rollback owner、smoke plan、communication plan、risk acceptance | 不用 Agent 自我批准取代 owner gate |
P2-402F 的重點是把「要盤哪些主機與 stateful 服務、盤點前要誰批准、升級前要哪些備份與 rollback 證據」固定成資料契約。它不是主機探測或升級SSH、kubectl、apt upgrade、K3s upgrade、node drain、reboot、stateful restart、Telegram 實發全部維持 blocked。
## 9. P2-402G Governance UI 顯示可委派能力
| 類別 | 本波定義 | 仍禁止 |
|---|---|---|
| 可委派能力 | 顯示 24 類 capability、主責 Agent、風險、自主層級、批准 gate、Telegram policy | 不提供批准、執行、安裝、更新或發送按鈕 |
| 版本生命週期 | 顯示 12 類 domain、owner、cadence、允許 autonomy、approval gate | 不查外部 registry、不改 workflow、不建立 PR |
| Host / K3s / stateful | 顯示 5 台主機、2 個 K3s node、12 個 stateful / ops 服務、6 個只讀 probe、11 個 maintenance 欄位 | 不顯示敏感端點、不 SSH、不 kubectl、不重啟、不升級 |
| Telegram / redaction | 顯示 direct send / gateway queue / frontend redaction gate 都維持 locked | 不發 Telegram、不寫 queue、不顯示工作視窗對話內容 |
P2-402G 的重點是把前面六個資料契約接回治理頁,讓統帥可以用一個 UI 看到「哪些事情可委派、誰負責、目前只能做到哪一層、下一個 gate 是什麼」。它仍然是 read-only evidence surface不是 runtime agent loop。
## 10. 下一步優先順序
| ID | 優先 | 任務 | 關卡 |
|---|---|---|---|
| P2-402D | 0 | Telegram action-required digest policy | 已完成只讀Telegram send / queue write 未啟用 |
| P2-402E | 1 | Gitea PR 草案 lane | 已完成只讀branch push / PR creation / workflow trigger 未啟用 |
| P2-402F | 2 | host OS / K3s / stateful services 版本只讀盤點 | 已完成只讀SSH / kubectl / upgrade / reboot 未啟用 |
| P2-402G | 3 | governance UI 顯示可委派能力 | 已完成,只讀;不顯示敏感端點或工作對話內容 |
| P2-403A | 4 | Agent 互動、接手、學習、成長與 Telegram receipt 證據面 | 已完成只讀live counts 全為 `0` |
| P2-403B | 5 | live AgentSession / Redis read modelsafe fields、Redis envelope、worker gate、rollback、no-write smoke | 已完成只讀live DB query / Redis consumer / worker 未啟用 |
| P2-403C | 6 | Redis Streams consumer group dry-run、handoff envelope、ack / dead letter / replay | 已完成只讀production Redis consumer / worker / ACK / replay 未啟用 |
| P2-403D | 7 | Learning writeback approval package、資料保留、錯誤補償、人工回饋回滾 | 已完成只讀KM / PlayBook trust / timeline learning / replay score 寫入未啟用 |
| P2-403E | 8 | Telegram receipt approval package、queue / delivery / ack / failure / retry | 已完成只讀Gateway queue / Bot API / delivery receipt / retry worker 未啟用 |
| P2-403F | 9 | Owner-approved learning dry-run preview、fixture dry-run、人工操作選項、驗證與 rollback | 已完成只讀owner approval / dry-run preview generation / KM / PlayBook trust / timeline / replay score write / Gateway queue / Telegram send 未啟用 |
| P2-403G | 10 | Runtime write gate review、雙重批准、dry-run hash、post-write verifier、redaction gate | 已完成只讀KM / PlayBook trust / timeline / replay score / Telegram send 未啟用live write total `0` |
| P2-403H | 11 | Post-write verifier package、rollback lane、failure lane、人工操作選項 | 已完成只讀canonical readback / rollback work item / Telegram failure receipt / verifier execution 未啟用live verifier execution `0` |
## 11. 仍維持 false 的安全邊界
- `runtime_version_update_allowed=false`
- `package_upgrade_allowed=false`
- `host_upgrade_allowed=false`
- `container_pull_allowed=false`
- `workflow_schedule_enabled=false`
- `auto_merge_allowed=false`
- `gitea_pr_creation_allowed=false`
- `telegram_direct_send_allowed=false`
- `secret_plaintext_allowed=false`
- `paid_external_service_allowed=false`
- `production_route_change_allowed=false`
- `external_registry_lookup_allowed=false`
- `daily_schedule_enabled=false`
- `gitea_pr_creation_allowed=false`
- `ssh_login_allowed=false`
- `kubectl_command_execution_allowed=false`
- `apt_upgrade_allowed=false`
- `k3s_upgrade_allowed=false`
- `node_drain_allowed=false`
- `reboot_allowed=false`
- `stateful_service_restart_allowed=false`