Очереди ручной проверки трасс LLM и агентов
Как трассы попадают в очередь ручной проверки, что размечают рецензенты и как Langfuse, LangSmith и Potato превращают метки в оценки и наборы данных для оценки.
Очередь ручной проверки — это список трасс LLM или агентов, которые ждут меток от людей, а Langfuse и LangSmith называют эту функцию очередью разметки (annotation queue). Langfuse, LangSmith и Arize AX встраивают очереди разметки в сам инструмент трассировки, Braintrust назначает логи рецензентам на странице Review, а Arize Phoenix позволяет рецензентам размечать спаны прямо из просмотра трассы. Potato — бесплатный инструмент проверки с самостоятельным размещением, который принимает трассы из Langfuse, через вебхук или из экспорта, отправляет каждую трассу нескольким рецензентам, сообщает, насколько рецензенты согласны между собой, и записывает объединённый ответ обратно в Langfuse или LangSmith в виде оценки (score).
Трасса записывает один запуск LLM-приложения, а спан (в Langfuse — наблюдение, observation) записывает один шаг внутри запуска, например вызов модели или вызов инструмента (трассы OpenTelemetry). Транскрипт агента — это трасса многошагового агента или многоходового чата. Рецензенты размечают трассы по двум причинам. Во-первых, метки людей служат эталоном, с которым сверяют LLM-as-a-judge, прежде чем судья начнёт самостоятельно оценивать продакшен-трафик (Zheng et al., 2023). Во-вторых, проверенные трассы становятся набором данных для оценки. Набор данных для оценки — это фиксированный набор входов и ожидаемых выходов, на котором тестируют каждую новую версию промпта или модели. Согласованность разметчиков показывает, как часто два рецензента ставят одну и ту же метку. Обычно её выражают через каппу Коэна или альфу Криппендорфа.
Сравнение инструментов оценки ИИ-агентов сопоставляет платформы по функциям. Сравнение инструментов для оценки LLM людьми и сбора данных предпочтений посвящено данным предпочтений. Разметка траекторий агентов описывает, как построить таксономию ошибок на уровне шагов.
Откуда трассы попадают в очередь проверки
Команда редко проверяет все трассы подряд. Поэтому в каждом инструменте есть способ отобрать трассы, которые увидит человек. В Langfuse трассы, наблюдения или сессии выбирают в таблице и нажимают Add to queue либо размечают отдельный элемент на странице этого элемента. Очереди LangSmith принимают запуски (runs) и целые треды, добавленные вручную или правилами автоматизации. Ручное добавление помещает в очередь до 100 запусков или тредов за одно действие. Правило для тредов в LangSmith добавляет разговор, когда разговор затихает. Arize AX наполняет очередь спанами за временной интервал или примерами из набора данных.
Potato читает трассы тремя способами:
- Экспорты.
python -m potato.trace_converterпреобразует 15 форматов трасс в JSONL Potato, в том числеlangchainдля экспорта запусков LangSmith,langfuseиotelдля спанов OpenTelemetry и OpenInference из экспортёров Phoenix или Braintrust. - Вебхуки. Когда включён
trace_ingestion, Potato принимает трассы, отправленные на/api/traces/webhook,/api/traces/langsmithи/api/traces/otel, и добавляет каждую трассу в очередь, пока рецензенты работают. - Опрос Langfuse. Запись
langfuseвtrace_ingestion.sourcesс заданным интервалом забирает новые трассы из проекта Langfuse.
Potato решает, какие из входящих трасс попадут к рецензентам и в каком порядке. Правила автоматизации делают выборку входящих трасс по полю и с заданной долей. Очередь триажа первыми выдаёт рецензентам трассы с ошибками, трассы с отрицательным отзывом пользователя и трассы с низкими автоматическими оценками.
Какие метки рецензенты ставят трассе
Вид метки зависит от того, как её будут использовать дальше. Вердикт «прошло / не прошло» даёт долю успешных случаев, а оценка по каждому критерию рубрики даёт судье то, с чем сверяться. Исправленный вывод даёт обучающий пример. Для каждого вида меток в таблице ниже есть схема Potato, которая эту метку записывает.
| Метка | Пример | Схема Potato |
|---|---|---|
| Прошло или не прошло | Решил ли агент запрос? | radio |
| Оценки по рубрике | Точность, тон и безопасность по шкале от 1 до 5 | rubric_eval, likert |
| Спаны ошибок | Выделить галлюцинированное предложение и указать тип и серьёзность | error_span |
| Правильность шагов | Отметить первый неверный шаг или оценить каждый шаг | process_reward, trajectory_eval |
| Вызовы инструментов | Нужный инструмент, нужные аргументы | tool_call_review |
| Вина в мультиагентном запуске | Какой агент и на каком шаге вызвал сбой | failure_attribution, agent_scorecard |
| Исправленный вывод | Переписать итоговый ответ или неверный шаг | text_edit, trajectory_edit |
| Предпочтение между двумя запусками | Ответ A, ответ B или ничья | pairwise |
Платформы трассировки записывают те же суждения в виде оценок. Langfuse хранит исправленный вывод на трассе или наблюдении. Рецензенты LangSmith пишут утверждения (assertions), которые становятся ожидаемым выводом примера в наборе данных, а Braintrust может записать оценку в свободной форме в поле expected. Попарные очереди LangSmith показывают запуски из двух экспериментов бок о бок, и рецензент выбирает A, B или Equal.
Функции очередей проверки по инструментам
Команда Potato сверила лицензии, тарифы и функции ниже со страницами каждого проекта 2 ноября 2026 года.
| Инструмент | Как работает | Лицензия или цена | Функции проверки |
|---|---|---|---|
| Langfuse | Облачный сервис или самостоятельное размещение | MIT, бесплатно при самостоятельном размещении, очереди разметки включены; в облаке Hobby бесплатно с 1 очередью, Core за $29 в месяц с 3 очередями, Pro за $199 в месяц без ограничения числа очередей | Очереди трасс, наблюдений и сессий; исправленные выводы; каппа Коэна между двумя названиями оценок |
| LangSmith | Облачный сервис | Developer бесплатно для 1 места; Plus за $39 за место в месяц; самостоятельное размещение только на Enterprise | Очереди одиночных запусков и попарные очереди, проверка тредов, заданное число рецензентов на запуск и Add to Dataset |
| Arize Phoenix | Самостоятельное размещение через pip или Docker | Elastic License 2.0 | Категориальные, непрерывные и свободные аннотации от людей, LLM или кода, каждая с указанием автора |
| Arize AX | Облачная платформа | Коммерческая | Очереди спанов или примеров из набора данных с методом назначения ALL или RANDOM |
| Braintrust | Облачный сервис | Starter бесплатно с 1 оценкой ручной проверки на проект; Pro за $249 в месяц; развёртывание on-premises на Enterprise | Назначенные рецензенты, слепая проверка, оценки записываются в expected |
| Label Studio | Веб-приложение | Community Edition под Apache-2.0; шаблоны проверки трасс требуют Enterprise | «Прошло / не прошло» для каждой реплики и для всей трассы на трассах Langfuse или Braintrust, которые загружает ноутбук |
| Argilla | Веб-приложение в Docker или в Hugging Face Space | Apache-2.0 | Записи чатов через ChatField с минимальным числом ответов на запись |
| Potato | Веб-сервер на Python на вашей машине | GPL-3.0-or-later, бесплатно | Несколько слепых рецензентов на трассу, согласованность, схемы на уровне шагов и оценки, отправляемые обратно в Langfuse или LangSmith |
В репозитории Argilla сказано, что исходные авторы перешли к другим проектам и что проект выпускает исправления ошибок и патчи, но не новые функции. Облачные платформы подходят команде, которая уже трассирует продакшен-трафик на одной из них. На облачной платформе рецензент открывает трассу в том же инструменте, где инженер эту трассу отлаживает.
В руководстве по миграции Humanloop сказано, что платформа Humanloop будет закрыта 8 сентября 2025 года и что после этой даты платформа и все данные станут безвозвратно недоступны. 13 августа 2025 года TechCrunch сообщил, что сооснователи и большая часть команды перешли в Anthropic, а представитель Anthropic заявил, что Anthropic не приобретала активы или интеллектуальную собственность Humanloop. Ближайшие облачные замены, объединяющие автоматическую оценку и ручную проверку в одном продукте, — Langfuse, LangSmith, Braintrust и Arize. Команда, которой нужна согласованность слепых рецензентов на каждой трассе, может добавить Potato к любой из этих четырёх платформ.
Число рецензентов на трассу и согласованность
Один рецензент на трассу даёт метку, которую ничто не проверяет, а два слепых рецензента показывают, какие трассы неоднозначны и ясна ли рубрика. Очередь LangSmith задаёт число рецензентов на запуск, и рецензенты LangSmith не видят отзывов друг друга. Braintrust скрывает оценки коллег, пока рецензент не отправит свою. Если включено Require all scores, строка в Braintrust считается завершённой, когда её оценили все назначенные рецензенты. Phoenix показывает каждую аннотацию на спане вместе с автором. На форуме Langfuse пользователи 7 ноября 2025 года сообщили, что два человека по-прежнему не могут независимо разметить одну и ту же трассу в очереди. Обходной путь в обсуждении — отдельная конфигурация оценки (score config) для каждого рецензента. Последний комментарий датирован 22 апреля 2026 года и по-прежнему описывает обходные пути. Аналитика оценок в Langfuse считает каппу Коэна между любыми двумя названиями оценок, по две за раз.
В Potato num_annotators_per_item задаёт, сколько рецензентов видят каждую трассу. Панель /admin/iaa показывает каппу Коэна, каппу Фляйса и альфу Криппендорфа для категориальных схем и взвешенную каппу для порядковых, а /admin/api/step_agreement показывает согласованность меток на уровне шагов. Арбитр разрешает расхождения на странице /adjudicate, а о том, когда нужен арбитраж, рассказывает руководство Арбитраж и разрешение расхождений. Выбор коэффициента разобран в руководстве Согласованность разметчиков: как её считать.
Метки обратно в инструмент трассировки и в наборы данных для оценки
Проверенные метки приносят пользу, когда попадают в набор данных для оценки, на котором тестируют следующую версию. Рецензенты LangSmith добавляют запуск или целый тред в набор данных прямо из очереди. Langfuse добавляет наблюдения в набор данных со ссылкой на исходную трассу, а API оценок Langfuse возвращает исправленные выводы как оценки типа CORRECTION. Phoenix переносит аннотации спанов в наборы данных, а Braintrust строит наборы данных из проверенных логов.
Potato возвращает метки тремя способами:
- Оценки на исходной трассе. С
trace_ingestion.writebackтрасса, пришедшая от опросчика Langfuse или через вебхук LangSmith, получает по одной оценке на каждую схему, как только ответятmin_annotatorsчеловек. Ответradio— это метка большинства, а ответmultiselect— это множество классов, которые выбрали больше половины рецензентов. В комментарии и метаданных записываются число разметчиков и доля пар рецензентов, которые согласились. При равенстве голосов оценка ждёт арбитража. Схемы на уровне шагов, такие какprocess_reward, дополнительно оценивают каждое наблюдение Langfuse. - Обучающие данные. Экспортёр
trajectory_correctionзаписывает каждую исправленную трассу как запись SFT (prompt,completion) и запись DPO (prompt,chosen,rejected), как описано в руководстве Редактирование траекторий для SFT/DPO. - Файлы и наборы данных. Potato экспортирует в CSV, JSONL, Parquet, набор данных Hugging Face и
agent_eval. Экспортagent_evalагрегирует оценки по каждой трассе. Наборы данных Potato хранят версионированные наборы для оценки.
Очередь проверки в Potato, которую наполняет Langfuse
С конфигурацией ниже Potato опрашивает проект Langfuse каждые 60 секунд и отдаёт каждую трассу двум рецензентам. Рецензенты отвечают на три вопроса, и когда ответят оба, Potato отправляет каждый ответ обратно на трассу как оценку Langfuse с именем review.outcome, review.failure_mode и review.step_correctness. Конфигурация полная и проходит python -m potato.validate_cli --strict.
annotation_task_name: Support agent trace review, two reviewers per trace
task_dir: .
output_annotation_dir: annotation_output/
data_files:
- data/traces.jsonl
item_properties:
id_key: id
text_key: task_description
user_config:
allow_all_users: true
users: []
# Pull new traces from Langfuse every 60 seconds, and send each merged
# answer back to the trace as a Langfuse score once two people have judged it
trace_ingestion:
enabled: true
api_key: change-me
sources:
- type: langfuse
api_url: https://cloud.langfuse.com
public_key: pk-lf-...
secret_key: sk-lf-...
poll_interval: 60
writeback:
trigger: fully_annotated
min_annotators: 2
score_prefix: review
# Two reviewers per trace, so agreement can be measured on every trace
num_annotators_per_item: 2
instance_display:
fields:
- key: steps
type: agent_trace
label: Agent trace
annotation_schemes:
- annotation_type: radio
name: outcome
description: Did the agent resolve the customer's request?
labels: [pass, fail]
- annotation_type: multiselect
name: failure_mode
description: Which problems does the trace show?
labels: [wrong_tool, hallucinated_fact, ignored_instruction, unsafe_action, none]
- annotation_type: process_reward
name: step_correctness
description: Mark the first step that went wrong.
steps_key: steps
mode: first_errorЗапустите сервер командой potato start config.yaml -p 8000. Обратная запись доходит только до трасс, пришедших из Langfuse или LangSmith, а трассы, загруженные из data/traces.jsonl, остаются в Potato. Если трассы экспортированы в файлы, сначала преобразуйте экспорт:
python -m potato.trace_converter --input langfuse_traces.json --output data/traces.jsonl --input-format langfusePotato защищает эндпоинты вебхуков с помощью api_key. Обратная запись берёт ключи Langfuse из LANGFUSE_PUBLIC_KEY и LANGFUSE_SECRET_KEY, если заданы обе переменные, а иначе из источника langfuse. Команда curl -H "X-API-Key: $KEY" http://localhost:8000/admin/api/trace_writeback показывает, сколько оценок ожидают отправки, отправлены, не отправлены из-за ошибки и удержаны.
Ограничения Potato как очереди проверки
- Нет трассировки продакшена. Potato читает трассы из инструмента трассировки и не заменяет этот инструмент.
- Нет рецензентов. Пригласите свою команду или наберите рецензентов на Prolific, как описано в разделе Интеграция с краудсорсингом.
- Обратная запись только в два сервиса. Оценки уходят только в Langfuse и LangSmith. Текстовые ответы не отправляются никогда, а LangSmith получает только отзывы на уровне трассы. В документации Potato сказано, что доставка в LangSmith следует опубликованному API LangSmith и на самом сервисе не проверялась.
- Опрос только для Langfuse. Запуски LangSmith поступают через вебхук или экспорт.
Частые вопросы
Что такое очередь разметки для трасс агентов и LLM?
Очередь разметки — это список трасс, спанов или разговоров, которые команда отложила для разметки людьми, с фиксированным набором вопросов к каждому элементу. Рецензент открывает следующий элемент, отвечает на вопросы и отмечает элемент как выполненный. Langfuse, LangSmith и Arize AX называют эту функцию очередью разметки (annotation queue). Potato поддерживает тот же процесс на вашем собственном сервере, с несколькими рецензентами на трассу и отчётом о согласованности.
Какие инструменты поддерживают ручную проверку и разметку трасс LLM?
Langfuse, LangSmith, Braintrust, Arize Phoenix и Arize AX прикрепляют метки людей к трассам внутри инструмента трассировки. В Label Studio Enterprise рецензенты размечают трассы Langfuse и Braintrust через шаблоны. Potato показывает рецензентам трассы из Langfuse, LangSmith, OpenTelemetry и ещё 12 форматов, измеряет согласованность рецензентов и отправляет результат обратно в Langfuse или LangSmith.
Какие есть альтернативы Humanloop для автоматической оценки и ручной проверки?
К облачным альтернативам Humanloop относятся Langfuse, LangSmith, Braintrust и Arize. Каждая из четырёх платформ объединяет трассировку, автоматические оценщики и ручную проверку, а Langfuse распространяется под лицензией MIT и бесплатен при самостоятельном размещении. Платформа Humanloop закрыта 8 сентября 2025 года. Potato — бесплатная альтернатива с самостоятельным размещением для ручной проверки, с согласованностью слепых рецензентов и оценками, которые записываются обратно в Langfuse или LangSmith.
Что почитать дальше
- Сравнение инструментов оценки ИИ-агентов и Сравнение инструментов для оценки LLM людьми и сбора данных предпочтений
- Potato, LangSmith и Langfuse для оценки агентов
- Как оценивать ИИ-агентов и Разметка траекторий агентов
- Оценка агентов в Potato и Оценка LLM в Potato
- Как измерить согласованность между LLM-судьёй и разметчиками-людьми
- Обратная запись оценок трасс в исходной документации Potato
Источники
- Zheng, L., Chiang, W.-L., Sheng, Y., et al. (2023). Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena. NeurIPS 2023 Datasets and Benchmarks. https://arxiv.org/abs/2306.05685