Дайджесты новостей
Минималистичный конструктор из графитовых и белых блоков с параллельными путями пакетной обработки

Reason Agent 1.1: новый харнес для кодинг-агентов с батчингом вызовов и снижением затрат на 22%

Когда автономный кодинг-агент начинает решать задачу в большом проекте, его работа обычно напоминает разговор по рации с огромными паузами: агент ищет файл -> ждёт ответа -> читает файл -> ждёт ответа -> запускает тест -> ждёт логов ошибки. Каждый такой шаг порождает новое сообщение в истории диалога, раздувая контекст до сотен тысяч токенов.

В результате разработчик сталкивается с двумя бедами: счетами за API на тысячи долларов и так называемой «усталостью выбора инструментов» (tool-selection fatigue), когда модель начинает путаться в собственных предыдущих шагах.

Команда Reason Machines решила эту проблему на архитектурном уровне, выпустив обновлённый харнес Reason Agent 1.1. В независимом отраслевом рейтинге Coding Agent Index от Artificial Analysis связка Reason Agent 1.1 с базовой моделью GPT-6 Astra набрала 65,1 балла против 62,5 балла у стандартного Codex, одновременно снизив средний чек за решение задачи на 22%.

Давай разберём, как устроен этот механизм изнутри.

Главное оружие: выполнение кода как инструмента (Batch Tool Calling)

Вместо того чтобы совершать десятки одиночных сетевых вызовов инструментов, модель переходит в режим codemode. Она генерирует компактный JavaScript- или Python-скрипт, который локально выполняет всю пачку операций за один раунд инференса: находит файлы, читает нужные строки, запускает тесты и возвращает в контекст лишь отфильтрованный сухой остаток.

Ранее мы уже анализировали, к чему ведёт бесконтрольный расход токенов в агентной разработке, и батчинг инструментов оказывается здесь самым действенным лекарством.

Конфигурация харнеса с кэшированием префиксов

Ниже представлен рабочий конфигурационный файл reason.config.json, включающий кэширование статического контекста и защиту от зацикливания:

{
  "harnessVersion": "1.1",
  "engine": {
    "provider": "openai",
    "model": "gpt-6-astra",
    "promptCaching": {
      "enabled": true,
      "cacheStaticPrefix": true,
      "minTtlSeconds": 300
    }
  },
  "execution": {
    "mode": "code_batch",
    "runtime": "node20-isolated",
    "maxBatchSteps": 12,
    "timeoutMs": 45000
  },
  "guardrails": {
    "loopWatchdog": {
      "maxConsecutiveErrors": 3,
      "onThreshold": "escalate_strategy"
    }
  }
}

Пример батчевой операции внутри рантайма

А вот как выглядит сгенерированный агентом скрипт, который за один шаг находит компоненты, читает их и прогоняет тесты:

import { workspace, tester } from "@reason/agent-runtime";

export default async function batchOperation() {
  // 1. Быстрый поиск целевых компонентов по маске
  const targetFiles = await workspace.glob("src/components/**/*.{tsx,ts}");
  
  // 2. Пакетное считывание без засорения истории диалога
  const fileContents = await Promise.all(
    targetFiles.map(async (file) => ({
      path: file,
      content: await workspace.readFile(file)
    }))
  );

  // 3. Запуск тестов и мгновенный возврат только упавших утверждений
  const testResults = await tester.runSuite("npm test -- --bail");

  return {
    scannedCount: targetFiles.length,
    failingTests: testResults.failures.map(f => ({ file: f.file, error: f.message })),
    recommendationTarget: fileContents.filter(f => f.content.includes("useUserProfile"))
  };
}
Сторожевой таймер от рекурсивных петель

Модуль Loop Watchdog отслеживает повторяющиеся ошибки компиляции. Если агент три раза подряд спотыкается на одном и том же месте, система принудительно эскалирует стратегию рассуждения вместо бессмысленного сжигания токенов.

Опыт Reason Agent 1.1 доказывает важный тезис: чтобы сделать кодинг-агента умнее и дешевле, не обязательно ждать выхода нового поколения сетей — достаточно навести порядок в среде выполнения инструментов.