Files
awoooi/docs/evaluations/ai_agent_version_freshness_snapshot_2026-06-11.json
Your Name c1821d9652
All checks were successful
CD Pipeline / tests (push) Successful in 1m24s
Code Review / ai-code-review (push) Successful in 13s
CD Pipeline / build-and-deploy (push) Successful in 4m0s
CD Pipeline / post-deploy-checks (push) Successful in 1m51s
feat(governance): 新增 Agent 版本新鮮度快照
2026-06-11 12:55:12 +08:00

428 lines
17 KiB
JSON
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.
{
"schema_version": "ai_agent_version_freshness_snapshot_v1",
"generated_at": "2026-06-11T22:45:00+08:00",
"program_status": {
"overall_completion_percent": 42,
"current_priority": "P2",
"current_task_id": "P2-402B",
"next_task_id": "P2-402C",
"read_only_mode": true,
"runtime_authority": "repo_only_snapshot_no_external_lookup_or_update",
"status_note": "P2-402B 建立 repo-only 版本新鮮度快照格式與 API本波不啟用每日排程、不查外部 registry、不升級套件/模型、不 pull image、不建立 PR、不發 Telegram。"
},
"scan_boundaries": {
"read_only_repo_snapshot_allowed": true,
"schedule_activation_allowed": false,
"workflow_write_allowed": false,
"external_registry_lookup_allowed": false,
"external_cve_lookup_allowed": false,
"package_installation_allowed": false,
"package_upgrade_allowed": false,
"lockfile_write_allowed": false,
"docker_build_allowed": false,
"image_pull_allowed": false,
"host_probe_allowed": false,
"auto_pr_allowed": false,
"auto_merge_allowed": false,
"telegram_direct_send_allowed": false,
"paid_external_service_allowed": false,
"production_route_change_allowed": false
},
"agent_roles": [
{
"agent_id": "hermes",
"role": "讀取 repo 內 manifest / lockfile / Dockerfile / K8s / workflow / committed snapshot產生 version freshness evidence packet。",
"autonomy_level": "L1_report_only",
"outputs": [
"repo-only version freshness snapshot",
"stale source list",
"next approval package inputs"
],
"approval_gate": "read_only_repo_snapshot_allowed"
},
{
"agent_id": "openclaw",
"role": "仲裁 stale / action_required 訊號,判斷是否進入 P2-402C 工具採用批准包或 P2-402D Telegram digest policy。",
"autonomy_level": "L2_approval_package_only",
"outputs": [
"risk note",
"approval boundary check",
"human review packet"
],
"approval_gate": "human_review_required_before_any_update"
},
{
"agent_id": "nemotron",
"role": "離線檢查 Agent / model / replay / prompt governance 快照是否過期,協助建立模型評測 replay 清單。",
"autonomy_level": "L1_report_only",
"outputs": [
"offline model freshness note",
"replay candidate list"
],
"approval_gate": "offline_replay_only_until_shadow_gate"
}
],
"repo_scan_summary": {
"javascript_workspace_count": 6,
"javascript_direct_dependency_count": 51,
"python_manifest_count": 6,
"dockerfile_count": 2,
"runtime_surface_count": 22,
"committed_inventory_refs": [
"docs/evaluations/javascript_package_inventory_2026-06-04.json",
"docs/evaluations/package_supply_chain_inventory_2026-06-04.json",
"docs/evaluations/dependency_drift_check_plan_2026-06-04.json",
"docs/evaluations/docker_build_surface_inventory_2026-06-04.json",
"docs/evaluations/runtime_surface_inventory_2026-06-05.json",
"docs/evaluations/ai_agent_proactive_operations_contract_2026-06-11.json"
],
"stale_committed_inventory_refs": [
"docs/evaluations/javascript_package_inventory_2026-06-04.json",
"docs/evaluations/package_supply_chain_inventory_2026-06-04.json",
"docs/evaluations/dependency_drift_check_plan_2026-06-04.json",
"docs/evaluations/docker_build_surface_inventory_2026-06-04.json",
"docs/evaluations/runtime_surface_inventory_2026-06-05.json"
]
},
"daily_snapshot_design": [
{
"step_id": "collect_repo_version_sources",
"sequence": 1,
"owner_agent": "hermes",
"allowed_now": true,
"planned_output": "freshness_sources[] with evidence_refs and repo-only current_signal",
"blocked_now": [
"external registry lookup",
"host probe",
"package install",
"lockfile write"
]
},
{
"step_id": "compare_committed_inventory_age",
"sequence": 2,
"owner_agent": "hermes",
"allowed_now": true,
"planned_output": "stale_committed_inventory_refs and action_required source ids",
"blocked_now": [
"rewrite historical snapshots",
"claim latest upstream version",
"query package registries"
]
},
{
"step_id": "openclaw_boundary_review",
"sequence": 3,
"owner_agent": "openclaw",
"allowed_now": true,
"planned_output": "approval boundary decision for P2-402C / P2-402D / P2-402F",
"blocked_now": [
"approve own changes",
"enable auto merge",
"change production route"
]
},
{
"step_id": "nemotron_offline_agent_model_review",
"sequence": 4,
"owner_agent": "nemotron",
"allowed_now": true,
"planned_output": "offline model / agent snapshot freshness note",
"blocked_now": [
"shadow traffic",
"canary traffic",
"production provider routing"
]
},
{
"step_id": "emit_action_required_digest_draft",
"sequence": 5,
"owner_agent": "hermes",
"allowed_now": true,
"planned_output": "AwoooP / Telegram digest draft only; no send",
"blocked_now": [
"Telegram direct send",
"Alertmanager route change",
"workflow schedule activation"
]
}
],
"freshness_sources": [
{
"source_id": "javascript_workspace_manifests",
"domain": "javascript_packages",
"source_type": "repo_only",
"owner_agent": "hermes",
"status": "action_required",
"freshness_basis": "package.json workspace manifests + previous javascript_package_inventory snapshot",
"current_signal": "6 workspaces / 51 direct dependencies; prior inventory is 2026-06-04 and should be refreshed by repo-only scanner before any registry comparison.",
"external_lookup_allowed": false,
"mutation_allowed": false,
"action_required": true,
"evidence_refs": [
"package.json",
"apps/web/package.json",
"packages/shared-types/package.json",
"packages/lewooogo-core/package.json",
"packages/eslint-config/package.json",
"packages/tsconfig/package.json",
"pnpm-lock.yaml",
"docs/evaluations/javascript_package_inventory_2026-06-04.json"
],
"next_action": "P2-402C 前先建立 registry/tool 採用批准包;未批准前只能比較 repo 內 specifier 與 lockfile。"
},
{
"source_id": "python_package_manifests",
"domain": "python_packages",
"source_type": "repo_only",
"owner_agent": "hermes",
"status": "action_required",
"freshness_basis": "pyproject.toml / requirements.txt manifests + package_supply_chain_inventory snapshot",
"current_signal": "6 Python manifest surfacesapps/api pyproject and requirements are high-impact and still require read-only drift refresh.",
"external_lookup_allowed": false,
"mutation_allowed": false,
"action_required": true,
"evidence_refs": [
"apps/api/pyproject.toml",
"apps/api/requirements.txt",
"apps/sensor/requirements.txt",
"packages/lewooogo-brain/pyproject.toml",
"packages/lewooogo-data/pyproject.toml",
"scripts/aider_watch_client/pyproject.toml",
"docs/evaluations/package_supply_chain_inventory_2026-06-04.json"
],
"next_action": "只讀比較 dependency specifiers不得 pip/uv install不得重寫 requirements。"
},
{
"source_id": "pnpm_lockfile",
"domain": "javascript_lockfile",
"source_type": "repo_only",
"owner_agent": "hermes",
"status": "baseline_ready",
"freshness_basis": "pnpm-lock.yaml importer consistency",
"current_signal": "P1-202 snapshot reported 0 manifest/lock mismatch; P2-402B keeps this as repo-only baseline, not upstream latest evidence.",
"external_lookup_allowed": false,
"mutation_allowed": false,
"action_required": false,
"evidence_refs": [
"pnpm-lock.yaml",
"docs/evaluations/javascript_package_inventory_2026-06-04.json"
],
"next_action": "Future daily run may fail only on repo mismatch; remediation still requires approval package."
},
{
"source_id": "dockerfiles",
"domain": "container_images",
"source_type": "repo_only",
"owner_agent": "hermes",
"status": "action_required",
"freshness_basis": "Dockerfile FROM / COPY --from / build-time fetch surfaces",
"current_signal": "2 Dockerfiles; prior inventory shows 0 digest-pinned image refs and 2 action_required surfaces.",
"external_lookup_allowed": false,
"mutation_allowed": false,
"action_required": true,
"evidence_refs": [
"apps/api/Dockerfile",
"apps/web/Dockerfile",
"docs/evaluations/docker_build_surface_inventory_2026-06-04.json"
],
"next_action": "P2-402C 工具批准包需評估 Trivy / Syft / Grype / Docker Scout本波不 build、不 pull、不查 registry。"
},
{
"source_id": "k8s_prod_manifests",
"domain": "kubernetes_k3s_components",
"source_type": "repo_only",
"owner_agent": "openclaw",
"status": "baseline_ready",
"freshness_basis": "committed k8s/awoooi-prod manifests and runtime_surface_inventory",
"current_signal": "22 runtime surfaces mapped; live K3s / version skew remains outside P2-402B and requires P2-402F gate.",
"external_lookup_allowed": false,
"mutation_allowed": false,
"action_required": false,
"evidence_refs": [
"k8s/awoooi-prod/kustomization.yaml",
"k8s/awoooi-prod/06-deployment-api.yaml",
"k8s/awoooi-prod/05-deployment-web.yaml",
"k8s/awoooi-prod/08-deployment-worker.yaml",
"docs/evaluations/runtime_surface_inventory_2026-06-05.json"
],
"next_action": "P2-402F 才能建立 host/K3s/stateful 只讀版本盤點;本波不 kubectl、不 host probe。"
},
{
"source_id": "gitea_workflows",
"domain": "ci_cd_and_runner_tools",
"source_type": "repo_only",
"owner_agent": "hermes",
"status": "baseline_ready",
"freshness_basis": ".gitea/workflows committed YAML",
"current_signal": "可讀取 workflow schedule / runner / image refsP2-402B 不新增或修改 schedule。",
"external_lookup_allowed": false,
"mutation_allowed": false,
"action_required": false,
"evidence_refs": [
".gitea/workflows/cd.yaml",
".gitea/workflows/agent-market-watch.yaml",
".gitea/workflows/e2e-health.yaml"
],
"next_action": "若要啟用 daily freshness schedule需 P2-402D notification policy 與 workflow approval。"
},
{
"source_id": "observability_manifests",
"domain": "observability_stack",
"source_type": "repo_only",
"owner_agent": "openclaw",
"status": "baseline_ready",
"freshness_basis": "Prometheus / Alertmanager / SigNoz committed configs",
"current_signal": "只讀檢查 alert and scrape config refs不改 Alertmanager route不發通知。",
"external_lookup_allowed": false,
"mutation_allowed": false,
"action_required": false,
"evidence_refs": [
"k8s/monitoring/prometheus.yml",
"ops/alertmanager/alertmanager.yml",
"ops/signoz/otel-collector-config-phase-o.yaml"
],
"next_action": "P2-402D 定義 failure-only digest 後,才能接 Telegram/AwoooP 通知。"
},
{
"source_id": "ansible_host_manifests",
"domain": "host_os_packages",
"source_type": "repo_only",
"owner_agent": "openclaw",
"status": "planned_next",
"freshness_basis": "infra/ansible inventory and playbooks",
"current_signal": "Repo contains host roles and playbooks, but live package/kernel/K3s versions require P2-402F host readonly probe approval.",
"external_lookup_allowed": false,
"mutation_allowed": false,
"action_required": false,
"evidence_refs": [
"infra/ansible/inventory/hosts.yml",
"infra/ansible/playbooks/site.yml",
"infra/ansible/roles/runner-guardrails/tasks/main.yml"
],
"next_action": "P2-402F 建立 host OS / K3s / stateful version inventory未批准前不得 SSH probe、apt upgrade、restart 或 reboot。"
},
{
"source_id": "committed_evaluation_snapshots",
"domain": "governance_snapshots",
"source_type": "repo_only",
"owner_agent": "hermes",
"status": "action_required",
"freshness_basis": "docs/evaluations committed JSON snapshots",
"current_signal": "Core package / Docker / drift / runtime snapshots are 2026-06-04~2026-06-05 baselines; P2-402B establishes the 2026-06-11 freshness envelope.",
"external_lookup_allowed": false,
"mutation_allowed": false,
"action_required": true,
"evidence_refs": [
"docs/evaluations/javascript_package_inventory_2026-06-04.json",
"docs/evaluations/package_supply_chain_inventory_2026-06-04.json",
"docs/evaluations/dependency_drift_check_plan_2026-06-04.json",
"docs/evaluations/docker_build_surface_inventory_2026-06-04.json",
"docs/evaluations/runtime_surface_inventory_2026-06-05.json"
],
"next_action": "每日快照正式啟用前,先由 committed API 顯示 stale refs不得假裝已查到外部最新版本。"
},
{
"source_id": "agent_model_governance_snapshots",
"domain": "ai_agents_models",
"source_type": "repo_only",
"owner_agent": "nemotron",
"status": "action_required",
"freshness_basis": "agent-market / NemoTron / OpenClaw committed governance evidence",
"current_signal": "Agent market and Nemotron replay sources remain gate-bound; repo-only snapshot may only flag stale committed evidence.",
"external_lookup_allowed": false,
"mutation_allowed": false,
"action_required": true,
"evidence_refs": [
"docs/evaluations/ai_agent_proactive_operations_contract_2026-06-11.json",
"docs/ai/AI_AGENT_PROACTIVE_OPERATIONS_2026-06-11.md",
"docs/ai/AI_AGENT_AUTOMATION_WORKLIST_2026-06-04.md"
],
"next_action": "P2-402C/P2-402D 之前不得新增 SDK、shadow/canary、production route 或付費 market source。"
},
{
"source_id": "backup_dr_tooling_refs",
"domain": "backup_dr_tooling",
"source_type": "repo_only",
"owner_agent": "openclaw",
"status": "planned_next",
"freshness_basis": "backup scripts / DR runbooks / readiness snapshots",
"current_signal": "Repo-only source can track script refs, but live backup outcome remains separate and must use current production evidence.",
"external_lookup_allowed": false,
"mutation_allowed": false,
"action_required": false,
"evidence_refs": [
"scripts/backup/backup-gitea.sh",
"docs/runbooks/BACKUP-STATUS.md",
"docs/runbooks/FULL-STACK-COLD-START-SOP.md"
],
"next_action": "Keep backup/DR live truth separate; no automatic restore, prune, or backup mutation from version freshness snapshot."
},
{
"source_id": "public_web_admin_surfaces",
"domain": "public_web_admin_surfaces",
"source_type": "repo_only",
"owner_agent": "hermes",
"status": "baseline_ready",
"freshness_basis": "apps/web routes, i18n messages, and API client refs",
"current_signal": "Can detect whether governance UI knows the latest committed API; no browser automation or UI deploy change is implied.",
"external_lookup_allowed": false,
"mutation_allowed": false,
"action_required": false,
"evidence_refs": [
"apps/web/src/lib/api-client.ts",
"apps/web/src/app/[locale]/governance/tabs/automation-inventory-tab.tsx",
"apps/web/messages/zh-TW.json",
"apps/web/messages/en.json"
],
"next_action": "P2-402G 才接 UI 顯示;本波只提供 API不改前端頁面。"
}
],
"approval_boundaries": {
"daily_schedule_enabled": false,
"external_source_lookup_allowed": false,
"package_or_model_upgrade_allowed": false,
"host_or_k3s_probe_allowed": false,
"telegram_digest_send_allowed": false,
"gitea_pr_creation_allowed": false,
"production_route_change_allowed": false
},
"rollups": {
"source_count": 12,
"repo_only_source_count": 12,
"agent_count": 3,
"daily_step_count": 5,
"action_required_source_ids": [
"javascript_workspace_manifests",
"python_package_manifests",
"dockerfiles",
"committed_evaluation_snapshots",
"agent_model_governance_snapshots"
],
"blocked_external_lookup_source_ids": [
"javascript_workspace_manifests",
"python_package_manifests",
"pnpm_lockfile",
"dockerfiles",
"k8s_prod_manifests",
"gitea_workflows",
"observability_manifests",
"ansible_host_manifests",
"committed_evaluation_snapshots",
"agent_model_governance_snapshots",
"backup_dr_tooling_refs",
"public_web_admin_surfaces"
],
"mutation_allowed_source_count": 0,
"schedule_enabled_count": 0,
"telegram_direct_send_count": 0,
"next_approval_task_ids": [
"P2-402C",
"P2-402D",
"P2-402E",
"P2-402F",
"P2-402G"
]
}
}