Последние несколько недель плотно работал с https://www.tbench.ai/. За названием кроется сразу очень много вещей. Это и https://www.tbench.ai/registry/terminal-bench-core/head, и https://www.tbench.ai/terminus, и https://github.com/laude-institute/terminal-bench для создания среды, где эти самые агенты могут работать над задачами.
В этом тексте как раз про последнее - про инструменты для создания среды. Сейчас это еще все называют execution harness.
Что это вообще такое? Допустим, у вас есть набор задач, и вы хотите протестировать какого-нибудь готового агента типа Claude Code или Codex (или даже своего) на то, как он справляется с этими задачами.
Чтобы такое дело провернуть, нужно понаписать немалое количество инфраструктурного кода, чтобы:
а) упаковать ваши подготовленные задачи в среду, где их можно будет изолированно решать (как правило, докер-контейнеры);
b) установить нужных агентов и/или предоставить весь необходимый скаффолдинг (если тестируете своего агента);
с) подготовить отдельную среду, в которой будет запускаться решение агента и как-то оцениваться (например, скрытыми автотестами);
d) ну и наконец, нужно хранить все возможные логи, чтобы потом можно было проанализировать все возможные паттерны;
e) а, и конечно, чтобы все это легко запускалось, каждую задачу можно было перезапускать по N раз и в идеале — легко масштабировалось.
С одной стороны, все это можно реализовать самому. Но это довольно долго и с множеством подводных камней.
Поэтому зачем, когда есть terminal-bench? На мой взгляд, у ребят получился простой, элегантный и масштабируемый фреймворк, который просто работает из коробки в несколько команд. С вас только подготовить все запускалки (докерфайлы для создания окружения и скрипты, как тестировать решение). Каждая задача - то вот https://github.com/laude-institute/terminal-bench/tree/main/tasks/accelerate-maximal-square структур. Подробный гайд есть https://www.tbench.ai/docs/task-overview . И https://www.tbench.ai/docs/agent-introduction своего агента, если нужно. Либо взять готовые интеграции из коробки - все популярные агенты уже https://github.com/laude-institute/terminal-bench/tree/main/terminal_bench/agents/installed_agents, подставляйте только API-ключи. Можно и их кастомно переделать под себя.
А потом запускаемся:
tb run \
--dataset terminal-bench-core==head \
--agent claude-code \
--task-id hello-world
Все инструменты для отладки тоже есть; ещё и интерактивные сессии реализованы, если хочется симулировать какое-то определённое поведение пользователя при работе с агентом.
По впечатлениям - восторг. От опенсорсных решений давно такого не было. Все нужды, чтобы гонять своих агентов в режиме SWE-Bench задач (есть issue, просим агента сделать, делает, проверяем юнит-тестами) закрывает. Кстати, некоторое количество популярных бенчей тоже https://www.tbench.ai/registry.
И еще раз: terminal-bench предоставляет среду, чтобы можно было не париться с возней по запуску и логированию. Самое сложное – это подготовить задачи и сценарии. Это уже на вас.