---
title: "漂移检测 (Drift Detection)"
created: 2026-06-10
updated: 2026-06-10
type: concept
tags: [observability, llm, monitoring, drift]
sources: [raw/articles/pydantic-three-piece-suite-2026.md]
---

# 漂移检测 (Drift Detection)

> 监控 LLM 输出结构随时间变化的趋势检测技术——在"第 47 次报错"之前，从"第 32 次开始不对劲"时就看到信号。

## 问题

LLM 输出的 JSON 错误模式是**漂移的**而非稳定的：
- 第 1 次：字段名少了下划线
- 第 47 次：多了未定义的字段
- 第 89 次：str 类型塞了 None

传统 `model_validate` 只能告诉你某次校验失败，不能告诉你**趋势**——哪些字段一直在漂？哪个模型最不稳定？

## 检测维度

- **字段漂移**：哪些字段的校验失败频率在上升？
- **类型漂移**：哪些字段的类型不匹配越来越频繁？
- **Token 成本漂移**：输出格式崩塌是否伴随 token 消耗激增？
- **Tool 调用漂移**：Agent 调用某个 tool 的频率是否异常变化？

## 实现方式

[[logfire|Logfire]] 提供了基于 SQL 查询的漂移检测——不是点按钮过滤，是写 SQL 查 trace：

```sql
SELECT tool_name, count(*) as calls
FROM traces
WHERE time_range = '7d'
GROUP BY tool_name ORDER BY calls DESC
```

## 真实案例

Sophos 安全团队：Agent 调用某个 tool 的频率从每 50 次推理 1 次涨到每 8 次 1 次——不是业务量涨了，是 Agent 学"聪明"了。传统日志只报告调用成功，SQL 查询揭示了频率异常。

## 参考

- [[logfire|Logfire]]
- [[agent-observability|Agent 可观测性]]
- [[structured-output|结构化输出]]
