Cover image for Debugging LLM Calls: How to Trace What Your AI Agent Actually Did

John

所以我之前在玩一個小 side project,是一個會回答有關世界盃問題的聊天機器人。很有趣、風險低,也沒人會因此扣薪水。

有人問它:「錦標賽結束了嗎?」

它自信地回答「還沒」。但答案是錯的——其實比賽已經結束好幾週了。

好吧,模型偶爾出錯不算什麼大新聞。真正讓我困惑的是下一個問題:為什麼?它有試著查證嗎?還是只是根據記憶猜的?老實說,我根本沒有辦法找出原因。模型不會記日記,它只是回答,接著推理過程就消失了。

無論你是在做 hobby project 還是真正有使用者的產品,這都是事實:沒有日誌、沒有「我回答前到底看過什麼」,什麼都沒有。你只能用截圖和感覺去 debug 一個黑箱。

如果你還沒深入了解過,這裡用一句話說明

我相信你們當中應該有一部分人已經知道我要說什麼了:OpenTelemetry。如果你已經知道,可以直接跳過。

但如果你屬於「聽過名字,但從沒實際看過」的族群,這裡簡單說明一下:它基本上就是 AI 呼叫的黑箱飛行記錄器。每次你的程式向模型發出請求時,它都會自動記錄:問了什麼、回傳了什麼、花了多久、以及花了多少錢。

實際設定方式,不需要基礎架構背景

  1. 抓一個針對你所使用模型供應商的小型函式庫,它會自動包裝你現有的程式碼,你不需要重寫呼叫
  2. 指向一個要傳送資料的地方,只需要一個 URL 和金鑰
  3. 像平常一樣向你的機器人提問
from openinference.instrumentation.anthropic import AnthropicInstrumentor

AnthropicInstrumentor().instrument(tracer_provider=provider)

# Nothing else changes below. This call is now traced automatically.
response = client.messages.create(model=model_name, messages=messages)

Enter fullscreen mode Exit fullscreen mode

完整記錄會在之後立即出現:提示詞、答案、時間、成本。第一次看到時,會有一種「原來是這樣」的滿足感。

你需要的東西:你原本就用來呼叫模型的 API 金鑰,以及一個要傳送資料的地方,有幾個不錯的免費選項。

完成設定所需的時間:不到 30 分鐘,大部分時間只是把兩行程式碼貼到你已經寫好的程式中。

生態系概覽,讓你知道有哪些選擇

這個領域中已經存在的一些工具,值得認識一下它們的名字,即使你不需要全部用到:LangSmith、Langfuse、Helicone、PromptLayer、Braintrust,以及 Arize Phoenix(如果你想自行託管,這個是免費且開源的)。

如果你只是想先試試看、不想立即承諾任何東西,Enprompta 是一個不錯、適合初學者的起點。

甚至還有一個專門用來實際操作的小型公開範例專案:

2026 World Cup Assistant

一個輕量級的助理,用來回答有關 2026 FIFA 世界盃的問題 (美國/加拿大/墨西哥,2026 年 6 月 11 日 – 7 月 19 日)。它會呼叫 Claude 內建的網路搜尋工具,因此答案可以反映即時賽果和賽程。

提供兩種形式——網頁應用程式和命令列工具——共用同一個提示詞和 依賴套件。

這個應用程式故意沒有加入檢測;加入檢測是一項 學生練習。

使用 Enprompta 進行檢測

想看看加入檢測後會有什麼差別嗎?在 Colab 中開啟快速入門 notebook——它會複製這個應用程式、連接 OpenTelemetry 追蹤、版本化提示詞,以及 針對單一 LLM 呼叫位置的評估,然後將追蹤串流到你的 Enprompta 專案。

Open In Colab

參加課程:評估 AI Agents

追蹤完成後,學習如何評估它。這個應用程式是 Enprompta 免費 AI Agent 評估課程中的實作範例——你會對它進行評分,涵蓋……

複製它、連接追蹤,然後去找出你自己的「等等,它為什麼會這麼說」。