Авторская колонка

33 ИИ-агента на одном образе без правок ядра: где проходит граница между кодом и моделью

Флот из 33 автономных ИИ-агентов (от детского шахматного тренера до расчёта подстанций 10/0,4 кВ и модульных общежитий) работает на едином неизменяемом образе, где каждый агент определяется только примонтированным томом данных. После третьего десятка инструментов JSON-схемы в префиксе обгоняют системный промпт: у CRM-админа 331 инструмент весит 302 КБ (около 75 000 токенов на запрос), а сужение профиля и отключение лишнего рассуждения сжимают промпт с 15 266 до 1 424 токенов и ускоряют ответ с 17 до 7,7 секунды. Главная архитектурная развилка любого агента — граница между детерминированным кодом и генерацией текста: там, где цена ошибки высока, модель получает только вычисленный JSON-контракт фактов и не имеет права выдумать ни одного числа.

33 ИИ-агента на одном образе без правок ядра: где проходит граница между кодом и моделью
Hamidun News.
Слушать статью
Паспорт материала и цифры
ПараметрДанные
Главный редактор
Масштаб флота33 автономных агента на едином неизменяемом образе без форков ядра
Экономия на профиле инструментовсжатие префикса с 15 266 до 1 424 токенов и снижение медианы ответа с 17 до 7,7 с
Потолок JSON-схем302 110 байт (~75 000 токенов) при 331 подключённом инструменте у внутреннего CRM-агента
Точность инженерного контурарасхождение расчётной площади с эталонным чертежом Revit 267,46 против 267,20 м² на 20 помещениях
  • Масштаб флота: 33 автономных агента на едином неизменяемом образе без форков ядра
  • Экономия на профиле инструментов: сжатие префикса с 15 266 до 1 424 токенов и снижение медианы ответа с 17 до 7,7 с
  • Потолок JSON-схем: 302 110 байт (~75 000 токенов) при 331 подключённом инструменте у внутреннего CRM-агента
  • Точность инженерного контура: расхождение расчётной площади с эталонным чертежом Revit 267,46 против 267,20 м² на 20 помещениях

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

За год я развернул 33 агента на едином движке без единого форка базового репозитория. Код рантайма неизменяем, а индивидуальность бота живёт исключительно в примонтированном томе данных: файле личности `SOUL.md`, декларативном `config.yaml`, папке прикладных плагинов `plugins/`, базе состояния `state.db` на SQLite с FTS5 и расписаниях `cron/jobs.json`. При переезде со старого фреймворка 233 из 558 диалоговых сессий мигрировали обычным копированием каталога: память и характер принадлежат данным, а не движку.

Почему схемы инструментов сжигают контекст быстрее системного промпта?

Инструментальный замер по боевым контейнерам показал, что служебный «налог движка» составляет максимум 8 656 символов (~2,2 тыс. токенов), а при отключённой памяти и навыках на моделях Gemini падает до 5 000 символов. Дата в системном префиксе фиксируется с точностью до суток, а не до секунд — иначе каждый запрос сбрасывает префиксный кэш провайдера.

Настоящий взрыв происходит в блоке объявления функций. У бота конференции на 3 инструмента уходит 1 995 байт JSON-схем при промпте 10 687 символов. У отраслевого агента металлургии на 36 инструментов схемы занимают 59 121 байт. А у нашего CRM-администратора с 331 подключённым инструментом объём JSON-схем достигает 302 110 байт — около 75 000 токенов в префиксе каждого хода. Когда в языковом тьюторе мы урезали тулсет под конкретный канал, выключили стартовую пробу окружения и убрали лишний шаг размышлений, входной промпт сжался с 15 266 до 1 424 токенов, а медиана ответа упала с 17 до 7,7 секунды.

Где проводить границу между расчётом в коде и генерацией модели?

Даже в семейном боте с длинным файлом личности (до 20–23 тыс. токенов) арифметику доверять LLM нельзя: когда учёт бонусных звёзд оставили правилом в тексте промпта, три источника данных быстро разъехались — в балансе лежало 461, сумма по массиву давала 466, а журнал транзакций показывал 457. Правило в промпте — это пожелание; правило в коде — гарантия.

В шахматном тренажёре модель вообще не оценивает позицию сама. Два процесса Stockfish (один играет с бюджетом узлов `nodes` и вероятностью детского зевка `blunder_p`, второй анализирует ход) вместе с четырьмя детекторами на `python-chess` (висящие фигуры, вилки с учётом разменной стоимости, связки `pin-aware` и мат в 1 ход) собирают жёсткий JSON-контракт:

```json { "played_move": {"san": "Фg4"}, "verdict": {"label": "blunder", "win_before_pct": 55.0, "win_after_pct": 4.0}, "best_move": {"san": "Фe2", "line_san": ["Фe2", "d6", "d3", "Сe6"]}, "punishment_line_san": ["Кxg4"], "tactics_against_student": [ {"motif": "hanging_piece", "fact_ru": "ферзь на g4 под боем коня f6 без защиты"} ] } ```

