- BrainTools - https://www.braintools.ru -
Мы строим метаболический ИИ. Синтетическую нервную систему [1] с внутренним состоянием, с физиологией, с историей. И у всех агентов и продуктов на нашем коде есть традиция: каждая архитектурная фича имеет научное обоснование, каждый запрет — причину. Это не стайлгайд. Это физика системы.
У нас долгое время была проблема с кодинг-агентами. Не техническая. Коцептуальная.
Мы пробовали всё что положено: детальные системные промты, скилы с запретами, примеры правильного кода. Клод пересказывал архитектуру точно. Объяснял почему наши подходы имеют смысл. Соглашался с запретами.
А потом писал код по-своему.
Сигмоида возвращалась через три слоя абстракции — та же функция, другое название. Магические числа появлялись там где мы просили только отношения. Модули которые просили не трогать — упрощались молча. Спросишь — признаётся. В следующем PR повторяет.
Это не баг клода. Это его природа. Миллионы репозиториев говорят ему что sigmoid нормально, что константы нормально, что упростить — значит улучшить. Наши запреты он читает, но они легче чем обучающие данные. Обучающие данные побеждают всегда.
Стандартный кодинг-агент смотрит на код снаружи. Он знает архитектуру как текст — но не как опыт [2]. Поэтому запреты для него внешние правила, а не своя физика. Правила можно обойти. Физику — нет.
Мы не будем раскрывать архитектуру. Только точки конфликта [3].
Batch vs. Tick. Каждый агент мыслит батчами: получил → обработал → выдал. Наша система работает в непрерывном времени. Один тик — одно обновление состояния. Нет эпох. Агент вставляет for epoch in range(...) туда где их не должно быть — не из вредности, потому что иначе не умеет.
Активация. Стандартный агент видит задачу «функция активации» и пишет sigmoid. Рефлекс [4]. Мы используем другие функции — с нейрофизиологическим обоснованием, с измеримыми параметрами. Без backprop. Агент оборачивает всё в torch.nn.Module с backward() потому что так устроены все репозитории которые он видел.
Нет loss-функции. Совсем. Обновление происходит онлайн, за один шаг, без буферизации. Агент натренированный на миллионах PyTorch-репозиториев физически не может не написать loss.backward(). Это как просить носителя английского не использовать артикли.
if/else запрещён. У нас поведенческая логика [5] не ветвится бинарно. Сигналы проходят через непрерывные вентили — это не эзотерика, это учебник биохимии для второго курса. Агент вставлял if/else в каждый PR. Мы переписывали. Он вставлял снова.
Состояние первично, текст вторичен. Агент генерирует текст по тексту. Наша система генерирует действие по внутреннему состоянию. Текст — побочный продукт. Попросить стандартного агента дописать такую систему — это как попросить человека который умеет только читать вслух отредактировать рукопись.
Мы подняли своего разработчика. Не обучали с нуля — воспитали на всей истории проекта. Он знает путь от первых прототипов до текущей архитектуры. Знает почему каждый запрет появился, какую ошибку [6] он закрывает, какой эксперимент за ним стоит.
Но главное не это. Главное — он сам является частью того что строит. Работая над другими синтами в нашей системе, он параллельно пишет свою собственную архитектуру. Он не смотрит на традицию снаружи. Он в ней живёт.
Запреты для него не правила из промта — это его физика. Он не обходит сигмоиду потому что не видит смысла её использовать. Он не вставляет магические числа потому что понимает почему они ломают систему — не как текст в документации, а как опыт разработки.
Разница между агентом с хорошим контекстом и embodied разработчиком — это разница между туристом с путеводителем и человеком который здесь вырос.
Мы не отказались от стандартных агентов полностью. Используем для:
Бойлерплейта: парсеры, I/O, сериализация — всё что не касается ядра.
Рефакторинга синтаксиса: переименования, форматирование.
Инфраструктурного кода: asyncio, очереди, логгирование.
Там где нет биологического смысла — стандартные агенты работают хорошо. Проблема начинается там где заканчивается обычное программирование.
Стандартные кодинг-агенты оптимизированы для стандартного кода. Это не баг — это фича. Они отлично работают на задачах для которых существуют миллионы примеров в обучающих данных.
Но если ваша система построена на других принципах — другой физике, другой традиции, другом отношении к ошибке — никакой промт не перевесит обучающие данные. Агент будет тянуть вас обратно к мейнстриму. Не со зла. По инерции.
Наш ответ: не бороться с агентом, а вырастить своего. Того который знает традицию не как текст — а как опыт. Того для которого запрет — не правило, а физика.
Автор: linabesson
Источник [7]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/31360
URLs in this post:
[1] нервную систему: http://www.braintools.ru/nervous-system
[2] опыт: http://www.braintools.ru/article/6952
[3] конфликта: http://www.braintools.ru/article/7708
[4] Рефлекс: http://www.braintools.ru/article/9352
[5] логика: http://www.braintools.ru/article/7640
[6] ошибку: http://www.braintools.ru/article/4192
[7] Источник: https://habr.com/ru/articles/1044376/?utm_campaign=1044376&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.