OG T
5ddba6d6e0
feat(adr-082): Phase 2 多 Agent 協作 — 5 角色辯證系統骨架上線
新增 5 個 Agent + Orchestrator + DecisionManager 接線:
- protocol.py: DiagnosisReport / ActionPlan / ReviewVerdict / CriticReport / DecisionPackage 型別系統
- DiagnosticianAgent: RCA 根因分析,confidence < 0.4 → ABSTAIN
- SolverAgent: 修復方案軍師,blast_radius 評分 + 降級 rule-based mock
- ReviewerAgent: 安全審查,HARD_RULES 靜態 pattern + blast_radius 閾值 (>50 revision, >80 reject)
- CriticAgent: 刻意唱反調,強制 3 問批判性思維,critical challenge → REJECT
- CoordinatorAgent: 純規則聚合,6 級決策閘,REQUEST_REVISION → 強制人工
- AgentOrchestrator: 30s 全局超時,Reviewer ‖ Critic 並行,DB Immutable Event Sourcing + Redis Streams
- DecisionManager: AIOPS_P2_ENABLED gate + _package_to_proposal_data 橋接既有 proposal_data 格式
- AgentSession DB table + 4 個複合 index
- ADR-082 決策記錄
Gate 2 修復(7 項):
- CRITICAL: DELETE FROM regex lookahead 位置錯誤(移至 FROM 後)
- CRITICAL: REQUEST_REVISION 可抵達 auto-execute 路徑(改回 requires_human_approval=True)
- IMPORTANT: _extract_json flat regex 不支援巢狀 JSON(改 find/rfind 邊界提取)
- IMPORTANT: all_degraded 遺漏 verdict.degraded(補全 4 個 Agent)
- IMPORTANT: Solver ABSTAIN guard 放行降級假設(改為無論 hypotheses 有無均跳過)
- IMPORTANT: dataclasses.asdict() Enum 未序列化導致 DB 寫入靜默失敗(加 json.dumps default handler)
- IMPORTANT: P2 gate 直讀屬性繞過父 Phase 守衛(改用 is_phase_enabled(2))
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 13:48:55 +08:00
..
2026-04-15 13:48:55 +08:00
2026-04-14 15:29:12 +08:00
2026-03-23 18:40:36 +08:00
2026-03-29 00:00:08 +08:00
2026-03-23 19:44:56 +08:00
2026-03-26 19:10:12 +08:00
2026-03-26 09:55:58 +08:00
2026-03-26 09:55:58 +08:00
2026-03-29 16:03:41 +08:00
2026-04-14 15:29:12 +08:00
2026-03-30 01:21:23 +08:00
2026-03-31 16:13:44 +08:00
2026-04-14 15:29:12 +08:00
2026-04-14 18:36:59 +08:00
2026-03-29 23:56:34 +08:00
2026-04-11 20:04:47 +08:00
2026-03-23 18:40:36 +08:00
2026-03-29 16:03:41 +08:00
2026-04-14 14:54:18 +08:00
2026-04-15 12:44:53 +08:00
2026-04-14 15:29:12 +08:00
2026-03-29 01:19:26 +08:00
2026-03-23 18:40:36 +08:00
2026-03-23 18:40:36 +08:00
2026-03-26 09:55:47 +08:00
2026-03-31 16:06:51 +08:00
2026-03-26 19:10:12 +08:00
2026-03-29 16:03:41 +08:00
2026-03-23 18:40:36 +08:00
2026-04-15 12:44:53 +08:00
2026-03-29 16:03:41 +08:00
2026-04-15 13:08:38 +08:00
2026-03-29 01:52:08 +08:00
2026-03-29 01:52:08 +08:00
2026-03-26 09:55:47 +08:00
2026-03-26 19:10:12 +08:00
2026-03-26 09:55:58 +08:00
2026-03-29 16:35:47 +08:00
2026-03-23 18:40:36 +08:00