В отпуске есть время подумать и исследовать. Я натолкнулся на несколько вещей и открытий для себя. Оказалось, что мне как программисту перестали быть нужны самые умные и дорогие ИИ‑модели. Оказывается, есть такой параметр «Cost per Task», и по этому параметру на первое место вырвалась модель GPT-5.6 Luna (max).
При этом, если вы пользуетесь Codex, она самая тупая в списке моделей. Artificial Analysis Intelligence Index у нее всего 38. Для сравнения, у самой умной GPT-6 Astra (max) этот индекс равен 53. В итоге цена выполненной Luna задачи составляет $0.18 против $3.26 у Astra. Разница почти в 20 раз.
Как я понимаю, бенчмарк «Cost per Task» высчитывается так: когда ставится нормальная, грамотно описанная задача, замеряется, сколько токенов было потрачено на ее выполнение. То есть не в формате «из ХЗ сделаю ТЗ», а в формате, когда в хорошо заданном вопросе уже содержится половина ответа.

Я сначала не поверил, что так и есть, и стал работать, используя самую тупую модель Luna в линейке. И знаете, какие меня ожидали результаты? У меня перестали кончаться 5-часовые лимиты и недельные лимиты. На тарифе за 20 баксов в месяц, Карл!:)
Притом что я программист, Codex не водит меня по кругу, и мне не требуется переключаться на более умную модель, чтобы она все‑таки смогла выполнить задачу, о которой я прошу уже в пятый раз. Я вижу, как многие вайбкодеры‑непрограммисты всегда выходят из ситуации: если ИИ водит тебя по кругу, включи более умную модель, и она точно решит проблему. Да, это правда: для неквалифицированных программистов это работает, а для квалифицированных лишено смысла, если они, конечно, не обленились и вообще не выключили мозг.
То есть ситуация такая: даже самые дешевые и самые тупые фронтирные модели стали достаточно умными. Если ты разбираешься в теме, их уровня хватает за глаза. Похоже, гонка за тем, у кого модель умнее, подходит к концу. Но я столкнулся с другой проблемой: скоростью.
Особенно это заметно на DeepInfra и OpenRouter. Сейчас средняя скорость генерации на более‑менее нормальных моделях составляет 25–50 токенов в секунду. Даже Luna у меня в Codex выполняет задачу в среднем за 5–15 минут. Для агентского режима это очень медленно. Это начинает раздражать.
Если взять модель DeepSeek‑V4.1-Flash напрямую через API DeepSeek, скорость там достигает 300 токенов в секунду. Заметьте: задача выполняется не за 5 минут, а меньше чем за минуту. А если задача тяжелая, вместо 15 минут уходит всего 5. Когда ты программист, ты запускаешь задачу и хочешь, чтобы ИИ выполнил ее как можно быстрее. Так гораздо комфортнее, чем ждать 5–15 минут. При этом Artificial Analysis Intelligence Index у DeepSeek‑V4.1-Flash равен 40, что на 2 пункта выше, чем у Luna.
В общем, следующим этапом развития агентского ИИ становится скорость. На текущий момент китайские модели выигрывают. Но, как я понял, нас ждут сюрпризы от американских LLM‑провайдеров. У Anthropic, вроде, с этим проблемы, но OpenAI, похоже, скоро получит дата‑центры, где скорость будет измеряться тысячами токенов в секунду. Представьте: раньше вы ставили задачу и ждали минуты, а теперь все готово за 10–30 секунд. Бизнес со скоростью мысли:) Только придумал, подумал, а результат уже можно проверять:)
Вы же помните, какой была гонка за размером контекстного окна? «У нас 65 тыс. токенов!» «У нас 250 тыс.!» «У нас полмиллиона!» «У нас контекст размером в 1 млн токенов!» Так вот, ребята, я думаю, гонка завершена. Дальше наращивать его смысла нет. Кстати, именно с ростом контекста и появились ИИ‑агенты для кодинга, которые в цикле, решая задачу, итеративно наращивали контекст и успевали за 20–30 циклов сделать что‑то полезное, дойдя до 500 тыс. или 1 млн токенов.
Сейчас главная проблема в том, что ИИ‑агент при каждой новой задаче заново изучает код и правила работы с репозиторием, чтобы выполнить вашу задачу. 80% его работы уходит на то, чтобы заново разобраться, что тут происходит, и только 20% составляют правки в коде. А все это из‑за долбаного контекстного окна в 1 млн токенов, которое приходится постоянно сбрасывать в ноль и начинать заново. То есть у всех уже пришло понимание, что в идеале нужна некая долгосрочная память. Тогда контекстное окно становится бесконечным.
То есть, если модели не требуется из‑за переполнения контекстного окна начинать с нуля, получается, что чем дольше модель работает с кодовой базой, тем больше у нее накапливается общее представление о том, где что находится в этом проекте. В общем, давай stateful LLM, надоели твои stateless LLM! И, кстати, такие работы уже ведутся, и есть несколько проектов. В общем, рынок созрел, и, я думаю, это будет следующим этапом, а не увеличение контекстного окна до 2 или 3 млн токенов.
Кстати, вопрос. А у вас как трансформировались привычки программирования в связи с последними событиями? Например, из‑за того, что мне перестали быть нужны крутые средства IDE, я перестал оплачивать подписки JetBrains и перешел на Zed IDE. Он бесплатный, поддерживает шорткаты, как у JetBrains, и я, по сути, использую его, чтобы смотреть diff кода и навигироваться в дереве исходников.
И, кстати, я что‑то все меньше использую Codex или Claude Code: они тянут слишком много лишнего и раздувают контекст, что отвлекает LLM от задачи. Перешел на Pi harness. У него минимальный набор тулов: редактирование кода, запуск команд и так далее. В итоге в среднем один самый простой запрос к LLM, типа «привет», у Pi занимает 3 тыс. токенов. У Codex 18 тыс., у Claude Code 30 тыс. Тут даже неважно, что меньше. Важно, что модель хуже понимает задачу, отвлекаясь на более раздутый контекст.
А у вас какой стек в итоге образовался? И вообще, как думаете, что дальше будет? Чего ждать от ИИ‑продуктов в сфере программирования? Куда дальше все идет?
Dhwtj
Для агентского режима с четкой проверкой можно. В остальных случаях - брезгую: столько вранья давно не видел.
jorgvonfrundsberg
А есть какая-то корреляция между измеримой скоростью токенов в секунду и количеством вранья?
Ka463
Есть реальная польза от агентского режима с многоступенчатой доказательной проверкой, ловится куча багов, пустышек, обещаний и т.д, это работает на любой модели, а разницы из за скорости генерации я не разу не замечал.
jorgvonfrundsberg
Спрошу по-другому - агентский режим на локальной модели с, допустим 12Гб видео и 64Гб оперативки будет работать, пусть и неспеша, но без такого же количества вранья как в упомянутом DeepSeek-V4.1-Flash ?
Ka463
Скажем так, гарантии я не дам, потому что работаю на своем собственном агенте, а что возьмете вы и как настроите я не знаю, а от агентского контура зависит все.
А на счет DeepSeek-V4.1-Flash, у меня он сейчас как раз подключен, как облачная модель, и вот наблюдение, я ему кинул ссылку на статью, и сказал, хочу то что в статье но с своим блэкджеком, к вечеру полный функционал был готов, в агентском режиме он работает на ура.
igumnov Автор
О чем и говорю. Luna модель от OpenAI на том же уровне. Притом если ее попросить вместо DeepSeek-V4.1-Flash будет результат в 5 раз дольше ждать.
Ka463
Это я еще не нативный API от дипсика взял,а пользую облачную ollama, там все несколько тормознее =)
swap2bin
По моим тестам Luna еще хуже чем DeepSeek и несет полный бред и скорость, да это тоже косяк
Ka463
Вот кстати если интересно, как работает режим проверки, это дипсик 4.1, режим работы swarm когда есть оркестратор и воркер, и вот как раз воркер закончил работу и прислал отчет оркестратору, а тот не поверил ему, и не зря, нашел косяки и отправил воркера исправлять, без моего вмешательства в работу агента.
Z55
Расскажите по подробней, где этот режим? Какой-то дополнительный агент?
IlyaStroynov
вы всегда можете в промте задать типа "создай план, делегируй исполнение субагенту, его результат провалидируй(тут тоже опция - через независимого агента-ревьюера)". я такую механику сразу в AGENTS.md зашил, чтобы ни одно решение по проекту не принималось без проверки независимым агентом с моделью другого семейства, чем агент-исполнитель
Ka463
Вам нужен режим где основной агент делегирует работу суб-агенту, а сам оценивает его работу
garageman
12 - мало совсем. Сейчас даже квантованные модели типа квен-кодер не влезают уже в 20ГБ.
Dhwtj
Статистическая есть. Логической связи нет
TimurZhoraev
А были ли внешние инструменты - тот же Qdrant+BAAI-m3 эбмеддер, сейчас в облачных сервисах полно этого добра. Делается векторная БД, затем чанкуется любой даташит что под руку попал (включая код с коммент-промпт форматом - не пренебрегайте этим!) и модель всё делает почти так как руками, хоть Алиса хоть Сбер. Мне очень всё это дело помогло сделать микро-проект с PWM/ADC/UART/I2C/SPI с DMA, все адекватные конечные автоматы с фоллбеками и обработчиками ошибок, практически на уровне main(){} с таймерами миниатюрная RTOS, полное понимание проблем RMW с гонкой данных и всё это впихнуть в 64 к флеша и 20к озушки, прочих вкусных протокольных внешних микрух а-ля SPI дисплейчик, мультиплексоры I2C и умные драйверы шаговых. Плюс ещё скиллы соответствующие и промпт-инъекции чтобы направить в нужное русло ну и конечно же md-саммари с хорошей цепочкой и контрольным выводом, плюс питонячьи тесты (уже давно отодвинул Matlab) и тестирующие C-обёртки. Практически можно не использовать stdlib а генерировать printf/scanf по месту и прочие парсеры, умещаясь в килобайты как на каком-нибудь спектруме, самое невероятное - практически отпала необходимость искать чьи-либо библиотеки (!) для периферии, шрифтов, рендеров итд, всё генерируется по месту, остаётся только что-то вроде HAL/SPL на уровне спецификаций регистров управления. Вообщем это добротный джун/миддл с опытом работы 50+ лет в отрасли, начиная от Z80 и до GPU/FPGA.
igumnov Автор
Кстати интересная идея, подключить тулзу к кодинг агенту которая проиндексирует кодовую базу через ембединг вектора и будет давать возможность искать по смыслу а не только по ключевым словам. Надо попробовать с PI Harness такое проделать.
swap2bin
пробовал AST граф от разных репозиториев, да это немного другое, но суть та же — дать агенту инструмент для поиска по кодовой базе, в итоге работает так себе, современные LLM ужн обучены на некую чуйку лазить по коду как надо а инструмент применяется только по узкой необходимости, когда я прошу это делать (в системном промпте также оформлено как его использовать и тд, не помогает), разве что позволяет мертвый код искать, но как отдельная сессия, а не в процессе решения. Возможно оно нормально будет работать на ООП коде, а не на несколько микросвервисов с разными языками в них, но вот мой опыт ну такое и про индексацию с помощью эмбедингов и векторой базы думаю также будет, работать реально только если много доков и лить top k сразу перед самой таской в промпт тогда может быть
TimurZhoraev
В точку. Нужен самостоятельный AST-инструмент. Настоящий пример который использую прямо сейчас. Лучше потратить пару дней для генерации того что необходимо, тем более модель с этим отлично справляется. Для Питона там куча нативных AST, для C - Clang
Саммари:
AST Python
Для скана C поиск dead-code
Сканер по С файлам
Фактически можно сказать код больше уже и не нужен - достаточно знать его внутреннюю структуру. Это уже новый этап развития языков - по-сути от них ничего не требуется кроме скелета AST, а далее там и рефакторинг и всё что угодно, благо LLM понимает этот формат особенно для Питона, достаточно указать необходимые тулы и можно таргетированно менять всё что угодно без ошибок синтаксиса как таковых, так как операция производится уже внутри языка.
-> также дело не в том что модель может по тексту шагать (это кстати можно сделать в виде скилла - что после нахождения чанков идти по путям к этим txt), а в существенной экономии токенов при множественных запросах по смыслу. То есть в векторной БД уже сразу она может сходу найти ответ на запрос, там сразу видно что то вроде ADC калибровка, PWM тайминги, GPIO назначение входов, ADC режимы семплирования итд. При прямом поиске вероятность глюков без вектора возрастает очень сильно. Тем более эту задачу вполне можно сплавить субагентам, причём самым "туповатым" и использовать только для взаимодействия с этой базой но саммари будет более чем достаточно для принятия решений уже оркестрирующей моделью.
BugM
Лисп уже давно создан.
TimurZhoraev
А внутри легендарного Лиспа тот самый AST который суть связка между тумблерами, машинным кодом, ассемблером и языком. Он даже в микро-форме присутствует в прошивке Спектрума. Чтобы не перегружать контекст, желательно использовать гарантированный тул который читает по 100 строк что-то вроде grep с заглушкой по длине, даже специально делаю shell-обёртку чтобы он не промахнулся с этим числом. Мало того, можно даже сделать Питошу который поможет модели посёрфить по ассемблерному коду (вот это уже было бы супер - ждём агентов, которые поддерживают генерацию специализированных тулов налету с прокруткой нагенерённого в отдельном окне вместо one-liner-code мучающий терминал). Скачал тут прошивку для ZX-48k просто для интереса во что там БЭЙСИК превращается
БЭЙСИК превращается, Бэйсик превращается.. в элегантный
Вот собственно и есть тот самый AST-мотор под катом, тот же самый ассемблер. Достаточно просто визуализировать его токены на экране, это собственно то что назовём Бэйсиком, а там можно и представить хоть как Go хоть как Python или что ещё, даже индексы менять не нужно, добавить новые для классов, лямбд функций итд. В будущем как раз LLM-ка наверняка научится работать с этим напрямую без потери контекста за счёт hold-тегов.
Yarus23
А ведь мысль то здравая по ast модель не будет у себя в головешке строить модель код а ей уже это дадут. Вопрос в том что была статья на Хабре про использование инструментов что она может написать кучу инструментов классных но пользоваться все равно grep rg и тп. Думаю это вопрос промта и по идее должно сильно улучшить качество на моделях с малым контекстом. Надо эксперимент провести у меня куча кода на go и ts
Aleksandrit2332
https://github.com/DeusData/codebase-memory-mcp
Даже визуализация графа строится с фильтрами...
funca
GitNexus например или CodeGraph. Хотя в последнем вроде только BM25.
Robastik
А что насчёт ведения карты кода как части документации проекта? В виде json: модули с описанием функционала - подсистемы с архитектурой - файлы с ролями и сущностями. В начале новой задачи агент сразу видит всю карту и понимает фронт работы.
dkfbm
Так идея, мягко говоря, не новая. Давно уже пользуюсь.
Joolg
Если привязать агента к тайпчекеру и прогону юнит-тестов, фантазии отсекаются сами собой. Модель просто делает еще одну итерацию, пока компилятор не заткнется
Dhwtj
На все случаи чекеров не напасешь
vanxant
Для этого у тестировщиков есть свои модели, которые придумывают интеграционные/Е2Е тесты, не видя кода, а только лишь тз и юзерсторисы. Тоже не 100% гарантия, но ОЧЕНЬ полезно