Debug и трейсинг
Детальный debug-вид — каждый промпт, вызов тула, MCP-фрейм, параметр модели, счётчик токенов и латентность турна. Это телеметрия, а не источник правды: append-only, write-heavy, высокий объём, читается в основном для отладки и eval'а, с более коротким сроком хранения, чем у чатов.
Правило: трейсы не идут в транзакционный Postgres. Сырые промпты/трейсы раздули бы чат-БД и смешали бы телеметрию с правдой. У них своя система.
То, что есть сегодня, — это не оно
Langfuse не развёрнут, и ничто здесь под него не инструментировано. Промпт хода сегодня можно прочитать в журнале промптов — это таблица, выключенная по умолчанию, включаемая по агенту его владельцем, хранимая семь дней и доступная только администратору платформы в панели. Короткая, всегда включённая запись о том, что агент делал, — это ещё одна, третья вещь. Обе описаны на странице Что агент делал. Всё остальное на этой странице — план.
Рекомендуется: self-hosted Langfuse
Langfuse создан ровно для этого — и даёт debug-UI из коробки:
- Трейсы и сессии — полное дерево турна: промпты, вызовы LLM, вызовы тулов / MCP-трафик, промежуточные шаги, вложенные саб-агенты.
- Промпты, токены, стоимость, латентность на вызов; поиск и фильтр; сравнение прогонов.
- Eval — датасеты, оценки, regression-проверки позже.
- Self-hosted в кластере (Postgres + ClickHouse под высокообъёмное хранилище трейсов).
Мозг (api) инструментирован, чтобы эмитить трейс на турн; tools/call worker'а и результаты прикрепляются как spans. Ничего из этого не живёт в таблице чатов.
Альтернатива (своими руками): писать события трейсов в ClickHouse (или JSONL в объектное хранилище) — дешёвое колоночное хранилище под append-only логи — но тогда UI ты строишь сам. Langfuse выигрывает по debug-опыту.
Хранение и тиры
- Hot в ClickHouse для свежей отладки (дни–недели).
- Cold скатывается в объектное хранилище (или дропается) по retention-политике — трейсы одноразовы в том смысле, в каком чаты — нет.
Что где всплывает
- Эта плоскость трейсов внутренняя (debug/eval), та же control-plane-data, которая никогда не доходит до пользовательского чата — см. Worker → Use про разделение chat-vs-control-plane.
- Турн несёт trace id;
Messageв чате может хранить этот id, чтобы прыгнуть от сообщения прямо к его полному трейсу.
См. также
- Хранилище — чат как источник записи (свободный от блобов трейсов).
- Worker → Use — MCP-трафик тулов, который становится spans.
- Реализация — подключение инструментирования.