Unreal Agent: асинхронный harness для экономии токенов

· 2 мин чтения
ai-agents harness benchmarks efficiency tools
Unreal Agent: асинхронный harness для экономии токенов

Unreal Agent — это agent harness от Unreal Labs, который перестраивает работу с tool calls вокруг асинхронного выполнения. Идея простая: модель не должна тратить токены и attention на ожидание, polling и heartbeat, пока инструмент работает в фоне. В реальных нагрузках и на coding benchmarks команда заявляет до 40% экономии по сравнению с Codex и до 20% по сравнению с Pi, без заметного ухудшения качества.

Зачем нужен ещё один harness

Универсального способа построить production-ready агента не существует. SDK разных вендоров часто ориентированы на локальные сессии, subprocess и ограниченные ресурсы. Когда такой SDK используют в production, команде приходится самостоятельно решать вопросы завершения, отмены и фоновых задач.

Поддержка других провайдеров добавляет свои сложности. Переключение API mode может сломать работу инструментов или compaction, а обновление SDK — изменить формат сообщений и потребовать переписывания интеграции. Большое дерево зависимостей увеличивает стоимость сопровождения и риск supply chain.

Отдельная проблема — безопасность и approvals. Когда доступ разрешается через hooks и специальные инструменты harness, такой контур сложнее поддерживать и надёжнее ограничивать. Unreal Labs считает более устойчивым подходом детерминированные ограничения окружения и sandbox: списки разрешённых и запрещённых хостов, granular access tokens и proxies с approval gates.

Одновременно harness должен позволять пользователю вмешиваться в работу агента без ожидания текущего tool call. Например, агент может запустить настройку dev environment на несколько минут, а затем параллельно исследовать кодовую базу и искать информацию в интернете.

Асинхронная архитектура tool calls

При каждом вызове инструмента Unreal Agent сразу добавляет в event log запись о том, что tool call находится в состоянии in-progress, и продолжает выполнение в фоне. Когда инструмент завершается, результат добавляется в session log, после чего вызывается LLM.

Такая схема убирает необходимость отдельно управлять ожиданием, polling и heartbeat. Модель может принимать промпты пользователя и продолжать другую полезную работу, пока инструмент ещё выполняется. Количество tool calls между вызовами модели также увеличивается.

В реализации есть важная инженерная деталь: в одном контексте используются два результата tool call — промежуточный in-progress и финальный. По словам Unreal Labs, некоторые inference providers отклоняли такой формат, а поле статуса function_call_output не всегда помогало. В тестах модель понимала переход от сообщения о запуске к финальному результату, когда формат сообщений принимался провайдером.

Почему снижается стоимость

На поверхности Unreal Agent достигает тех же результатов, но делает меньше model turns и использует меньше input tokens. Команда объясняет экономию двумя факторами.

  1. Минимальный footprint. В harness простые prompts, token-optimized результаты инструментов и отсутствуют sub-agents и workflows. Всё это уменьшает постоянные издержки, которые модель оплачивает на каждом запуске.
  2. Больше полезной работы на один model turn. Асинхронная модель tool calling понятно объяснена LLM, поэтому агент может выдавать больше тяжёлых tool calls, не тратя токены на polling и ожидание.

Экономия не означает, что из результата убирается качество. В опубликованных тестах pass rate отличается незначительно, и авторы связывают это с variance бенчмарков.

Результаты benchmarks

Команда тестировала GPT-6 Astra с reasoning effort xhigh и сравнивала Unreal Agent с Codex и Pi. В таблице ниже приведены опубликованные значения для основных метрик.

Terminal-Bench 4.0

Agent Rate Total $ In/trial Out/trial Turns Tools
unreal-agent 57.9% 1428 1.73M 32k 28 37
Codex (leaderboard) 57.9% 2350
Pi 55.0% 1827 2.83M 35k 44 57

SWE-Atlas Codebase QnA

Agent Rate Total $ In/trial Out/trial Turns Tools
unreal-agent 65.8% 936 898k 15k 16 27
Codex 63.3% 1303 1.69M 17k 22 21
Pi 64.0% 1033 1.29M 16k 24 60

DeepSWE 1.1

Agent Rate Total $ In/trial Out/trial Turns Tools
unreal-agent 72.4% 1367 1.60M 28k 26 38
Codex 69.0% 1633 2.19M 30k 30 29
Pi 69.6% 1584 2.21M 30k 40 75

Agents’ Last Exam · ALE-CLI

Agent Full pass Mean score Total $ In/task Out/task Turns Tools
unreal-agent 30.0% 59.7 217 0.76M 18k 18 23
Codex 29.0% 58.1 292 1.59M 15k 21
Pi 29.0% 59.2 262 1.19M 19k 27 37

Unreal Agent показывает 72.4% на DeepSWE 1.1, 65.8% на SWE-Atlas Codebase QnA и 57.9% на Terminal-Bench 4.0. На последнем benchmark он достигает того же pass rate, что и Codex leaderboard baseline, но с меньшей общей стоимостью и меньшим количеством model turns. В ALE-CLI полный pass rate составляет 30.0%, а mean score — 59.7.

Команда отмечает, что чаще всего запускает coding benchmarks, потому что они доступны на Harbor и их проще воспроизводить и проверять. При этом сам harness позиционируется как domain-agnostic.

Как начать использовать

Unreal Agent SDK сейчас предлагает три способа интеграции:

  • Go library для встраивания в существующую кодовую базу;
  • runner executable, похожий на claude -p или codex exec;
  • benchmark runner, совместимый с Harbor.

Для production-агента главный принцип Unreal Agent — не заставлять модель синхронно наблюдать за каждым инструментом. Асинхронный event log, фоновые вызовы и user steering уменьшают tool-management overhead, а минимальный prompt и оптимизированные результаты помогают снизить стоимость без ухудшения результата на проверенных coding workloads.

Источник: https://unreallabs.ai/blog/unreal-agent/