Перейти к содержанию

Метрики агентов

Eval AI Library предоставляет специализированные метрики для оценки AI-агентов -- систем, которые используют инструменты (tools), поддерживают многоходовые диалоги и автономно выполняют задачи пользователя.

В отличие от стандартных RAG-метрик, метрики агентов фокусируются на поведенческих аспектах: правильно ли агент выбирает инструменты, достигает ли он цели пользователя, сохраняет ли контекст на протяжении всего разговора и придерживается ли назначенной роли.

Доступные метрики

Метрика Что измеряет Вызовы LLM Порог по умолчанию
Корректность инструментов Были ли вызваны правильные инструменты 0 0.5
Успешность задач Была ли достигнута цель пользователя 4 0.7
Следование роли Насколько хорошо ИИ поддерживает свою роль 2 0.7
Сохранение знаний Насколько хорошо запоминается контекст между ходами 2 0.7
Детекция ошибок инструментов Ошибки в использовании инструментов/функций 1 0.7

Тестовые кейсы для агентов

Агентские метрики работают с двумя типами тестовых кейсов: одноходовыми (single-turn) для оценки использования инструментов и многоходовыми (multi-turn) для оценки диалогового поведения.

Одноходовой (использование инструментов)

В одноходовом сценарии вы указываете, какие инструменты были вызваны агентом (tools_called) и какие ожидались (expected_tools):

from eval_lib import EvalTestCase

test_case = EvalTestCase(
    input="Book a flight to Paris for next Monday",
    actual_output="I've booked a flight to Paris for next Monday, March 10th.",
    tools_called=["search_flights", "book_flight"],
    expected_tools=["search_flights", "book_flight"],
)

Многоходовой (диалог)

Для оценки диалогового поведения используется ConversationalEvalTestCase, содержащий список ходов (turns) и опциональную роль чат-бота:

from eval_lib import ConversationalEvalTestCase, EvalTestCase

conversation = ConversationalEvalTestCase(
    chatbot_role="You are a financial advisor assistant.",
    turns=[
        EvalTestCase(
            input="I have $10,000 to invest.",
            actual_output="Let's discuss your risk tolerance and investment timeline."
        ),
        EvalTestCase(
            input="I'm moderate risk, investing for 5 years.",
            actual_output="For a moderate risk profile with a 5-year horizon, I recommend a diversified portfolio: 60% stocks, 30% bonds, 10% alternatives."
        ),
    ]
)

Выбор метрик

Выбор метрик зависит от типа вашего агента и того, какие аспекты его работы вы хотите оценить:

Сценарий Рекомендуемые метрики
Агенты с инструментами Корректность инструментов + Детекция ошибок инструментов
Диалоговые ассистенты Успешность задач + Следование роли + Сохранение знаний
Многоходовые агенты с инструментами Все метрики агентов
Оценка выполнения задач Успешность задач

Быстрый пример

В этом примере мы оцениваем агента, который должен получить погоду и конвертировать валюту. Метрика ToolCorrectnessMetric проверяет правильность вызова инструментов (без обращений к LLM), а TaskSuccessRateMetric использует LLM для оценки того, была ли достигнута цель пользователя:

import asyncio
from eval_lib import (
    evaluate,
    EvalTestCase,
    ToolCorrectnessMetric,
    TaskSuccessRateMetric,
)

test_case = EvalTestCase(
    input="What's the weather in Tokyo and convert 100 USD to JPY?",
    actual_output="Tokyo weather: 22°C, sunny. 100 USD = 15,000 JPY.",
    tools_called=["get_weather", "convert_currency"],
    expected_tools=["get_weather", "convert_currency"],
)

metrics = [
    ToolCorrectnessMetric(threshold=0.5),
    TaskSuccessRateMetric(model="gpt-4o", threshold=0.7),
]

results = asyncio.run(evaluate([test_case], metrics))