# 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 gate；Watchdog / 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 schema；direct 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 schema；branch 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 版本只讀盤點 schema；SSH、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 gates；P2-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 schema；canonical 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 schema；runtime 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 redaction；live 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 step：repo 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 model：safe 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`
