Отдал код Claude. А что осталось делать Codex?
Первые замеры TaskRoute. Почему передача кода другой модели почти не давала экономии и что изменилось в следующих запусках.
У меня Astra в Codex занимается далеко не только кодом. Я с ней разбираю задачи, проверяю решения, готовлю тексты. Opus хорошо пишет код. Ну и пусть пишет, а у основной модели останется больше ресурса на остальные поручения.
Оставалось организовать передачу задачи. Не очень хотелось самому копировать сообщения между двумя моделями, таскать результаты и объяснять каждой, что сделала другая. Для этого я начал собирать TaskRoute.
Схема казалась простой. Codex отправляет задачу в Claude Code, ждет и проверяет результат. Я сравнил ее с вариантом, где Astra сама делает ту же работу.
Что осталось делать Astra
В одном из первых сравнений передача задачи сократила входные токены Astra без кеша всего на 3%. Времени ушло на 49% больше. Обе реализации прошли одни и те же 45 независимых проверок.
А самое первое сравнение на маленькой задаче дало на 29% больше входных токенов без кеша. Выходных токенов стало меньше, но общий объем работы основной модели от этого автоматически не исчез.
По логам было видно, на что она тратилась. Astra читала большие снимки состояния, повторяла проверки, собирала результат из нескольких файлов. В сравнении с 45 проверками передача задачи потребовала 10 шагов модели против 7 при самостоятельной реализации.
Код уже писал Opus. А Astra продолжала довольно плотно обслуживать весь процесс вокруг него.
Собрать результат в одном месте
Я собрал изменения, результаты тестов и замечания отдельного ревьюера в компактный пакет для приемки. Astra по-прежнему должна проверить реальную работу. Просто теперь ей не нужно искать части ответа по разным файлам.
С ожиданием тоже пришлось разобраться. В одном из запусков с компактной передачей результата Astra просыпалась 13 раз, пока работал Claude. В следующем варианте получилось оставить два ожидания, подольше удерживая процесс до возврата управления модели.
Повторной обработки контекста стало меньше. Но отдельно эффект ожидания я не изолировал. Менялись и ответ ревьюера, и поведение модели, поэтому приписывать всю разницу одному изменению было бы странно.
Проверка на новой задаче
Следующей взял синтетическую задачу на Python. Нужно было разложить зависимые задачи по пакетам с учетом приоритетов, уже выполненных задач, отсутствующих зависимостей и циклов.
Оба варианта получили одинаковую заготовку и условия. Запуски Astra были свежими, а 20 общих приемочных тестов зафиксированы заранее. Каждая реализация добавила еще по восемь собственных тестов.
| Работа Astra во время выполнения | Изменение с TaskRoute |
|---|---|
| Входные токены без кеша | На 59% меньше |
| Выходные токены | На 83% меньше |
| Входные токены вместе с кешем | На 44% меньше |
| Время выполнения | Почти без изменений |
Обе реализации прошли все 20 общих тестов и свои восемь дополнительных. Повторять живые запуски в этой паре не понадобилось.
Здесь я считаю только сессии выполнения Astra. Расход Claude идет отдельно. Общая подготовка эксперимента в эти проценты тоже не входит. Это одна последовательная пара на новой задаче с видимыми тестами. До широкого или рандомизированного бенчмарка ей далеко.
И я пока не знаю, насколько дольше после этого проживет недельный лимит подписки. Сокращение токенов в конкретном запуске не дает такого ответа.
Одна забытая папка съедает экономию
В более раннем запуске не оказалось временной папки. Claude уже написал код, но процесс остановился до ревью.
Успешный повтор отдельно показывал сокращение входных токенов без кеша на 34%. Вместе с упавшей попыткой оставалось 7%. И это еще без разбора ошибки и починки в основной сессии.
После этого я добавил локальную проверку нужных файлов и папок до вызова моделей. Иначе можно получить красивый процент по удачной попытке, предварительно потратив ресурс на неудачную.
Тесты нашли дыру в моих условиях
Еще одно сравнение не позволило заявить об одинаковом качестве. Обе реализации проходили собственные тесты, но общие проверки показали, что модели по-разному выбрали ошибку для случая, где нарушено сразу несколько правил.
Порядок этих ошибок я оставил неоднозначным. Пришлось уточнить условия задачи. Ранжировать модели по такому сравнению я бы не стал.
Что сейчас можно проверить
Измеренная версия TaskRoute работает как небольшой локальный плагин Codex для ограниченных изменений Python-функций на macOS, с уже настроенным Claude Code. Claude делает реализацию и подключает отдельного ревьюера. Codex проверяет полученную работу.
В репозитории есть замеры и их ограничения, а также инструкция установки.
Мне еще предстоит проверить это на обычной рабочей неделе. Пока получилось сократить работу Astra вокруг передачи задачи и оставить ей результат, который можно нормально принять. Именно это я и хотел перестать делать вручную между двумя окнами.
Если TaskRoute пригодится, звезды на GitHub приветствуются.
Попробуйте
Signum
Contract-first AI dev pipeline. Write specs, not prompts — get verified code.
5k+ читателей в месяц
Короткие заметки, промежуточные идеи и обсуждение новых постов — в @ctxtdev.
Если статья была полезна, можно поддержать блог. Если тебе нужен разбор похожей задачи в реальном проекте — пиши по рабочему запросу.