В целом - core уже готов.
Однако, если мы говорим о какой-никакой серьёзной разработке - есть еще как минимум пару слоёв под боком:
➡️ Layer 3 - Observability/Tracing
Довольно важный внешний слой, в котором можно :
➡️ Посмотреть как выполнялся запрос. что на входе и на выходе у ЛЛМ, какие tools были вызваны и в какой момент времени. Т.е. это чуть ли не ваш главный инструмент в debug'е исполнения графов. В инструментах по типу LangFuse прям графикой отображаются узлы - можно наглядно посмотреть как двигался запрос в рамках диалога.
➡️Сколько выполнение заняло времени, глянуть метадату (props, labels), cколько токенов потрачено, сколько стоило денег - всё это важные метрики, за которыми необходимо следить и учитывать.
➡️ Хранить и редактировать промпты/конфиги + версионирование
➡️ Делать Evaluations. Это по сути сценарные авто-тесты, но не для кода, а для поведения моделей. Ими ты можешь делать a/b тестирование, следить за качеством между изменениями/релизами, прогонять по различным измененным входящим параметрам/данным. Выполняются как на подготовленных датасетах, так и в онлайне/рантайме на прод запросах.
Что взять? В топах - Langfuse (Open-source, их на днях купил Clickhouse) и LangSmith. Но никто не запрещает подключить Open Telemetry и экспорировать в какие-нибудь Grafana и Jaeger.
Это базовые инструменты дебага. Т.к. Агент может иметь довольно сложную структуру ветвлений - следить за этим очень непросто без подобных систем. В двухмерное пространство исполнения нод графа вы еще подставьте лупы + параллельные запросы и дурка вам будет обеспечена в случае с обычными лог файлами 👨⚕️
Продолжение ниже ⤵️
@Айтигребец