Модель переводит этот пакет в реплику тренера, а на выходе 342 строки регулярок сверяют каждое поле и ход со списком `allowlist`, отсекая выдуманные координаты вроде `Qz9` и кириллические омоглифы.

Как работают промышленные агенты без RAG и какие уязвимости возникают

на стыке плагинов?

В проектах компоновки модульных зданий из блок-контейнеров и расчёта подстанций 2КТП-400/10/0,4 кВ векторного RAG нет вообще — строительные нормы (СП, ГОСТ, ПУЭ) и лестницы номиналов зашиты в функции Python. По запросу «общежитие на 42 человека, по трое в комнате» геометрия пролётов, калибровка площадей (сэндвич-панели 100 мм, перегородки 80 мм), генерация листа А3, экспорт в DXF для AutoCAD и проверка норм (от 6 м² на человека, коридор от 1400 мм) выполняются кодом за 40 секунд вместо трёх дней в Revit. На эталоне из 20 помещений код дал 267,46 м² против 267,20 м² у архитектора и поймал ошибку в ручном чертеже (4,17 м² на человека при норме 6 м²).

В энергетике статус `PASS` ставится только при проверке формулой (вводной автомат 1000 А при токе трансформатора 909 А), а полевые замеры (заземление до 4 Ом, ОПН) принудительно получают статус `INFO`.

Самые тонкие сбои происходят, когда модель пытается «обойти» валидатор. Получив `FAIL` по перегрузке трансформатора на двух линиях по 600 А, модель сама снизила токи до 2×385 А (срезав нагрузку с 1200 до 770 А), раздробила их на `200 + 200 + 185 + 185 А` и получила `OK`. После этого мы ввели сверку каждого параметра с исходным ТЗ. А случай на демо-стенде, где бот со скан-копией ТЗ сам создал `venv`, поставил `pymupdf` и отрендерил 13 страниц в PNG, научил закрывать `terminal`, `code_execution`, `delegation` и профили `cron`.

Эти инварианты легли в основу [Nomad AI](https://nomadnet.ai) и рантайма [agent.nomadnet.ai](https://agent.nomadnet.ai). Практика сборки таких систем доступна в [Hamidun Academy](https://academy.hamidun.com) (72-часовой триал), а 370+ скиллов — в [Vibe Club](https://hamidun.com/club).

Сюжет

Вопросы и ответы по материалу

Почему схемы инструментов сжигают контекст быстрее системного промпта?

Инструментальный замер по боевым контейнерам показал, что служебный «налог движка» составляет максимум 8 656 символов (~2,2 тыс. токенов), а при отключённой памяти и навыках на моделях Gemini падает до 5 000 символов. Дата в системном префиксе фиксируется с точностью до суток, а не до секунд — иначе каждый запрос сбрасывает префиксный кэш провайдера. Настоящий взрыв происходит в блоке объявления функций. У бота конференции на 3 инструмента уходит 1 995 байт JSON-схем при промпте 10 687 символов. У отраслевого агента металлургии на 36 инструментов схемы занимают 59 121 байт.

Где проводить границу между расчётом в коде и генерацией модели?

Даже в семейном боте с длинным файлом личности (до 20–23 тыс. токенов) арифметику доверять LLM нельзя: когда учёт бонусных звёзд оставили правилом в тексте промпта, три источника данных быстро разъехались — в балансе лежало 461, сумма по массиву давала 466, а журнал транзакций показывал 457. Правило в промпте — это пожелание; правило в коде — гарантия. В шахматном тренажёре модель вообще не оценивает позицию сама. Два процесса Stockfish (один играет с бюджетом узлов `nodes` и вероятностью детского зевка `blunder_p`, второй анализирует ход) вместе с четырьмя детекторами на `

Как работают промышленные агенты без RAG и какие уязвимости возникают на стыке плагинов?

В проектах компоновки модульных зданий из блок-контейнеров и расчёта подстанций 2КТП-400/10/0,4 кВ векторного RAG нет вообще — строительные нормы (СП, ГОСТ, ПУЭ) и лестницы номиналов зашиты в функции Python. По запросу «общежитие на 42 человека, по трое в комнате» геометрия пролётов, калибровка площадей (сэндвич-панели 100 мм, перегородки 80 мм), генерация листа А3, экспорт в DXF для AutoCAD и проверка норм (от 6 м² на человека, коридор от 1400 мм) выполняются кодом за 40 секунд вместо трёх дней в Revit. На эталоне из 20 помещений код дал 267,46 м² против 267,20 м² у архите

ЖХ
Жемал Хамидун — CPO Alpina Digital, продакт-менеджер AlpinaGPT. Делает AI-продукты с 2019 года. Hamidun News — pet project, который вырос в production-агрегатор с 6000+ читателей.
✦ Практика · Hamidun Academy

Соберите рабочего ИИ-агента или сервис своими руками без ручного кода

В Академии Жемала Хамидуна (academy.hamidun.com) открыт бесплатный 72-часовой тест-драйв: интерактивные скетч-уроки по Claude Code и Cursor, живой Tech Radar и готовые шаблоны агентов.

Открыть 72ч бесплатный доступ →Интенсив по Вайб-кодингу
Что вы думаете?
Загружаем комментарии…