Отслеживание и оценка агентов Cursor с помощью Langfuse на базе ClickHouse

Источник: ClickHouse•

Отслеживание и оценка агентов Cursor с помощью Langfuse на базе ClickHouse

Подключите Cursor к Langfuse для трассировки каждого шага агента, выявления дорогостоящих вызовов моделей и инструментов, а также использования оценок для подтверждения эффективности исправления — всю аналитику под капотом обеспечивает ClickHouse.

Дифференциал кода показывает, что именно изменилось. Улучшение агента также означает понимание того, какие вызовы моделей и инструментов привели к этому результату, куда ушло время и какова стоимость выполнения.

Langfuse, наша платформа с открытым исходным кодом для наблюдаемости и оценки агентов, помогает вам проверять и совершенствовать эту работу. Плагин Langfuse Observability записывает вызовы моделей Cursor, выполнение инструментов и использование токенов в виде трейсов. ClickHouse обеспечивает аналитическую основу для этих трейсов, позволяя исследовать отдельные запуски и сравнивать паттерны в масштабах всей команды.

В этом руководстве мы подключим Cursor к Langfuse, изучим дорогостоящий шаг и с помощью оценок проверим, улучшает ли результат внесенное изменение.

Наблюдаемость агентов генерирует аналитические данные: вызовы моделей, выполнение инструментов, использование токенов, задержку и оценки. ClickHouse — это аналитическая база данных, лежащая в основе Langfuse, которая поддерживает как исследование отдельных запусков, так и анализ работы всей команды.

В Langfuse v4 широкая таблица наблюдений ClickHouse хранит данные о пользователе, сеансе, тегах и окружении вместе с каждым наблюдением. Дашборды Langfuse и Metrics API v2 используют эти наблюдения для агрегации записанных данных об использовании, стоимости и задержке. Хранение контекста трейса вместе с каждым наблюдением позволяет избежать объединения отдельных таблиц трейсов и наблюдений для этих запросов.

Для команды, использующей Cursor, это означает, что вы можете начать с анализа тренда затрат, найти шаги, стоящие за ним, и изучить активность моделей и инструментов, требующую внимания.

  • Создайте проект в Langfuse Cloud или на вашем self-hosted инстансе и скопируйте его ключи API.
  • Установите Langfuse Observability из Маркетплейса Cursor: откройте раздел Customize, перейдите в Plugins, выберите Browse Marketplace и найдите его.
  • Поместите свои ключи в файл ~/.cursor/langfuse.json:

В этом примере используется регион EU. Для других регионов или развертывания на собственных серверах используйте соответствующий базовый URL из документации по интеграции.

  • Перезапустите Cursor и отправьте промпт агенту.

Плагин имеет открытый исходный код и распространяется под лицензией MIT. Он отправляет в ваш проект Langfuse промпты, сообщения ассистента, входные и выходные данные инструментов, использование токенов и другие метаданные трейсов. Перехват содержимого читаемых файлов по умолчанию отключен; для его включения требуются параметры captureFileContent и captureToolOutput. Плагин маскирует ваши ключи Langfuse и по умолчанию логирует сбои выгрузки, не останавливая работу Cursor. Установите для параметра enabled значение false в конфигурации, чтобы отключить его. В документации по интеграции описаны все параметры, интерфейс командной строки (CLI) Cursor и Cloud Agents.

Плагин работает на основе хуков Cursor и создает один трейз на один промпт с названием Cursor Turn. Внутри него вы найдете:

  • Наблюдение LLM для каждого сообщения ассистента, где в качестве входных данных выступает история разговора, а в качестве выходных — текст, ход рассуждений и запрошенные вызовы инструментов.
  • Наблюдение за инструментом для каждого инструмента, запускаемого агентом (такого как Shell, Read, StrReplace и инструменты MCP), с указанием входных и выходных данных, длительности и статуса ошибки.
  • Вложенные наблюдения Cursor Subagent для субагентов, а также событие при компактизации контекста в Cursor.

