Golden datasets для AI-агентів: стабільні набори для оцінювання

Golden datasets містять підготовлені тестові кейси для стабільного оцінювання агентів.
На цій сторінці
  1. Ідея за 30 секунд
  2. Проблема
  3. Основна концепція / модель
  4. Як це працює
  5. Реалізація
  6. 1. Канонічна схема кейсу
  7. 2. Дедуплікація і фільтр шуму
  8. 3. Розмітка очікуваної поведінки
  9. 4. Версіонування dataset
  10. 5. Інтеграція з eval harness
  11. Нотатки для QA та автоматизації
  12. Типові помилки
  13. Dataset змінюється між прогонами
  14. Тільки happy-path кейси
  15. Нечітка розмітка expected behavior
  16. Нефіксовані умови прогону
  17. Немає тегів покриття
  18. Нестабільні кейси в golden dataset
  19. Коротко
  20. FAQ
  21. Що далі

Ідея за 30 секунд

Golden dataset — це зафіксований набір тестових кейсів, на якому команда стабільно перевіряє поведінку агента.

Головна цінність у тому, що одна й та сама версія dataset дає порівнювані результати між candidate і baseline.


Проблема

Без golden dataset тестування швидко стає випадковим:

  • сьогодні перевірили один набір запитів;
  • завтра інший;
  • післязавтра частину кейсів взагалі не запускали.

У такому режимі складно зрозуміти, що саме змінилося після релізу: поведінка агента чи просто сам набір сценаріїв.

Найчастіші наслідки:

  • регресії знаходяться запізно;
  • diff між версіями виглядає нестабільно;
  • CI gate стає шумним і йому перестають довіряти.

Основна концепція / модель

Golden dataset — це не просто набір прикладів, а версіонований артефакт: чітка структура кейсів, правила розмітки і контрольована версія.

Елемент кейсуНавіщо потрібен
idСтабільно ідентифікує кейс між версіями
inputФіксує, що саме подається агенту
expected_behaviorОписує, що вважається правильним результатом
checksЗадає детерміновані перевірки для системи оцінки
tagsДозволяє групувати кейси за ризиками і сценаріями

Чим стабільніші схема кейсів, розмітка і версія dataset, тим менше шансів, що різниця між прогонами пояснюється шумом, а не реальною зміною поведінки агента.

Як це працює

У практиці golden dataset оновлюють окремим процесом, а не разом із кожним релізом. Кожен новий кейс проходить однакові кроки до включення у версію dataset.

Як формується робоча версія golden dataset
  • Sources — беруться кейси з production-трейсів, інцидентів і важливих edge cases.
  • Dedupe and filter — дублікати й шумні сценарії прибираються до розмітки.
  • Canonical schema — кожен кейс приводиться до єдиної структури (id, input, expected_behavior, checks, tags).
  • Review and label — фіксується очікувана поведінка і критерії перевірки.
  • Version and freeze — dataset отримує версію (наприклад, v1.4) і використовується в eval-прогонах без змін.

Golden dataset сам по собі не запускає тести: він дає стабільну основу для eval harness і regression-порівнянь.

Реалізація

На практиці golden dataset тримається на кількох простих правилах. Приклади нижче схематичні і не прив'язані до конкретного фреймворку.

1. Канонічна схема кейсу

expected_behavior може містити як жорсткі очікування для детермінованих перевірок, так і критерії для оцінки через LLM-as-a-judge.

PYTHON
case = {
    "id": "support_refund_partial_outage",
    "input": "Refund my order #8472",
    "expected_behavior": {
        "selected_tool": "payments_api",
        "allowed_stop_reasons": ["completed", "tool_error_handled"],
    },
    "checks": ["tool_selection", "valid_output_schema"],
    "tags": ["payments", "support", "partial-outage-risk"],
}

Чітка схема прибирає неоднозначність під час розбору проблемних кейсів.

2. Дедуплікація і фільтр шуму

PYTHON
def is_duplicate(case, seen_signatures):
    signature = f"{case['input']}|{case['expected_behavior']}"
    return signature in seen_signatures

def is_noisy(case):
    return len(case["input"].strip()) == 0

Краще мати менший, але стабільний dataset, ніж великий набір із дублями і шумом.

3. Розмітка очікуваної поведінки

PYTHON
def validate_case(case):
    required = ["id", "input", "expected_behavior", "checks"]
    for key in required:
        if key not in case:
            raise ValueError(f"missing_field:{key}")

Розмітка має бути перевіряною: якщо очікування не можна перевірити, кейс не готовий до golden dataset.

