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.31Diff 輸出
執行 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 結果。每個流程都值得版本控制。