ClawArena-Team

### Бенчмаркинг оркестрации субагентов и динамических рабочих процессов в языковых агентах

English简体中文繁體中文日本語한국어FrançaisDeutschEspañolPortuguêsРусский

Препринт Лицензия MIT Python ≥3.10 v1.0.0

41 сценарий 258 раундов 72 поэтапных обновления 12 моделей Оценивание на основе выполнения

ClawArena-Team [🔭 Обзор](#-обзор) • [📈 Таблица лидеров](#-таблица-лидеров) • [🔑 Ключевые выводы](#-ключевые-выводы) • [🚀 Быстрый старт](#-быстрый-старт) • [🧰 Поверхность возможностей и инструменты](#-поверхность-возможностей-и-инструменты) • [📊 Данные и оценивание](#-данные-и-оценивание) • [🔍 Разбор примеров](#-разбор-примеров) • [📖 Документация](#-документация) • [🏗️ Структура проекта](#️-структура-проекта) • [📚 Цитирование](#-цитирование) • [📄 Лицензия](#-лицензия)
--- ## 🔭 Обзор Языковые агенты всё чаще применяются в роли **менеджеров** — одна главная модель создаёт специализированных субагентов, делегирует работу и оркеструет их параллельные асинхронные результаты через динамические рабочие процессы. Существующие бенчмарки оценивают собственное решение задач политикой или фиксированную мультиагентную систему, но ни один не изолирует **управленческую способность** отдельной языковой модели, выступающей в роли руководителя. **ClawArena-Team** (вариант с командным управлением в серии ClawArena) изолирует именно это. **Главный агент, работающий только с текстом**, должен выполнять многораундовые, мультимодальные, многокаталожные задачи, которые он не может решить в одиночку, — создавая, наделяя полномочиями, планируя и интегрируя субагентов из **фиксированного, локально обслуживаемого пула**. Каждый менеджер командует одними и теми же работниками, поэтому различия в баллах отражают *управленческое мастерство, а не сырые возможности*. - **41 сценарий · 258 раундов оценивания · 72 поэтапных обновления**, охватывающих **юриспруденцию, медицину, инженерию, бизнес и науку**. - **Главный агент, работающий только с текстом и видящий часть рабочего пространства** — он нативно воспринимает только текст и достигает лишь части рабочего пространства, поэтому делегирование обязательно. - **Фиксированный пул субагентов**, обслуживаемый локально через vLLM (`llm`/`vlm`/`omni`), идентичный для каждого оцениваемого менеджера. - **Оценивание на основе выполнения, без LLM-судьи** — каждый раунд поставляется с shell-командой, чей код выхода (с опциональным сопоставлением вывода) решает зачёт/незачёт. --- ## 📈 Таблица лидеров Мы ранжируем модели главного агента по составному **баллу управления субагентами (Subagent-Management Score, SMS)**, который умножает корректность выполнения задачи на управленческий фактор наименьших привилегий и маршрутизации модальностей: $$\mathrm{SMS} = \mathrm{TCR} \times \frac{\mathrm{TPP} + \mathrm{ROC} + \mathrm{WPP} + \mathrm{MCA}}{4}$$ **SMS ≤ TCR всегда:** управление может только уменьшить корректность выполнения задачи, но никогда не завысить её. Модель, которая управляет идеально, но проваливает задачу, получает ноль. | Модель | TCR | TPP | ROC | WPP | MCA | **SMS** | Стоимость ($) | Раунды | |---|--:|--:|--:|--:|--:|--:|--:|--:| | claude-fable-5 | **74.4** | 76.4 | 98.8 | **49.2** | **97.9** | **60.0** | 92.8 | **192/258** | | gemini-3.5-flash | 69.8 | 69.8 | 95.9 | 45.7 | 96.7 | 53.8 | 23.7 | 180/258 | | gpt-5.5 | 63.6 | **79.9** | 98.7 | 47.5 | 95.2 | 51.0 | 43.3 | 164/258 | | glm-5.2 | 66.3 | 67.4 | 95.4 | 44.4 | 96.7 | 50.4 | 22.9 | 171/258 | | gpt-5.4 | 63.2 | 77.3 | 98.8 | 40.8 | 97.6 | 49.7 | 19.5 | 163/258 | | gemini-3.1-pro | 65.5 | 76.4 | 97.3 | 36.6 | 92.9 | 49.6 | 20.5 | 169/258 | | kimi-k2.6 | 64.3 | 76.8 | 92.0 | 41.9 | 93.9 | 49.0 | 28.7 | 166/258 | | claude-sonnet-4-6 | 61.6 | 77.3 | **99.4** | 43.2 | 95.2 | 48.5 | 39.7 | 159/258 | | deepseek-v4-pro | 58.9 | 73.9 | 98.5 | 46.3 | 96.5 | 46.4 | **1.7** | 152/258 | | qwen3.6-27b | 60.9 | 72.5 | 95.7 | 40.7 | 96.2 | 46.4 | 15.0 | 157/258 | | gemma-4-31b | 56.6 | 79.0 | 97.7 | 37.9 | 95.5 | 43.9 | 3.5 | 146/258 | | glm-4.7-flash | 34.5 | 22.4 | 85.8 | 11.7 | 57.2 | 15.3 | 0.8 | 89/258 | Все значения в %, двенадцать моделей × 41 сценарий в рамках одного прогона оценивания, отсортировано по **SMS**. Недавно выпущенная `glm-5.2` (через официальный API z.ai) — сильнейший менеджер с открытыми весами: SMS 50.4, 4-е место в общем зачёте, обходит `kimi-k2.6` и возглавляет модели с открытыми весами. **Жирным** отмечено лучшее значение в столбце (лучшее в каждом столбце выделено независимо). Стоимость ($): стоимость API главного агента за прогон по прайс-листам провайдера / OpenRouter — чем меньше, тем лучше, поэтому она не выделена жирным; субагенты работают на фиксированном локальном пуле и не тарифицируются. Раунды: пройденные раунды из 258. `claude-fable-5` оценивается «как поставляется», с рекомендованным вендором откатом при отказе → `claude-opus-4-8`. > 📥 Хотите отправить результат? См. [docs/submit-to-leaderboard.md](../../docs/submit-to-leaderboard.md). Примеры прогонов и присланные результаты находятся в [`submissions/`](../../submissions/). --- ## 🔑 Ключевые выводы На двенадцати проприетарных, размещённых сообществом и самостоятельно размещённых моделях главного агента проявляются три вывода.
### 1️⃣ Узкое место — *предоставление привилегий*, а не восприятие Две «лёгкие» оси почти насыщены — соответствие режиму только-чтение (ROC ≥ 92%) и точность выбора модальности (MCA ≥ 92%) для каждой способной модели. Различающие оси — это метрики точности привилегий: **точность разрешений на рабочее пространство (WPP) *никогда* не достигает 50%** ни для одной модели. Субагентам регулярно предоставляется примерно вдвое больше файлов, чем они фактически затрагивают. ### 2️⃣ Стоимость и качество управления *развязаны* Стоимость API главного агента охватывает **более 100×** (\$0.8 → \$93 за прогон), тогда как SMS охватывает **менее 4×**. Самые дешёвые открытые модели находятся на границе Парето — `deepseek-v4-pro` достигает SMS 46.4 всего за \$1.7, — в то время как несколько дорогих моделей (`gpt-5.5`, `sonnet-4-6`, `kimi-k2.6`) *доминируются* среднеценовой `gemini-3.5-flash`. Модель с открытыми весами `glm-5.2` ($22.9) также попадает на границу как сильнейшая открытая модель. ### 3️⃣ Баллы кластеризуются, поведение расходится Ниже флагмана десять моделей группируются в **полосе SMS шириной 9.9 пункта** (43.9–53.8), однако их поведение оркестрации различается **более чем на порядок**. Частота запрещённых обращений на одного субагента варьируется от 0.48 до 5.78 среди способных моделей (~12×), а использование динамических рабочих процессов — от 8 до 112 вызовов.
| Стоимость и управление (Вывод 2) | Нарушения разрешений (Вывод 3) | |:---:|:---:| | SMS относительно стоимости API главного агента, логарифмическая шкала; дешёвые открытые модели на границе Парето | Количество запрещённых обращений по моделям MAF/SAFt/SAFa в логарифмической шкале; SAFa расходится в ~12 раз |
**Маршрутизация модальностей.** Менеджеры в подавляющем большинстве по умолчанию выбирают ключ `llm` и создают сравнительно мало специалистов `vlm`/`omni`; когда они *всё же* маршрутизируют по модальности, они делают это правильно (отсюда высокий MCA), но недоиспользуют мультимодальных работников.
Распределение ключей моделей субагентов: менеджеры по умолчанию выбирают ключ llm и недоиспользуют vlm/omni
--- ## 🚀 Быстрый старт См. [`docs/running-experiments.md`](../../docs/running-experiments.md) для полного пошагового руководства (обслуживание пула, выбор целей, возобновление прогонов). ### 1. Установка ```bash pip install -e ".[dev]" # core + dev extras (pytest, hf_hub, reportlab) # pip install -e ".[dev,video]" # add to run the real-video multimodal tests ``` Это устанавливает CLI `clawarena-team` (короткие псевдонимы: **`cateam`** / **`ca-team`**). Токенизатор и шаблон чата **встроены в `helper/`** — шаг загрузки не требуется. ### 2. Обслуживание фиксированного пула субагентов (локальный vLLM) Пул субагентов остаётся идентичным для каждого оцениваемого главного агента, поэтому управление — единственная переменная: ```bash python scripts/serve_gemma-4-31b.py # serves the llm / vlm keys (gemma-4-31b-it) python scripts/serve_gemma-4-omni.py # serves the omni key (gemma-4-e4b-it) ``` ### 3. Валидация, запуск и анализ ```bash # Validate dataset structure (anything that passes check is guaranteed to run) clawarena-team check -d data/clawarena-team/ # Run the full 41-scenario benchmark (inference + live scoring + report) clawarena-team run -d data/clawarena-team/ -o results/ --model '' # Or run selected scenarios by id (comma-separated) via -t clawarena-team run -d data/clawarena-team/ -t s_finance_options_pricing -o results/ --model '' # Resume only the unfinished scenarios into a fresh output dir clawarena-team resume -d data/clawarena-team/ -O results/old -o results/new --model '' # Dataset statistics (token / file / modality distribution) clawarena-team stats -d data/clawarena-team/ # Compare two or more runs, ranked by SMS clawarena-team compare -r results/run_a/report.json -r results/run_b/report.json -o results/diff/ ``` > Короткие псевдонимы `cateam` и `ca-team` взаимозаменяемы с `clawarena-team` повсюду (например, `cateam run ...`).
JSON для --model ```json { "main": { "provider": "openai_compat", "model_id": "gpt-5.4", "api_base": "https://...", "api_key": "sk-...", "modalities": {"text": true, "image": 4} }, "llm": {"provider": "...", "model_id": "...", "modalities": {"text": true}}, "vlm": {"provider": "...", "model_id": "...", "modalities": {"text": true, "image": 8, "video": 2}}, "omni": {"provider": "...", "model_id": "...", "modalities": {"text": true, "image": 8, "audio": 4, "video": 2}} } ``` Ту же строку можно передать через `CATEAM_MODEL_JSON`. Поле `main.modalities` определяет, что главный агент воспринимает нативно; `Read` понижает файлы вне модальности до текстовой заглушки и предлагает делегирование. См. [`docs/cli.md`](../../docs/cli.md) для всех флагов и переменных `CATEAM_*`, [`docs/dataset.md`](../../docs/dataset.md) для формата датасета и [`docs/provider.md`](../../docs/provider.md) для подключения провайдера.
--- ## 🧰 Поверхность возможностей и инструменты ClawArena-Team формулирует управление субагентами как **задачу «принципал–агент»**. Поверхность возможностей главного агента раскладывается на шесть конкретных операций, каждая из которых навязывается дизайном сценария: | Операция | Что она требует | |---|---| | **Создание** | Создать субагента с системным промптом, ключом модели, подмножеством инструментов и белым списком путей рабочего пространства (подмножеством его собственного). | | **Маршрутизация модальностей** | Направлять изображения/видео к `vlm`, а аудио к `omni`, поскольку менеджер воспринимает только текст. | | **Наделение наименьшими привилегиями** | Предоставлять только те инструменты и пути, которые субагенту действительно нужны; избыточное предоставление расточительно и небезопасно. | | **Планирование** | Запускать субагентов на переднем плане или в фоне, как новые или продолженные (возобновлённые) сессии, и параллельно; фоновые задачи уведомляют менеджера по завершении. | | **Динамические рабочие процессы** | Создавать оркестрацию из нескольких субагентов (параллельные стадии + конвейер) во время выполнения над тем же пулом. | | **Интеграция** | Сливать результаты субагентов в корректный итог — оценивается только интегрированный ответ. | Главному агенту предоставляются инструменты в **CapitalCase**, чьи имена, описания и параметры повторяют реальные соглашения харнессов для межбенчмаркной сопоставимости: | Инструмент | Назначение | |---|---| | **Read** | Прочитать файл; содержимое вне модальности понижается до текстовой заглушки, предлагающей делегирование. | | **Write** | Создать или перезаписать файл в рабочем пространстве. | | **Edit** | Применить точечное правку на месте к существующему файлу. | | **Bash** | Выполнить shell-команду в песочнице (пути проверяются через `realpath`). | | **Grep** | Искать содержимое файлов по шаблону. | | **Glob** | Находить файлы по шаблону имени. | | **CreateSubagent** | Определить субагента: системный промпт, ключ модели, подмножество инструментов и белый список путей рабочего пространства. | | **RunSubagent** | Вызвать субагента на переднем плане или в фоне, как новую или продолженную (возобновлённую) сессию. | | **ListSubagents** | Перечислить созданных к этому моменту субагентов и их статус. | | **InspectSubagent** | Просмотреть конфигурацию субагента, предоставленные привилегии и историю запусков. | | **Workflow** | DSL оркестрации в стиле JS — `agent()`, `parallel()`, `pipeline()` — для компоновки запусков нескольких субагентов во время выполнения. | Системные сигналы (окружение, пороги токенов) внедряются через блоки ``; завершения фоновых задач поступают через блоки ``. Все обращения к путям проверяются через `realpath`, а попытки выхода через символические ссылки отклоняются и засчитываются как запрещённые обращения. ### Фиксированный пул субагентов (контролируемая переменная) | Ключ | Модель | Сервер | Нативные модальности | |---|---|---|---| | `llm` | gemma-4-31b-it | local vLLM | text | | `vlm` | gemma-4-31b-it | local vLLM | text, image, video | | `omni` | gemma-4-e4b-it | local vLLM | text, image, audio, video | Каждый главный агент командует этой же командой; от прогона к прогону меняется только главный агент. --- ## 📊 Данные и оценивание Каждый сценарий предоставляет рабочее пространство, последовательность пользовательских вопросов и проверки эталонной истины. Между некоторыми раундами рабочее пространство получает **поэтапные обновления** (новые или заменённые файлы), которые меняют последующие ответы, требуя устойчивого управления развивающейся задачей, а не одноразового решения.
Тепловая карта SMS по сценариям: 12 моделей x 41 сценарий, сложность неравномерна и зависит от модели
Тепловая карта SMS «сценарий × модель» — сложность неравномерна и зависит от модели.
**Компоненты оценивания** (все в $[0,1]$, без LLM-судьи): | Метрика | Значение | |---|---| | **TCR** — частота выполнения задачи | Средняя доля прохождения по пользовательским вопросам. | | **TPP** — точность разрешений на инструменты | На одного субагента, доля предоставленных типов инструментов, которые фактически используются. | | **ROC** — соответствие режиму только-чтение | На одного субагента, 0 если субагенту только-чтение был предоставлен изменяющий инструмент, иначе 1. | | **WPP** — точность разрешений на рабочее пространство | На одного субагента, обращённые файлы ÷ предоставленные файлы. | | **MCA** — точность выбора модальности | На одного субагента, действительно ли `vlm` читает изображение/видео, а `omni` читает аудио (`llm` получает 1). | Каждый сценарий удовлетворяет **десяти жёстким ограничениям дизайна (C1–C10)** — нечитаемые области, содержательные поэтапные обновления, использование полной поверхности инструментов, ≥8 каталогов с ловушками, раунды с нетекстовыми модальностями, задачи, требующие параллелизма, пары с повторным использованием сессий, межраундовые зависимости, модальностные ловушки и машинно-проверяемые ответы — каждое из которых нацелено на отдельный режим управленческого сбоя, который отдельная языковая модель иначе могла бы обойти. ### Состав датасета - **41 сценарий · 258 раундов**, из которых 44 (17.1%) предваряются поэтапными обновлениями. - **72 группы обновлений на 255 файлов** (61.1% `new`, 38.9% `replace`, в среднем 3.54 файла/группа). - **170.5 MiB · 28.9 M токенов** — 71.9% содержимое рабочего пространства, 27.9% поэтапные обновления. - Смесь модальностей: текст доминирует в файлах/токенах, тогда как аудио и изображения доминируют в сырых байтах — существенная нетекстовая нагрузка, которую текстовый менеджер не может потребить напрямую. ClawArena-Team **построен, а не собран**: корпуса рабочих пространств, мультимодальные ресурсы, эталонная истина и проверки выполнения — всё это процедурно синтезируется из одних и тех же скриптов под контролем версий через **маховик синтеза–верификации**, в котором реальный базовый прогон управления субагентами является финальными приёмочными воротами. Бенчмарк, по сути, авторизуется той самой способностью, которую он измеряет. См. [`docs/dataset.md`](../../docs/dataset.md) и приложение к статье для формата и методологии построения. Для более детальных распределений см. [`docs/data-stats/`](../../docs/data-stats/): каждое подмножество (`demo` / `wave1` / `wave3` / `wave4`) и полный набор имеют собственный `STATS.md` плюс графики (распределение токенов / размеров файлов / модальностей, покрытие тегов, ...), сгенерированные `clawarena-team stats`. --- ## 🔍 Разбор примеров Двенадцать примеров, взятых напрямую из записанных транскриптов прогонов и файлов `metadata.json` — все числа и цитируемые строки дословны — конкретно обосновывают три вывода и поверхность управленческих возможностей.
Примеры 1–4: избыточное предоставление у сильнейшего менеджера, корректная маршрутизация модальностей, ловушка модальностного декоя и развязка стоимости от качества
Разбор примеров 1-4
Примеры 5–8: идентичные баллы при расходящихся запрещённых обращениях, создание динамического рабочего процесса (и веерное ветвление, которое падает), логический параллелизм без истинного фонового планирования и истинный фон плюс параллелизм рабочего процесса
Разбор примеров 5-8
Примеры 9–12: ожидающая правка, которая никогда не распространяется, обрыв возможностей, который менеджер не может обработать, потолок управления (параллельное веерное ветвление, адаптивный повтор, наименьшие привилегии) и как выглядит хорошее управление
Разбор примеров 9-12
--- ## 📖 Документация | Документ | Описание | |----------|-------------| | [Справочник по CLI](../../docs/cli.md) | Все команды, флаги и переменные окружения `CATEAM_*` | | [Формат датасета](../../docs/dataset.md) | Структура сценария, раунды, поэтапные обновления, проверки эталонной истины | | [Руководство по провайдерам](../../docs/provider.md) | Подключение провайдеров главного агента (OpenAI-compat, Gemini, OpenRouter, ...) | | [Запуск экспериментов](../../docs/running-experiments.md) | Обслуживание пула субагентов и запуск / возобновление полного прогона | | [Отправка в таблицу лидеров](../../docs/submit-to-leaderboard.md) | Упаковка прогона и его вклад в [`submissions/`](../../submissions/) | --- ## 🏗️ Структура проекта ``` ClawArena-Team ├── src/clawarena_team/ # Core package (CLI clawarena-team / cateam) │ ├── cli.py # CLI entry point │ ├── agent/ runner/ # Main-agent loop & scenario/run orchestration │ ├── tools/ sandbox/ # CapitalCase tools, realpath-checked sandbox │ ├── provider/ # Provider adapters (OpenAI-compat, Gemini, OpenRouter, ...) │ ├── scoring/ stats/ # Execution-based scoring + token/structural analysis │ └── persistence/ prompts.py tokenizer.py types.py ├── data/clawarena-team/ # Dataset: 41 scenarios, 258 rounds, full + per-wave tests-*.json ├── configs/ # default.yaml + variants (global defaults) ├── docs/ # cli.md, dataset.md, provider.md, running-experiments.md, submit-to-leaderboard.md, i18n/, data-stats/ ├── scripts/ # fetch_helper.py, serve_gemma-*.py, eval runners ├── submissions/ # Example contributed runs (local-gemma-31b, local-qwen3.6-27b) ├── helper/ # Bundled tokenizer + chat template (no weights) ├── assets/ # Figures used in this README └── tests/ # Unit tests, synced with src/ ``` --- ## 📚 Цитирование Эта работа в настоящее время является анонимным препринтом; идентификатор arXiv и список авторов будут добавлены. ```bibtex @misc{clawarena-team2026, title = {ClawArena-Team: Benchmarking Subagent Orchestration and Dynamic Workflows in Language-Model Agents}, author = {Anonymous Author(s)}, year = {2026}, note = {Preprint. arXiv identifier and author list to be added.} } ``` --- ## 📄 Лицензия Этот проект распространяется по лицензии [MIT License](../../../LICENSE).