TomasuLLM: Как предиктивное выполнение устраняет простои в работе кодовых агентов
Долгожущие инструменты, такие как компиляторы и тестовые наборы, часто становятся узким местом для автономных кодовых агентов, вызывая значительные задержки. Новая система TomasuLLM решает эту проблему, выполняя команды агентов в произвольном порядке с предварительной валидацией в изолированных средах, что повышает эффективность работы без нарушения целостности задачи.
# TomasuLLM: Преодоление задержек в работе кодовых агентов с помощью спекулятивного выполнения
В мире автоматизации разработки кода автономные агенты становятся всё более автономными, однако их продуктивность всё чаще ограничивается физическими пределами инструментов, которыми они управляют. Когда агент генерирует команду на запуск компиляции или сложного тестового сценария, он часто вынужден простаивать, ожидая завершения процесса, который может занять от нескольких секунд до минут. Новая работа, опубликованная на arXiv под названием «TomasuLLM: Out-of-Order Speculative Execution for LLM Agents», предлагает элегантное решение этой давней проблемы, заимствуя принципы микроархитектуры современных процессоров для ускорения работы языковых моделей.
Проблема простоя и аналогия с процессорами
Основная проблема заключается в так называемом «наблюдательном простое». Кодагенты, построенные на больших языковых моделях (LLM), обладают высокой скоростью генерации текста, но они мгновенно теряют этот темп при взаимодействии с внешними системами. Команды, инициированные агентом, могут включать в себя вызовы репозитория, запуск тестовых подходов или компиляцию кода. В эти моменты агент не может продолжать другие действия, так как результат предыдущего шага ещё не подтверждён. Эта ситуация создаёт напряжение, аналогичное тому, которое заставило инженеров decades ago внедрить вычисления вне очереди (out-of-order execution) в классические процессоры.
Система TomasuLLM была разработана с целью преодолеть эту задержку. Авторы исследования показывают, что последовательный интерфейс взаимодействия с инструментами скрывает от агента возможности, которые могли бы быть использованы для более эффективного планирования. Если агент может предсказать будущие действия, которые не конфликтуют друг с другом или с текущим состоянием системы, эти действия можно инициировать заранее. Ключевым отличием и главной сложностью здесь является то, что спекулятивный результат (результат предварительного выполнения) может стать видимым только после того, как он и все предыдущие шаги будут валидированы. Это требует строгого контроля за состоянием системы.
Как работает TomasuLLM
TomasuLLM представляет собой систему выполнения на основе времени (runtime), которая меняет парадигму взаимодействия агента с инструментами. Вместо того чтобы жёстко следовать назначенной траектории действий, ожидая каждого результата перед переходом к следующему шагу, система начинает «черновик» будущих действий.
Процесс работы системы включает в себя несколько критически важных этапов:
1. Планирование и черновик: Система анализирует текущую задачу и заранее формулирует будущие действия агента, которые логично следовать за текущим шагом. 2. Изоляция в песочнице: Запланированные действия запускаются в изолированных средах с поддержкой механизмов *copy-on-write*. Это означает, что изменения в памяти или файловой системе происходят в изолированной копии, не затрагивая исходное состояние, пока действие не будет одобрено. 3. Трассировка зависимостей: Система тщательно отслеживает зависимости между действиями и их влияние на состояние проекта. Это позволяет понять, какие действия могут быть выполнены параллельно, а какие должны ждать. 4. Валидация и фиксация: Результаты спекулятивного выполнения фиксируются в основной траектории только после тщательной проверки соответствия зафиксированному состоянию системы. Если спекулятивный шаг валиден, он становится частью истории выполнения; если нет, система откатывает изменения и корректно корректирует траекторию.
Этот подход позволяет системе «предвосхищать» шаги, которые были бы выполнены позже, эффективно используя время ожидания длительных операций.
Результаты бенчмарков и масштабирование
Эффективность предложенного подхода была проверена на трёх различных бенчмарках, охватывающих задачи различной сложности и длительности выполнения инструментов: от операций, занимающих менее секунды, до процессов, длящихся минуты и более.
Испытания показали устойчивое улучшение средней производительности в зависимости от латентности (задержки) инструментов. В частности, результаты продемонстрировали следующие показатели ускорения:
* SWE-bench Verified: На выборке из 100 задач система показала улучшение в 1,31 раза. * Terminal-Bench 2.0: На 28 задачах этот бенчмарк продемонстрировал рост производительности на 1,35 раза. * SWE-Marathon: В сессиях, имитирующих марафонскую разработку с длительным временем выполнения, система обеспечила сопоставимый прогресс в 1,27 раза на 18 сессиях.
Важным аспектом исследования является масштабируемость системы. Ускорение не является фиксированным, а коррелирует с латентностью инструмента: чем дольше операция занимает время, тем значительнее выигрыш, который приносит параллельное предиктивное выполнение.
Гарантии точности и отсутствие ложных утверждений
В системах, управляющих кодом, критически важно избегать ошибок. Введение спекулятивного выполнения неизбежно создаёт риски: если система ошибочно примет неверный результат, это может привести к поломке проекта или потере данных. Однако авторы исследования подчёркивают абсолютную надёжность своего подхода.
В процессе аудита 4 010 записей о валидации коммитов (commit-validation records) система TomasuLLM продемонстрировала способность полностью исключать ложные утверждения (false accepts). Это означает, что ни одно валидируемое действие не было принято системой, если оно не соответствовало фактическому состоянию задачи. Такой уровень гарантий делает применение метода безопасным для реальных рабочих процессов, где цена ошибки значительно выше, чем потенциальный выигрыш в скорости.
Технология TomasuLLM демонстрирует, как заимствование архитектурных паттернов из аппаратного обеспечения может существенно повысить эффективность программного агентов, позволяя им работать с постоянным потоком сложных операций, минимизируя время ожидания и максимально используя вычислительные ресурсы.