跳至主要內容
Telemetry
瀏覽說明文件
指南更新於 2026年7月29日由 Telemetry 編輯團隊和產品團隊審查閱讀約需 5 分鐘

讓程式設計代理使用這篇文件

開啟 Claude Code、Codex、Cursor 或其他編碼代理的集中提示包,然後將其適應此處介紹的工作流程。

本頁內容
  1. 將每個系統用於其預期工作
  2. 刻意對映語義
  3. 在追蹤旁邊發出一個最終結果
  4. 僅新增一次模型用法
  5. 保護資料邊界
  6. 查詢結果並保留追蹤連結
  7. 驗證連線

將 OpenTelemetry GenAI 追蹤連線到結果事件

OpenTelemetry 追蹤和 Telemetry 結構化事件解決了 AI 代理調查的不同部分。將詳細的模型、代理和工具跨度儲存在與 OTLP 相容的可觀測性後端中。當您想要檢查 SQL 的成功、成本、延遲、發布、帳戶、移交或審查的產品價值時,向 Telemetry 傳送較小的終端結果事件。

Telemetry 不公開 OTLP 端點,也不是 OpenTelemetry 追蹤後端。連線是應用程式擁有的相關識別符號,而不是每個跨度的第二個匯出。

將每個系統用於其預期工作

OpenTelemetry 跡線非常適合回答:

  • 哪個跨度或工具在一次慢速執行中占主導地位;
  • 控制如何在代理、模型、檢索和工具操作之間移動;
  • 哪種異常或依賴性解釋了個別失敗;
  • 經批准的痕量保留邊界記憶體在哪些詳細屬性。

緊湊的結果事件非常適合回答:

  • 哪個版本的終端任務成功率最高;
  • 對於每個接受的結果,哪個工作流程成本最高;
  • 本週工具重試或人工交接是否增加;
  • 哪個客戶層受到有限錯誤類別的影響;
  • 提示或模型版本後評估分數是否發生變化。

不要將所有跨度屬性複製到事件中。確定哪些聚合問題需要持久列並將這些欄位列入許可名單。

刻意對映語義

OpenTelemetry 生成式 AI 語義約定 定義了模型、代理和工具操作的不斷發展的屬性和跨度約定。固定您的服務使用的語義約定和工具庫版本,然後在升級期間檢查對映。

OpenTelemetry概念 Telemetry 活動場地 指導
活動跨度追蹤 ID trace_id 批准後安全關聯指標;請勿將其用作帳戶身分
應用程式執行或操作 ID run_idoperation_id 優先使用應用程式識別符號進行重試和以後審查的連線
gen_ai.operation.name operation_name 保持有界操作類別
gen_ai.provider.name provider 使用固定儀器發出的提供程式值
請求或回應模型 model 選擇並記錄一種含義,或分別保留 requested_modelresponse_model
輸入和輸出使用 input_tokensoutput_tokens 記錄一次數字使用情況;不要重複計算推理標記細節
代理人身分 agent_nameagent_version 使用穩定的邏輯名稱而不是生成的執行個體識別符號
跨度狀態或異常 statuserror_type 將不受限制的訊息轉換為列入白名單的應用程式類別

語義約定在成熟時可能會發生變化。不要假設在一個 SDK 或框架中觀察到的屬性在任何地方都具有相同的穩定性或可用性。將精確對映視為版本化應用程式程式碼。

在追蹤旁邊發出一個最終結果

此 JavaScript 包裝器讀取當前追蹤 ID 並在代理執行後記錄應用程式結果。透過設定的OpenTelemetry SDK繼續匯出跡線;只有選定的欄位才會轉到 Telemetry。

import { trace } from "@opentelemetry/api";
import telemetry from "telemetry-sh";

telemetry.init(process.env.TELEMETRY_API_KEY);

