自主程式碼修復管線

AI ↔ AI

CI 失敗後,AI 診斷並修復問題,CI 重新執行,人工再合併。

6 個節點 · 6 條連接devops
agentcicdcli
視覺化
偵測到 CI 失敗event

在 CI 執行失敗時透過 Webhook 觸發,並附上測試輸出。

sequentialAI 錯誤診斷
AI 錯誤診斷agent

分析測試輸出、堆疊追蹤與近期差異以識別根本原因。

sequentialAI 產生修復方案
AI 產生修復方案agent

撰寫程式碼修補以解決識別出的問題。

sequential套用修補
套用修補cli

使用 git apply 將生成的差異套用至工作分支。

sequential重新執行 CI
重新執行 CIcicd

對已修補的程式碼執行完整測試套件。

conditional人工合併核准
fallbackAI 錯誤診斷
人工合併核准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"