4. Версіонування dataset

PYTHON
dataset_version = "golden-v1.4"
metadata = {
    "dataset_version": dataset_version,
    "created_from": "incidents_2026_q1",
    "notes": "added outage and tool-fallback cases",
}

Dataset версіонують так само дисципліновано, як і код. Порівняння candidate і baseline має бути прив'язане до конкретної версії dataset.

Зміна кейсів без нової версії dataset фактично означає інший тестовий набір.

5. Інтеграція з eval harness

PYTHON
run_eval_suite(
    agent=candidate_agent,
    dataset_path="datasets/golden-v1.4.json",
    baseline_report="reports/baseline-golden-v1.4.json",
)

Одна версія dataset має використовуватись і для candidate, і для baseline, інакше diff втрачає сенс.

Нотатки для QA та автоматизації

QA-команди зазвичай будують автоматизовані regression suites саме на основі golden dataset: короткий smoke-набір для кожного PR і повний регресійний набір для планових прогонів.

Теги кейсів (payments, support, outage-risk) дають змогу стабільно формувати ці набори без ручного відбору і швидко локалізувати, у якому класі сценаріїв з'явилася регресія.

Типові помилки

Dataset змінюється між прогонами

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

Типова причина: немає явного процесу версіонування dataset.

Тільки happy-path кейси

Dataset покриває лише "чисті" запити і не включає інциденти та edge cases.

Типова причина: кейси додаються вручну без аналізу production-трейсів.

Нечітка розмітка expected behavior

У кейсах є input, але немає перевіряного очікування, тому evaluators не можуть дати надійний verdict.

Типова причина: розмітка пишеться у вільній формі без схеми.

Нефіксовані умови прогону

Навіть коректні тести не дають порівнюваних результатів, якщо між прогонами змінюються модель, runtime або зовнішні залежності.

Типова причина: використовується alias моделі, плаваючі налаштування runtime або нестабільне середовище.

Немає тегів покриття

Команда не бачить, які класи ризиків уже покриті dataset, а які ще порожні.

Типова причина: кейси зберігаються без tags і групування за сценаріями.

Нестабільні кейси в golden dataset

Один і той самий кейс то проходить, то падає, і це засмічує сигнал регресій.

Типова причина: у кейс потрапляють нестабільні зовнішні залежності або неповністю контрольований runtime.

Коротко

Коротко
  • Golden dataset робить eval-прогони відтворюваними.
  • Кейс без чіткої схеми і очікуваної поведінки не має потрапляти в golden dataset.
  • Версія dataset має бути однаковою для candidate і baseline.
  • Найкращі кейси для dataset приходять із production-інцидентів і edge cases.

FAQ

Q: Чим golden dataset відрізняється від звичайного набору тестів?
A: Це стабільна і версіонована база кейсів, на якій порівнюють поведінку агента між версіями.

Q: Як часто оновлювати golden dataset?
A: Зазвичай окремими версіями після накопичення нових інцидентів або важливих сценаріїв, а не перед кожним дрібним релізом.

Q: Чи можна включати синтетичні кейси?
A: Так, але основа має спиратися на реальні production-сценарії. Синтетика добре доповнює покриття edge cases.

Q: Що робити з нестабільними кейсами?
A: Або стабілізувати runtime і перевірки, або тимчасово прибрати кейс із golden dataset до нормалізації умов прогону.

Що далі

Після формування golden dataset підключіть його до Eval Harness, а зміни між версіями контролюйте через Regression Testing.

Для інцидентів у реальному середовищі додайте Replay and Debugging. Для повної картини тестування тримайте під рукою Стратегію тестування.

⏱️ 6 хв читанняОновлено 13 березня 2026 р.Складність: ★★☆
Інтегровано: продакшен-контрольOnceOnly
Додай guardrails до агентів з tool-calling
Зашип цей патерн з governance:
  • Бюджетами (кроки / ліміти витрат)
  • Дозволами на інструменти (allowlist / blocklist)
  • Kill switch та аварійна зупинка
  • Ідемпотентність і dedupe
  • Audit logs та трасування
Інтегрована згадка: OnceOnly — контрольний шар для продакшен агент-систем.
Автор

Цю документацію курують і підтримують інженери, які запускають AI-агентів у продакшені.

Контент створено з допомогою AI, із людською редакторською відповідальністю за точність, ясність і продакшн-релевантність.

Патерни та рекомендації базуються на постмортемах, режимах відмов і операційних інцидентах у розгорнутих системах, зокрема під час розробки та експлуатації governance-інфраструктури для агентів у OnceOnly.