export async function runSupportAgent({
  agent,
  input,
  operationId,
  accountId,
  release,
}) {
  const startedAt = Date.now();
  let status = "success";
  let errorType;
  let result;

  try {
    result = await agent.run(input);
    return result;
  } catch (error) {
    status = "failed";
    errorType = classifyAgentError(error);
    throw error;
  } finally {
    const activeSpan = trace.getActiveSpan();
    const traceId = activeSpan?.spanContext().traceId;

    await telemetry.log("agent_run_completed", {
      operation_id: operationId,
      trace_id: traceId,
      workflow: "support_resolution",
      account_id: accountId,
      status,
      error_type: errorType,
      duration_ms: Date.now() - startedAt,
      human_handoff: result?.handoffRequired ?? false,
      tool_call_count: result?.toolCallCount ?? 0,
      release,
    });
  }
}

使事件傳遞失敗成為非致命的,除非業務工作流程明確要求否則。使用短超時、有界重試、正常關閉以及 批次處理、背壓和關閉 中的交付指導。

僅新增一次模型用法

如果 OpenTelemetry 工具已經觀察到提供者請求,則不會自動將請求使用情況放入 Telemetry 中。確定聚合 SQL 問題是否需要單獨的 llm_request_completed 事件。

當發生這種情況時,為每個計費請求發出一個事件:

  • operation_idrun_id 和可選的經批准的 trace_id
  • providerrequested_modelresponse_modelservice_tier
  • 輸入、快取輸入、輸出和其他單獨定義的權杖類別;
  • estimated_cost_usd 和版本化定價源;
  • latency_msstatusattemptfeaturerelease

不要從跨度持續時間中得出成本。使用提供商報告的使用情況和經過審查的費率資料表,然後將估算值與提供商發票進行核對。 OpenAI 請求成本指南 顯示了這種模式。

保護資料邊界

生成式人工智慧遙測可能包含異常敏感的資料。預設情況下不將這些欄位傳送到 Telemetry:

  • 提示或補全內容;
  • 系統指令或思路內容;
  • 檢索到的文件文字或嵌入;
  • 工具參數、工具回應、shell 輸出或檔案內容;
  • 授權標頭、cookie、API 金鑰、資料庫憑據或連線字串;
  • 無限制的例外訊息或 OpenTelemetry 行李;
  • 未透過產品收集和保留審查的個人資料。

優先選擇 input_categoryoutput_categorytool_nameerror_typepolicy_resultreview_outcome 等類別。在致電任一出口商之前應用許可名單;從儀表板中刪除欄位不會將其從儲存的資料中刪除。

使用 SQL 進行聚合比較,同時保留回應者需要的相關指標:

SELECT
  release,
  workflow,
  COUNT(*) AS completed_runs,
  SUM(CASE WHEN status = 'success' THEN 1 ELSE 0 END) AS successful_runs,
  SUM(CASE WHEN human_handoff THEN 1 ELSE 0 END) AS handoffs,
  ROUND(AVG(duration_ms), 0) AS average_duration_ms,
  MAX(trace_id) AS example_trace_id
FROM agent_run_completed
WHERE timestamp_utc >= now() - INTERVAL '7 days'
GROUP BY release, workflow
ORDER BY completed_runs DESC;

MAX(trace_id) 只是該組中的範例指標,而不是代表性追蹤。要進行調查,請開啟基礎行,選擇相關執行,並將其 trace_id 貼上到追蹤後端。如果該後端支援穩定的 URL 範本,請在存取控制的內部工具中建置連結,而不是將供應商憑據或私有主機名作為事件欄位傳送。

驗證連線

生產推出前:

  1. 生成一次成功執行、一次工具失敗、一次恢復重試和一次終端失敗。
  2. 確認追蹤後端包含預期的生成樹。
  3. 確認 Telemetry 每次執行包含一個終端事件以及預期的請求或工具事件。
  4. 比較追蹤和事件相關識別符號。
  5. 驗證提示、完成、參數、憑據和私人內容是否不存在。
  6. 測試匯出器速度緩慢或不可用時的行為。
  7. 文件所有者、保留、語義約定版本、取樣和調查移交。

有關一般架構和 SDK 範例,請閱讀 Telemetry 與 OpenTelemetry。對於特定於代理的結果設計,請繼續 使用 SQL 評估 AI 代理AI代理監控產品邊界

相關產品功能

連線代理執行、工具使用、代幣成本、品質和產品成果。

內容責任與技術參考

Telemetry 編輯團隊負責維護本文;產品團隊審查功能行為、範例和適用範圍。

檢視編輯規範