RAG Observability

Online-наблюдаемость RAG: трейсинг самого retrieval (какие чанки пришли), chunk-level attribution на каждый запрос и версия индекса в трейсах. Позволяет отличить retrieval-проблему (принесли не те документы) от generation-проблемы (модель проигнорировала верный контекст). Дополняет offline-метрики RAG Metrics.

Суть

RAG Metrics меряет качество offline — на golden-наборе с порогами (Hit Rate, Faithfulness и т.д.). Online-observability отвечает на другой вопрос: что и почему сломалось на живом трафике — когда golden-набор уже пройден, а в проде ответы деградируют.

Зачем это нужно

Главная ловушка прод-RAG: фейлы выглядят как проблемы LLM, а на деле это проблемы retrieval — модель «уверенно ошиблась» не потому что галлюцинировала, а потому что добросовестно рассуждала по неверному (например, устаревшему) контексту. Без трейсинга retrieval эти два режима отказа неразличимы.

Как работает

  • Retrieval tracing — логировать событие chunk_retrieved (какие чанки и с какими скорами пришли), а не только финальный вывод LLM.
  • Chunk-level attribution на запрос — фиксировать, какие чанки реально попали в контекст → разделяет retrieval-проблему (не те документы) и generation-проблему (верный контекст проигнорирован).
  • Index version attribution — писать версию/alias индекса (см. Vector Store Persistence) в каждый retrieval-span → можно скоррелировать падение качества с обновлением индекса («качество упало во вторник» → отфильтровать трейсы по новой версии, сравнить со старой). Это детектор drift.
  • 3 production-слоя: indexing pipeline + retrieval layer + observability layer (трекинг retrieval-качества во времени + связь версий индекса с регрессиями ответов). Без observability-слоя «работало на staging» молча отдаёт устаревшее/неверное в проде.
  • Инструменты (Arize Phoenix, LangSmith, Langfuse) — см. ландшафт в RAG Metrics; на уровне агента/графа — LangGraph Observability.

Связано с

  • RAG Metrics — offline-метрики качества ↔ online-трейсинг (эта заметка) = две стороны оценки RAG
  • RAG — observability-слой поверх retrieval-конвейера
  • Vector Store Persistence — версия индекса в трейсе ↔ alias/версионирование индекса
  • LangGraph Observability — observability на уровне агента (трейсинг шагов/tools), здесь — на уровне retrieval

Открытые вопросы

  • минимальный набор полей retrieval-span для прод-дебага (chunk_id, score, index_version, latency)?
  • как алертить на retrieval-drift — какой порог падения Hit Rate / Faithfulness на живом трафике считать триггером?