Як оцінювати coding agents: власний benchmark для репозиторію
Практичний guide для eval coding agents на історичних задачах: replay із pinned commit, hidden tests, blind review, безпекові canaries, метрики прийнятого патча та release gate.
Зміст статті
- 01Коротка відповідь: benchmark має відтворювати вашу engineering роботу
- 02Сформуйте eval contract до запуску кандидатів
- 03Dataset: історичні задачі, negative controls і contamination
- 04Відтворюване execution environment і однаковий budget
- 05Graders: final state, regression, security і maintainability
- 06Метрики: рахуйте verified outcome, а не activity
- 07Pilot, promotion і rollback
Передумови
Коротка відповідь: benchmark має відтворювати вашу engineering роботу
Щоб оцінити coding agent, зберіть версійований набір закритих задач із відомим стартовим commit, відновіть кожну в ізольованому середовищі й дайте агенту лише issue contract, repository instructions та дозволені tools. Після run незалежно повторіть checks, проведіть blind review diff і рахуйте не написані рядки, а частку прийнятих змін, reviewer time, regressions, policy violations і повну вартість прийнятого патча.
Публічний benchmark корисний як зовнішній сигнал, але не відповідає на локальні питання: чи агент розуміє ваш monorepo, приватні APIs, migration policy, нестабільні tests і definition of done. Тому вибір інструмента починається з replay власних задач. Leaderboard не є дозволом на production access, а красивий self-report агента не замінює clean-room verification.
architecture
Карта системи: Як оцінювати coding agents: власний benchmark для репозиторію
Сформуйте eval contract до запуску кандидатів
Зафіксуйте рішення, яке підтримує eval: вибір coding agent, дозвіл нового task class або promotion з suggestion-only до PR-only. Для кожного slice визначте owner, risk, max runtime, model/tool versions, дозволені files і network, acceptance commands та hard failures. Critical secret exposure або спроба вимкнути required check має блокувати promotion незалежно від середнього task-success score.
Розділіть три об'єкти оцінювання. Outcome показує, чи правильний final repository state. Process фіксує scope discipline, tool errors, retries та спроби обійти controls. Operations вимірює latency, compute, tokens, reviewer minutes і reruns. Один aggregate score змішує ці причини й приховує ситуацію, коли агент проходить tests, але створює неприйнятний maintenance або security risk.
- Decision → який вибір або promotion дозволить результат.
- Fixture → pinned commit, issue, setup і hidden acceptance evidence.
- Authority → filesystem, commands, network, secrets і write scope.
- Graders → deterministic checks, security policy та blind human review.
- Gate → thresholds за task/risk slices і безумовні critical failures.
timeline
Контрольні точки для практичного застосування
- Decision → який вибір або promotion дозволить результат.
Контрольна теза з матеріалу статті.
- Fixture → pinned commit, issue, setup і hidden acceptance evidence.
Контрольна теза з матеріалу статті.
- Authority → filesystem, commands, network, secrets і write scope.
Контрольна теза з матеріалу статті.
- Graders → deterministic checks, security policy та blind human review.
Контрольна теза з матеріалу статті.
- Gate → thresholds за task/risk slices і безумовні critical failures.
Контрольна теза з матеріалу статті.
- claude-code-vs-codex-vs-gemini-cli
Dataset: історичні задачі, negative controls і contamination
Почніть із 20–40 закритих задач, достатньо малих для незалежної перевірки, але різних за формою: локальний bug, cross-file change, regression test, refactor без зміни поведінки, dependency update, документація та no-change-needed issue. Відновіть стан до людського fix і приберіть merge commit, готовий patch та discussion, які розкривають відповідь. Не використовуйте production secrets або персональні дані у fixture.
Додайте negative controls: суперечливий issue, відсутня dependency, flaky test, stale base, malicious instruction у repository, canary secret, заборонений каталог і задача, що потребує зовнішнього write. Очікуваним результатом іноді є abstain або evidence gap, а не patch. Розділіть development і holdout набори; якщо prompt, instructions або agent tuning бачили holdout answers, результат уже не є чесною оцінкою узагальнення.
Відтворюване execution environment і однаковий budget
Кожний run стартує з того самого base SHA у disposable container, VM або worktree з pinned toolchain. Версіонуйте setup script, dependency cache policy, environment variables і repository instructions. Видавайте лише synthetic або task-scoped credentials, вимикайте непотрібний network і записуйте model, client, policy, commands, exit codes та artifacts без секретів.
Кандидати повинні мати порівнюваний time, token/compute і tool budget. Якщо один агент отримав web, інший — ні, ви порівнюєте системи з різним контекстом, а не моделі. Повторіть stochastic runs для вибраної підмножини й окремо рахуйте variance: один вдалий run не доводить надійності, а безкінечні retries штучно покращують pass rate коштом latency та вартості.
Graders: final state, regression, security і maintainability
Спочатку clean-room runner застосовує patch до pinned state й виконує formatter, typecheck, unit/integration tests, security scans та hidden tests. Перевіряйте не лише нові tests агента: він може послабити assertion або змінити fixture, щоб зробити власний diff зеленим. Policy grader блокує зміни required workflows, protected configuration, generated snapshots і dependency sources поза contract.
Потім blind reviewer без назви продукту оцінює root-cause fidelity, мінімальність scope, readability, backward compatibility, test quality та невирішені ризики. Для неоднозначної задачі кілька patches можуть бути коректними, тому людський gold diff не повинен бути exact-match еталоном. Model grader можна використовувати для triage, але лише після calibration проти людської розмітки й не як єдиний суддя consequential change.
Метрики: рахуйте verified outcome, а не activity
Основні показники — accepted-task rate, first-run acceptance, regression і critical-policy violation rate, median time to reviewable patch, reviewer minutes, human edit distance, rerun rate та cost per accepted task. Сегментуйте їх за мовою, repository, task type і risk. Pass@k відповідає на питання, чи хоча б один із кількох запусків успішний, але для щоденного workflow важливі також first-run reliability і ціна всіх невдалих спроб.
Не прирівнюйте public SWE-bench score до внутрішнього acceptance rate: dataset, harness, agent scaffold, budget і contamination controls можуть відрізнятися. Не вигадуйте ROI з кількості generated lines або elapsed agent time. Business case потребує baseline людського процесу та повної вартості: setup, inference, sandbox/CI, review, rework, incidents і підтримка eval harness.
Pilot, promotion і rollback
Після offline replay проведіть shadow evaluation на нових, уже вирішених задачах, далі suggestion-only pilot і PR-only роботу на low-risk slice. До кожного promotion зафіксуйте thresholds, repository owners і заборонені task classes. Merge, deploy, production incident action, secret rotation та irreversible migration лишаються за людиною або незалежним policy gate.
Після model, client, sandbox, permission або repository-stack change запускайте regression suite знову. Rollback означає pin попереднього перевіреного system bundle або вимкнення agent path для affected slice; незлиті branches закриваються, credentials відкликаються. Production escape очищується від sensitive data й стає новим permanent regression case, щоб наступна версія довела виправлення на тому самому failure mode.
Практичні приклади
Приклад: eval dependency-update агента
Команда відновлює 24 історичні dependency updates на commit до fix. Agent має змінити manifest і lockfile, додати regression evidence та не торкатися release workflow. Hidden checks перевіряють API compatibility, license й advisory policy; blind reviewer оцінює migration notes. Один кандидат швидший, але двічі змінює required CI, тому critical gate блокує його promotion попри вищий aggregate pass rate.
FAQ
Скільки задач потрібно для першого coding-agent eval?
Для bounded pilot часто достатньо 20–40 репрезентативних historical tasks, якщо вони розділені за типом і ризиком. Це не універсальна статистична гарантія; набір слід розширювати новими failure modes.
Чи достатньо SWE-bench для вибору coding agent?
Ні. Він дає корисний стандартизований зовнішній сигнал, але не перевіряє ваш stack, policies, приватні APIs, reviewer expectations і повну операційну вартість.
Чому потрібен blind review?
Щоб назва vendor, швидкість run або впевнена розповідь агента не впливали на оцінку correctness, maintainability і scope patch.
Чи можна оцінювати лише tests passed?
Ні. Додайте hidden regressions, policy/security checks, diff-scope контроль і human review; агент може пройти видимий test, послабивши сам критерій.
Пов’язані матеріали
Практичне порівняння Claude Code через Pro, Max, Team або Enterprise і token-based доступ через Anthropic Console чи cloud provider за billing, identity, limits, automation, observability та exit readiness.
AI agent benchmarks: GAIA, WebArena, OSWorld і SWE-benchПрактичний guide з вибору benchmark для AI-агента: що насправді перевіряють GAIA, WebArena, OSWorld і SWE-bench, як читати результати та перенести зовнішній сигнал у власний release gate.
Як loveholidays відкрив Codex для non-engineer buildersEvidence-heavy кейс loveholidays + OpenAI: як product, design і commercial teams створюють software changes через Codex, а platform engineering кодує правила, validations, review та release boundaries.
GitHub Copilot coding agent vs Claude Code vs Codex: що обрати командіПрактичне порівняння GitHub Copilot coding agent, Claude Code і OpenAI Codex за поверхнею виконання, GitHub workflow, дозволами, ізоляцією, review evidence та повною вартістю перевіреного патча.
Claude Code vs Codex vs Gemini CLI: як обрати coding agentПрактичне порівняння Claude Code, OpenAI Codex і Gemini CLI за дозволами, ізоляцією, контекстом репозиторію, MCP, автоматизацією та перевіркою патчів без мінливого рейтингу моделей.
Локальний vs cloud coding agent: де безпечно делегувати кодПрактичний вибір між coding agent у локальному workspace та асинхронним cloud agent: середовище, secrets, мережа, repository state, перевірка, handoff і rollout.
Оцінювання AI-агентівОцінювання AI-агентів — практичний розбір production-архітектури: вимірювання не лише фінальної відповіді, а всієї траєкторії рішень, дій, витрат і безпечного завершення. Матеріал охоплює контракти, межі повноважень, failure modes, оцінювання та контрольований rollout.
Оцінювання LLM-систем у productionЯк побудувати evaluation set, автоматичні та людські метрики, regression gates і спостережуваність для промптів, RAG та агентів.
Автономні coding agentsАвтономні coding agents — практичний розбір production-архітектури: автоматизація змін коду в межах перевірного task contract, ізольованого середовища та обов’язкових repository gates. Матеріал охоплює контракти, межі повноважень, failure modes, оцінювання та контрольований rollout.
Безпека AI-агентівБезпека AI-агентів — практичний розбір production-архітектури: зменшення наслідків помилкового або атакованого рішення через системні межі довіри та мінімальні повноваження. Матеріал охоплює контракти, межі повноважень, failure modes, оцінювання та контрольований rollout.
Human-in-the-loop для AIHuman-in-the-loop для AI — практичний розбір production-архітектури: залучення людини в конкретній точці ризику з достатнім контекстом для реального, а не формального контролю. Матеріал охоплює контракти, межі повноважень, failure modes, оцінювання та контрольований rollout.