返回部落格
2026 年 4 月 3 日工具· 5 分鐘閱讀

osop diff:流程執行的 Git Diff

OSOP 團隊

Git 給了開發者程式碼的 diff。 OSOP 給團隊流程的 diff。全新的 osop diff 指令比較兩份執行日誌 — 或兩份工作流程定義 — 精確顯示什麼改變了、什麼變快了、什麼變貴了、什麼壞掉了。

OSOP 中每次工作流程執行都會產生一個 .osoplog.yaml 檔案 — 一份結構化的記錄,包含發生了什麼、每一步花了多久、花了多少錢、是否成功。這些日誌天生就是為了 diff 而設計的。

兩次執行,一個指令

假設你有一個部署管線跑了兩次 — 一次在週一,一次在週二。這是兩份執行日誌:

run-v1.osoplog.yaml
osoplog_version: "1.0"
run_id: "abc-001"
workflow_id: "deploy-pipeline"
status: "COMPLETED"
started_at: "2026-04-01T10:00:00Z"
ended_at: "2026-04-01T10:04:32Z"
duration_ms: 272000

node_records:
  - node_id: "build"
    status: "COMPLETED"
    duration_ms: 45000
    outputs:
      artifact_size_mb: 12.4
  - node_id: "test"
    status: "COMPLETED"
    duration_ms: 120000
  - node_id: "deploy"
    status: "COMPLETED"
    duration_ms: 95000

cost:
  total_usd: 0.42

週二的執行全面更快。但快了多少?與其肉眼比對兩個 YAML 檔案,只需執行一個指令:

run-v2.osoplog.yaml
osoplog_version: "1.0"
run_id: "abc-002"
workflow_id: "deploy-pipeline"
status: "COMPLETED"
started_at: "2026-04-02T10:00:00Z"
ended_at: "2026-04-02T10:03:15Z"
duration_ms: 195000

node_records:
  - node_id: "build"
    status: "COMPLETED"
    duration_ms: 30000
    outputs:
      artifact_size_mb: 11.8
  - node_id: "test"
    status: "COMPLETED"
    duration_ms: 90000
  - node_id: "deploy"
    status: "COMPLETED"
    duration_ms: 65000

cost:
  total_usd: 0.31

Diff 輸出

執行 osop diff run-v1.osoplog.yaml run-v2.osoplog.yaml 會產生結構化的比較結果:

osop-diff-output.yaml
osop diff run-v1.osoplog.yaml run-v2.osoplog.yaml

DIFF deploy-pipeline  abc-001 vs abc-002
──────────────────────────────────────────────
Node         Duration        Cost       Status
──────────────────────────────────────────────
build        45s -> 30s      -          COMPLETED
             (-33.3%)
test         120s -> 90s     -          COMPLETED
             (-25.0%)
deploy       95s -> 65s      -          COMPLETED
             (-31.6%)
──────────────────────────────────────────────
TOTAL        272s -> 195s    $0.42 -> $0.31
             (-28.3%)        (-26.2%)

為什麼這很重要

軟體團隊花了數十年建構追蹤程式碼變更的工具。但執行程式碼的流程 — CI/CD 管線、AI Agent 工作流程、資料管線 — 卻沒有對等的工具。osop diff 填補了這個空缺:

  • 效能衰退偵測 — 在某一步突然慢了 3 倍變成生產事故之前就發現它。
  • 成本追蹤 — 精確看到是哪個節點推高了帳單,而不只是總金額。
  • 故障除錯 — 比較一次成功的執行和一次失敗的執行,找出壞掉的步驟。
  • 優化驗證 — 調整工作流程後,用硬數據證明改進效果。

比較定義,不只是執行

osop diff 也可以用於 .osop 定義檔。這讓你看到工作流程本身的結構變化 — 新增的節點、移除的邊、改變的模式:

definition-diff.yaml
osop diff v1.osop v2.osop

DIFF deploy-pipeline  v1.0.0 vs v1.1.0
──────────────────────────────────────────────
+ Node "cache" added (type: cli)
~ Edge "build -> test" changed mode:
    sequential -> parallel
~ Node "deploy" description changed:
    "Deploy to staging" -> "Deploy to production"
──────────────────────────────────────────────
3 changes (1 added, 0 removed, 2 modified)

結合執行 diff,你就能看到完整畫面:設計上改了什麼,以及這個改變如何影響了實際效能。

工作流程的 Git

Git 追蹤你的程式碼在每個時間點的狀態。OSOP 追蹤你的流程在每個時間點的行為。兩者結合,閉合了可觀測性迴路:

  • git diff 告訴你兩個提交之間程式碼改了什麼。
  • osop diff(定義) 告訴你兩個版本之間工作流程結構改了什麼。
  • osop diff(日誌) 告訴你兩次執行之間行為改了什麼。

立即試用: 用 pip install osop 安裝 OSOP CLI,執行你的工作流程兩次,然後 diff 結果。每個流程都值得版本控制。