From eccf61fbc934d62fe78e2ee6bc0bdf6d8a7d7421 Mon Sep 17 00:00:00 2001 From: OG T Date: Wed, 1 Apr 2026 15:59:42 +0800 Subject: [PATCH] =?UTF-8?q?fix(ai):=20=E4=BF=AE=E5=BE=A9=E5=81=87=E4=BF=A1?= =?UTF-8?q?=E5=BF=83=E5=BA=A6=20+=20=E8=A7=A3=E9=99=A4=20Shadow=20Mode=20(?= =?UTF-8?q?Phase=2022=20P1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. openclaw.py: LLM 截斷時 confidence 0.82→0.0 (禁止偽造信心度) 2. prompts.py: NEMOTRON schema 範例值改用佔位符,防模型照抄 0.75 3. configmap: SHADOW_MODE_ENABLED=false,開放 low 風險自動執行 條件門檻: confidence≥90% + trust_score≥5 + playbook_success≥95% Co-Authored-By: Claude Sonnet 4.6 --- apps/api/src/core/prompts.py | 4 ++-- apps/api/src/services/openclaw.py | 5 +++-- k8s/awoooi-prod/04-configmap.yaml | 7 +++++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/apps/api/src/core/prompts.py b/apps/api/src/core/prompts.py index 44a1e2e2..ea9d7a82 100644 --- a/apps/api/src/core/prompts.py +++ b/apps/api/src/core/prompts.py @@ -140,7 +140,7 @@ You are an SRE AI. Analyze the alert and respond with ONLY valid JSON. ## Required JSON Schema: { - "confidence": 0.75, + "confidence": , "reasoning": "簡短理由 (繁體中文)", "primary_responsibility": "FE|BE|INFRA|DB|COLLAB", "risk_level": "low|medium|critical", @@ -155,7 +155,7 @@ You are an SRE AI. Analyze the alert and respond with ONLY valid JSON. ## Rules: 1. Response MUST be valid JSON. -2. confidence MUST be a real number you calculated (0.0-1.0). NOT 0.75 or 0.82. +2. confidence is a float 0.0-1.0 you CALCULATE from evidence. High evidence = 0.85-0.95. Low evidence = 0.40-0.65. NEVER copy example values. 3. Language: Traditional Chinese (Taiwan). 4. No explanation outside JSON. """ diff --git a/apps/api/src/services/openclaw.py b/apps/api/src/services/openclaw.py index 997b2755..e3d752e6 100644 --- a/apps/api/src/services/openclaw.py +++ b/apps/api/src/services/openclaw.py @@ -1041,9 +1041,10 @@ class OpenClawService: if "suggested_action" not in data: data["suggested_action"] = "NO_ACTION" - # Step 2.5: 2026-03-31 ogt - 強力補全計畫 (針對 Nemo-4B 斷片) + # Step 2.5: 2026-04-01 Claude Code - 斷片補全 (信心度必須誠實) + # 🔴 禁止填入假信心度!截斷 = 0.0,讓 auto-approve 正確判斷 if "confidence" not in data or not isinstance(data["confidence"], int | float): - data["confidence"] = 0.82 # 給予合理平均值而非 0 + data["confidence"] = 0.0 # 截斷/缺失 → 0.0,不可偽造 if "risk_level" not in data: data["risk_level"] = "low" if "primary_responsibility" not in data: diff --git a/k8s/awoooi-prod/04-configmap.yaml b/k8s/awoooi-prod/04-configmap.yaml index 417b13d0..d9a15c0d 100644 --- a/k8s/awoooi-prod/04-configmap.yaml +++ b/k8s/awoooi-prod/04-configmap.yaml @@ -48,6 +48,13 @@ data: ENABLE_NEMOTRON_COLLABORATION: "true" NEMOTRON_TIMEOUT_SECONDS: "45" NEMOTRON_ASYNC_UPDATE: "true" + + # ============================================================================ + # Phase 22 P1: Shadow Mode 解除 - 開放低風險自動執行 (2026-04-01 ogt) + # 條件: risk_level=low AND confidence≥90% AND trust_score≥5 AND playbook_success≥95% + # ============================================================================ + SHADOW_MODE_ENABLED: "false" + SHADOW_MODE_LOG_ONLY: "false" # K8s 接管 @tsenyangbot Long Polling (停用 OpenClaw 188 Telegram) TELEGRAM_ENABLE_POLLING: "true"