Все шаги одного разговора группируются в session, а в качестве пользователя по умолчанию используется адрес электронной почты вошедшей в систему учетной записи Cursor, если вы не переопределите его.

Cursor сообщает об использовании токенов один раз за шаг, а не за каждый вызов модели. Плагин записывает это значение в последнее наблюдение LLM данного шага, поэтому общую стоимость следует считывать из итоговых данных трейса.

Каждый трейз содержит информацию о пользователе Cursor, ваши теги и метку окружения, что позволяет отделить трейсы кодинг-агентов от продакшн-трейсов. Кастомные дашборды отображают графики стоимости и использования в разрезе пользователей, моделей и времени, а те же фильтры применяются и к таблице трейсов. Модели без определенной стоимости отображают токены, но не стоимость; для них вы можете добавить кастомное определение модели. Информацию о внедрении этого подхода в командах см. в разделе Отслеживание и оптимизация использования кодинг-агентов.

Представьте команду, которая внедрила Cursor для всех своих инженеров. Спустя неделю сбора трейсов дашборд затрат показывает расходы в разрезе разработчиков и моделей, причем несколько шагов выделяются своей высокой стоимостью.

1. Команда открывает эти шаги. Некоторые из них имеют одинаковую структуру: агент многократно читает одни и те же файлы, а команда оболочки завершается с ошибкой и перезапускается до тех пор, пока не выполнится успешно.

2. Команда превращает повторяющийся контекст в правило проекта, в котором указано, где находится соответствующий код и какую команду сборки следует запустить.

3. Чтобы убедиться, что правило помогает, команда создает dataset из промптов в этих реальных сеансах. Оценщик определяет, была ли выполнена каждая задача, а представление сравнения показывает стоимость и задержку наряду с этими оценками. Правило внедряется, если затраты снижаются, а процент завершения остается высоким.

Вы также можете позволить Cursor выполнить поиск. Плагин Langfuse добавляет навык Langfuse, который дает агенту доступ к вашим трейсам, промптам, датасетам и оценкам через CLI Langfuse. Установите его вместе с Langfuse Observability, а затем задайте вопрос: «Перечисли самые дорогостоящие шаги Cursor на этой неделе и найдите, что у них общего».

После развертывания дашборд из первого шага покажет, снизилась ли стоимость одного шага.

Cursor также редактирует промпты, модели и инструменты вашего приложения, и каждое такое изменение может быть экспериментом. Сохраняйте реальные кейсы в виде датасета, определяйте scores с помощью оценки LLM-как-судья, оценщиков кода или экспертной проверки, запускайте приложение на датасете и сравнивайте запуск с текущей версией перед слиянием. В CI действие GitHub langfuse/experiment-action прерывает выполнение задачи, если оценка нарушает заданный вами порог.

После развертывания онлайн-оценка оценивает выборку продакшн-трейсов с помощью тех же оценщиков. Трейсы с низкими оценками возвращаются в датасет, чтобы следующий эксперимент охватил их. Цикл AI-инжиниринга в Langfuse Academy описывает этот процесс целиком.

Cursor может настроить это за вас. После установки навыка Langfuse отправьте агенту промпт:

Создайте проект в Langfuse Cloud или используйте инстанс, развернутый собственными силами, а затем выполните описанную выше настройку для записи вашего первого сеанса Cursor. Изучите дорогостоящий шаг, обновите соответствующую инструкцию и оцените результат перед его внедрением.

Если ваше приложение использует ClickHouse, плагин ClickHouse для Cursor предоставляет агенту рекомендации по проектированию схем, оптимизации запросов и загрузке данных. Попросите Cursor проверить схему таблицы или проверить SQL на соответствие лучшим практикам ClickHouse.

О чём эта статья

Ещё в разделе «Данные и аналитика»

Все →

Ещё от ClickHouse