Наблюдаемость важна для агентов LLM. Понимание процесса принятия решений, выполнения узлов, задержки и успешности отдельных вызовов становится все более важным в производственной системе. Вместо того, чтобы просто полагаться на существующие инструменты...
Наблюдаемость важна для агентов LLM. Понимание процесса принятия решений, выполнения узлов, задержки и успешности отдельных вызовов становится все более важным в производственной системе.
Вместо того, чтобы просто полагаться на существующие инструменты, такие как Langfuse и LangGraph, я хотел понять, что происходит внутри, и создать индивидуальное решение для моего собственного варианта использования.
График
Первая версия графа поддерживает три фундаментальных механизма выполнения:
Узловое исполнение и направленные ребра
Условная маршрутизация
Исполнение с разветвлением и веером
Этот дизайн следует принципу, описанному Блохом: "Все программисты являются дизайнерами API. Хорошие программы являются модульными, а межмодульные границы определяют API. Хорошие модули используются повторно". Таким образом, граф рассматривает каждый узел как независимую вычислительную единицу с четко определенным интерфейсом к остальной части графа.
Для простоты каждый узел изначально ограничен одним исходящим переходом. Таким образом, последовательное выполнение может быть представлено возвратом одного имени узла, тогда как более сложные шаблоны выполнения представлены явно через механизмы маршрутизации или разветвления.
Каждый узел получает текущее состояние графа и возвращает