自主程式碼修復管線
AI ↔ AICI 失敗後,AI 診斷並修復問題,CI 重新執行,人工再合併。
6 個節點 · 6 條連接devops
agentcicdcli
視覺化
偵測到 CI 失敗event
在 CI 執行失敗時透過 Webhook 觸發,並附上測試輸出。
↓sequential→ AI 錯誤診斷
AI 錯誤診斷agent
分析測試輸出、堆疊追蹤與近期差異以識別根本原因。
↓sequential→ AI 產生修復方案
AI 產生修復方案agent
撰寫程式碼修補以解決識別出的問題。
↓sequential→ 套用修補
套用修補cli
使用 git apply 將生成的差異套用至工作分支。
↓sequential→ 重新執行 CI
重新執行 CIcicd
對已修補的程式碼執行完整測試套件。
↓conditional→ 人工合併核准
↓fallback→ AI 錯誤診斷
人工合併核准human
工程師在合併至主分支前審查 AI 生成的修復方案。
uc-auto-code-fix.osop.yaml
osop_version: "1.0"
id: "auto-code-fix"
name:"自主程式碼修復管線"
description:"CI 失敗後,AI 診斷並修復問題,CI 重新執行,人工再合併。"
nodes:
- id: "ci_fail"
type: "event"
name: "偵測到 CI 失敗"
description: "在 CI 執行失敗時透過 Webhook 觸發,並附上測試輸出。"
- id: "diagnose"
type: "agent"
subtype: "llm"
name: "AI 錯誤診斷"
description: "分析測試輸出、堆疊追蹤與近期差異以識別根本原因。"
- id: "generate_fix"
type: "agent"
subtype: "llm"
name: "AI 產生修復方案"
description: "撰寫程式碼修補以解決識別出的問題。"
security:
risk_level: "medium"
- id: "apply_fix"
type: "cli"
subtype: "script"
name: "套用修補"
description: "使用 git apply 將生成的差異套用至工作分支。"
- id: "rerun_ci"
type: "cicd"
subtype: "test"
name: "重新執行 CI"
description: "對已修補的程式碼執行完整測試套件。"
retry_policy:
max_attempts: 2
- id: "human_merge"
type: "human"
subtype: "review"
name: "人工合併核准"
description: "工程師在合併至主分支前審查 AI 生成的修復方案。"
security:
approval_gate: true
edges:
- from: "ci_fail"
to: "diagnose"
mode: "sequential"
- from: "diagnose"
to: "generate_fix"
mode: "sequential"
- from: "generate_fix"
to: "apply_fix"
mode: "sequential"
- from: "apply_fix"
to: "rerun_ci"
mode: "sequential"
- from: "rerun_ci"
to: "human_merge"
mode: "conditional"
when: "ci.passed == true"
- from: "rerun_ci"
to: "diagnose"
mode: "fallback"
label: "Fix didn't work, try again"