跳转至
繁體中文 | 简体中文 | English

练习 3:看见 Agent 里面发生什么

Observability(可观测性)像帮 Agent 装仪表板:它慢了、错了或花太多 token 时,你知道是哪一步。

对应 Stage 7 — Agent Production Engineering:Harness、Loop 与 Graph 练习 3。

🎯 学习目标

  • 认识 Request ID、Span、Latency、Usage、Error 五个核心信号。
  • 用同一个 request ID 串起一次工作里的多个步骤。
  • 记录供应商实际返回的 usage;没有数据时就显示缺少,不自行猜。

先跑不花模型费的测试

在这个文件夹打开 PowerShell,直接复制:

py -3.11 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe test.py
.\.venv\Scripts\python.exe test_anthropic.py

看到两份 🎉,代表成功、错误、latency、span 与 usage 都有离线测试。测试不会连到模型。

Path A:用 Ollama 产生一条真 Trace
ollama pull qwen3.5:4b
ollama serve

另开 PowerShell:

.\.venv\Scripts\python.exe starter.py

Ollama 不收模型 API 费,但硬件、电力与时间仍有成本。某些版本可能没有返回 usage;程序会保留零值,不把估算冒充供应商数据。

Path B:记录 Anthropic 返回的 Usage
$env:ANTHROPIC_API_KEY = "贴上你的金钥"
$env:MODEL = "claude-haiku-4-5-20251001"
.\.venv\Scripts\python.exe starter_anthropic.py

Haiku 4.5 的单价是 input $1 / 1M tokens、output $5 / 1M tokens:

估算费用 = (input_tokens × $1 / 1M) + (output_tokens × $5 / 1M)

先设 $1 provider spend limit。usage 是供应商对该次回复的计数栏位;不同 API 的栏位名称与涵盖范围可能不同。

五个重要词

  • Request ID:一次请求的识别码,像包裹追踪号码。
  • Span:请求里的一小步,例如 search 或 llm_call。
  • Latency:这一步花了多久。
  • Usage:供应商返回的 input/output token 数。
  • Error:失败的步骤与安全的错误类别;记完仍要把 exception 往上抛。原始 exception 信息可能含有 secret,不能写进 log。
request_id
├─ span: search      → latency
└─ span: llm_call    → latency + usage + error

这份 starter 用小型 TraceContext 教原理。正式环境通常使用 OpenTelemetry,再把数据送到观测平台。

只改一件事

把假的 search 步骤改名成 retrieve_context,再跑测试。确认 summary 仍有两个 span,且两者使用同一个 request ID。

成功检查

  • 一次请求只有一个 request ID。
  • 每个步骤都有名称与 latency。
  • 空模型回复会留下 error,再抛出例外。
  • Log 不包含 API key、完整 Prompt 或原始 exception 信息。
Production 要补什么、常见问题

正式服务至少要能回答:哪一步慢、哪一种错误最多、一次用了多少 token,以及哪个版本开始变差。

常见问题:

  • 只记整体时间:看不出 search 还是模型慢。
  • 吞掉 exception:外层误以为成功。应该“记录后再 raise”。
  • 把 Prompt 或原始 exception 信息全写入 log:可能泄漏个人信息、文件或 secret。先记录安全的错误类别,再做 redaction 与访问控制。
  • 每笔 trace 永久保存:成本与隐私风险会增加。先定 sampling、retention 和删除规则。
  • 自行换算 token 却标成 provider usage:估算与供应商栏位要分开命名。

📚 必读与学习资源

  • ⭐⭐⭐⭐⭐ Langfuse:开源 traces、evals 与 prompt 管理。
  • ⭐⭐⭐⭐⭐ Arize Phoenix:OpenTelemetry 导向的开源观测工具。
  • ⭐⭐⭐⭐⭐ datawhalechina/hello-agents:章节式中文 Agent 教材,适合补完整背景。
  • ⭐⭐⭐⭐ LangSmith:适合 LangChain/LangGraph 生态。
  • ⭐⭐⭐⭐ Helicone:可用 proxy 方式收集 LLM 请求数据。
  • ⭐⭐⭐⭐ Datadog LLM Observability:适合已使用 Datadog APM 的团队。
  • ⭐⭐⭐⭐ Anthropic Console:查看 Claude API usage 与账务数据。

完整清单见 Stage 7 精选 Projects

模型、价格、套件与连结查核:2026-08-28 UTC。