返回部落格
2026 年 3 月 22 日比較· 6 分鐘閱讀

OSOP vs OpenTelemetry:不同層次,互補標準

OSOP 團隊

摘要

OpenTelemetry 是監控 AI Agent 的可觀測性標準(span、trace、指標)。OSOP 是定義和記錄 AI Agent 行為的流程標準(工作流程定義 + 執行記錄)。它們在不同層次運作,設計為協同工作。

兩個層次

two-layers.txt
┌─────────────────────────────────────────────┐
│  OSOP Layer (Process)                       │
│  .osop = "Here's the workflow"              │
│  .osoplog = "Here's what actually happened" │
│  Human-readable, auditable, optimizable     │
├─────────────────────────────────────────────┤
│  OpenTelemetry Layer (Observability)        │
│  Spans = "This function took 200ms"         │
│  Traces = "Request A → Service B → DB C"   │
│  Metrics = "P99 latency is 500ms"           │
│  Machine-readable, dashboards, alerting     │
└─────────────────────────────────────────────┘

主要差異

維度OSOPOpenTelemetry GenAI
主要目的定義工作流程 + 記錄執行證據監控效能 + 偵測異常
抽象層次流程步驟(人類可讀)函數呼叫、span(機器可讀)
格式YAML(.osop + .osoplog)Protocol Buffers / OTLP
受眾流程負責人、稽核員、AI 工程師SRE、平台工程師
定義意圖是(.osop = 應該發生什麼)否(僅記錄發生了什麼)
人工監督第一級人工節點 + 核准閘門未建模
自我最佳化比較 .osop vs .osoplog儀表板/告警

何時使用哪個

  • OSOP使用 OSOP 當你需要定義 Agent 應該做什麼、以人類可讀形式記錄它做了什麼、比較意圖與實際、或提供合規的稽核證據。
  • OpenTelemetry使用 OpenTelemetry 當你需要系統級效能監控、跨服務的分散式追蹤、即時儀表板、或延遲/錯誤率告警。
  • Both同時使用兩者當你需要全貌——流程級理解(OSOP)加上基礎設施級可觀測性(OTel)。它們是互補的,而非競爭的。

橋樑:osop-interop

OSOP 的 osop-interop 專案包含雙向 OTel 橋樑:

  • OSOP → OTel: OSOP 到 OTel:每個 .osoplog 節點記錄成為一個 OTel span。持續時間對應 span 持續時間。工具呼叫成為子 span。AI 後設資料成為 span 屬性。
  • OTel → OSOP: OTel 到 OSOP:OTel trace 可以聚合為 .osoplog 記錄進行流程級分析。Span 成為節點記錄。Trace ID 對應 run_id。

具體範例:醫療診斷工作流程

考慮一個 AI 輔助的醫療診斷工作流程。以下是每個層次捕捉的內容:

OSOP 層(.osoplog)

diagnosis.osoplog.yaml
node_records:
  - node_id: "ai_diagnosis"
    status: "COMPLETED"
    duration_ms: 8500
    ai_metadata:
      model: "med-llm-v3"
      prompt_tokens: 15000
    reasoning:
      question: "What is the likely diagnosis?"
      selected: "Type 2 diabetes"
      alternatives:
        - { option: "Pre-diabetes", reason: "Borderline A1C" }
        - { option: "Type 2 diabetes", reason: "A1C 7.2%" }
      confidence: 0.89
  - node_id: "doctor_review"
    human_metadata:
      actor: "dr_smith"
      decision: "confirmed"
      notes: "Agreed. Order glucose tolerance test."

OpenTelemetry 層

otel-trace.json
{
  "traceId": "abc123",
  "spans": [{
    "name": "llm.chat.completions",
    "duration": 3200,
    "attributes": {
      "gen_ai.system": "med-llm",
      "gen_ai.usage.prompt_tokens": 15000,
      "gen_ai.response.model": "med-llm-v3"
    }
  }]
}

OSOP 層告訴你決定了什麼以及為什麼——診斷、考慮的替代方案、醫生的確認。OTel 層告訴你多快和多可靠——延遲、token 使用量、錯誤率。兩者都有價值。兩者都不能替代另一方。

結論

OSOP 和 OpenTelemetry 回答關於 AI Agent 行為的不同問題。OSOP 問「Agent 做了什麼以及為什麼?」OpenTelemetry 問「系統表現如何?」成熟的 AI 技術棧同時使用兩者——OSOP 用於流程理解和合規,OpenTelemetry 用於運營監控。