封面图片:调试 LLM 调用:如何追踪 AI 代理实际做了什么

John

我之前在捣鼓一个小项目,一个回答有关世界杯问题的聊天机器人。有趣、风险低,没人靠它发工资。

有人问它:“比赛结束了吗?”

它自信地说:没有。错的。比赛其实几周前就结束了。

好吧,模型偶尔出错不是什么新鲜事。真正让我在意的是下一个问题:为什么?它真的尝试去查过吗?还是只凭记忆瞎猜?老实说,我完全没辙。模型不会写日记。它回答完就完,推理过程就烟消云散了。

无论你做的是业余项目还是面向真实用户的产品,这一点都成立。没有日志,没有“这是我回答前具体看了什么”,什么都没有。你只能靠截图和直觉来调试一个黑箱。

如果你还没深入研究过,一句话总结

我相信你们当中不少人已经知道我要说什么:OpenTelemetry。如果你是,就直接跳过。

但如果你属于“听过名字,却没真正了解”那类人,简短版是:它基本上相当于给 AI 调用装了一个黑匣子飞行记录仪。每次你的代码向模型发起请求,它都会默默记下问了什么、返回了什么、耗时多久、花费了多少。

如何实际设置,无需基础设施背景

  1. 根据你使用的模型提供商,获取一个小库,它会自动包装你现有的代码,你无需重写调用
  2. 指向一个发送数据的地址,只需一个 URL 和一个密钥
  3. 像往常一样向你的机器人提问
from openinference.instrumentation.anthropic import AnthropicInstrumentor

AnthropicInstrumentor().instrument(tracer_provider=provider)

# 下面的代码无需改动。此调用现已自动追踪。
response = client.messages.create(model=model_name, messages=messages)

进入全屏模式 退出全屏模式

紧接着就会出现完整记录:提示词、答案、耗时、费用。第一次看到时,你会真正感受到“原来如此”的满足。

你需要准备:你已经用于模型的 API 密钥,以及一个接收数据的地址,有几个不错的免费选项。

上手时间:不到 30 分钟,大部分时间只是把两行代码粘贴到你已有的代码里。

工具概览,帮你了解都有哪些

这个领域已有的一些工具,值得知道名字(即使你不需要全部):LangSmith、Langfuse、Helicone、PromptLayer、Braintrust,以及 Arize Phoenix(如果你想自托管,它是免费开源的)。

如果你只是想先试试看,不想立刻绑定任何东西,Enprompta 是一个不错的上手友好选择。

甚至还有一个专门用来动手实践的小型公开示例项目:

2026 世界杯助手

一个轻量级助手,回答有关 2026 年 FIFA 世界杯(美国/加拿大/墨西哥,2026 年 6 月 11 日 – 7 月 19 日)的问题。它调用 Claude 内置的网络搜索工具,因此答案能反映实时结果和赛程。

提供两种形式——网页应用和命令行工具——共享同一个提示词和依赖。

该应用故意未集成追踪;添加追踪是一个练习任务。

用 Enprompta 集成追踪

想看看集成追踪到底能带来什么?在 Colab 中打开快速入门笔记本——它会克隆这个应用,接入 OpenTelemetry 追踪、带版本的提示词,以及针对单一 LLM 调用位置的评估,然后将追踪流式传输到你的 Enprompta 项目。

在 Colab 中打开

参加课程:评估 AI 代理

追踪完成后,学习如何评估它。这个应用是 Enprompta 免费 AI 代理评估课程的运行示例——你将从多个维度打分……

克隆它,接入追踪,然后去发现你自己的“等等,它为什么这么说”时刻。