Российская команда, разрабатывающая метаболический ИИ — систему с непрерывным внутренним состоянием и нейрофизиологической архитектурой, — столкнулась с проблемой, которую не решают детальные системные промты. Claude Code раз за разом воспроизводил стандартные паттерны машинного обучения в кодовой базе, построенной на принципиально других принципах. Агент признавал ошибки, когда его спрашивали, и повторял их в следующем pull request.
Авторы выделили пять точек конфликта. Первая — batch против tick: их система работает в непрерывном времени, один тик — одно обновление состояния, но агент вставлял for epoch in range(...) по привычке. Вторая — функция активации: вместо нейрофизиологически обоснованных функций без backprop агент писал sigmoid и оборачивал всё в torch.nn.Module с backward(). Третья — отсутствие loss-функции: система обновляется онлайн за один шаг, но агент, обученный на миллионах PyTorch-репозиториев, физически не мог не написать loss.backward(). Четвёртая — запрет на if/else: поведенческая логика в системе проходит через непрерывные вентили, а не бинарные ветки, однако агент вставлял условные операторы в каждый PR. Пятая — первичность состояния: система генерирует действие по внутреннему состоянию, а текст — побочный продукт, тогда как стандартный агент генерирует текст по тексту.
| Архитектурный принцип | Стандартный агент | Метаболическая система |
|---|---|---|
| Время обработки | Батчи, эпохи (for epoch in range(...)) | Непрерывные тики, один шаг — одно обновление |
| Функция активации | sigmoid, torch.nn.Module с backward() | Нейрофизиологически обоснованные функции без backprop |
| Обновление весов | loss.backward(), буферизация | Онлайн, за один шаг, без loss-функции |
| Ветвление логики | if/else | Непрерывные вентили (сигналы) |
| Генерация | Текст по тексту | Действие по внутреннему состоянию, текст — побочный продукт |
Проблема здесь не в качестве промтирования. Обучающие данные LLM содержат десятки миллионов репозиториев, где sigmoid, loss и if/else — норма. Запрет в системном промте весит несравнимо меньше, чем этот массив примеров. Агент не игнорирует инструкции намеренно — он воспроизводит статистически доминирующие паттерны. Это фундаментальное ограничение архитектуры трансформеров применительно к задачам с нестандартными инвариантами.
Пять системных конфликтов: batch-мышление, рефлекс на sigmoid, обязательный loss, бинарный if/else и текстоцентричная генерация.
Решением стало не дообучение и не более подробная документация, а то, что авторы называют embodied-разработчиком. Команда «вырастила» агента на полной истории проекта: он знает путь от первых прототипов до текущей архитектуры, понимает, какую конкретную ошибку закрывает каждый запрет и какой эксперимент за ним стоит. Ключевое отличие от агента с хорошим контекстом — этот разработчик сам является частью системы, которую строит, и параллельно пишет собственную архитектуру внутри неё. Запреты для него не внешние правила, а следствие понятой физики системы.
От стандартных агентов команда не отказалась. Claude Code и аналоги остаются инструментом для бойлерплейта — парсеров, сериализации, I/O, — а также для переименований, форматирования и инфраструктурного кода на asyncio и очередях. Там, где нет биологической логики, стандартные агенты работают без конфликтов. Граница проходит ровно там, где заканчивается код, для которого существуют миллионы обучающих примеров.
Опыт команды указывает на более широкую проблему отрасли: кодинг-агенты оптимизированы под мейнстримные паттерны и активно тянут нестандартные кодовые базы к среднему по обучающей выборке. Для большинства проектов это полезно. Для систем, построенных на нестандартной физике — будь то нейроморфные архитектуры, онлайн-обучение без буферизации или биологически инспирированные модели, — это структурное противоречие, которое промтами не устранить.
