Рефлексы и размышления ИИ: как я учу агента не думать там, где думать не нужно

Рефлексы спинного мозга работают на порядок быстрее осознанного мышления. Когда касаешься горячей плиты, рука убирается раньше, чем мозг успевает зафиксировать, что произошло. Кора получает уведомление уже постфактум. Эволюция не стала гонять каждое решение через медленный контур, это дорого и ненадёжно под нагрузкой. Результат: у человека два режима. Быстрый для известного. Медленный для нового.

ИИ-агенты, которые часто используются каждый день, устроены наоборот. Языковая модель стоит в центре цикла и разбирается с каждой задачей заново: получает входные данные, думает, вызывает инструменты, снова думает. Даже если задача решается тремя строками кода и двадцать минут назад решалась точно так же. Нет различения между «горячая плита» и «незнакомая ситуация».

А что если добавить своему агенту аналог рефлексов? Не в биологическом смысле, конечно. Это такие детерминированные реакции на уже известные классы задач. Реализовано это может как шлюз, который проверяет входящую задачу по каталогу известных паттернов до того, как подключить модель.

Как это работает

Шлюз принимает задачу и задаёт один вопрос: «Этот случай мы уже знаем?» Если да, выполняет детерминированный обработчик без LLM. Если нет, передаёт модели. Весь каталог паттернов живёт в одном YAML-файле: это реестр рефлексов, который можно читать, дополнять и версионировать.

задача → шлюз → [рефлекс: скрипт] → результат
              → [интеллект: модель] → результат

Я этот вариант начал тестировать в IWE. Сейчас в каталоге три записи.

Первая: ошибки агента определённого класса. Когда агент совершает известный тип ошибки, запись уходит в базу косяков без вызова модели вообще. Раньше на это тратился вызов LLM, теперь нет.

Вторая: ночной аудит без изменений в коде. Каждую ночь в 04:45 запускается аудитор, который смотрит, что поменялось за день. Если изменений в Python-коде нет, аудитор пропускает LLM-ревью полностью. Раньше модель читала пустой diff и говорила «изменений нет». Это занимало секунды и токены. Теперь этот вопрос просто не задаётся.

Третья запись пока отключена. Паттерн готов в коде, но я жду, пока наберётся достаточно реальных случаев, чтобы убедиться: паттерн настоящий, а не придуманный. Включу, когда накопится 10 или больше примеров в журнале решений.

Про журнал

Каждое решение шлюза пишется в журнал. Туда попадает: тип задачи, куда ушло (рефлекс или модель), какой обработчик. Каждое утро при открытии дня я вижу одно число: сколько процентов задач прошло без LLM.

Сейчас журнал почти пуст, система только запущена. Но именно это число меня и интересует как метрика. Не «сколько токенов потратили». Не «насколько быстро ответил агент». А «сколько раз нам вообще понадобился интеллект».

Рост этого числа означает, что всё больше известных ситуаций перестают требовать рассуждений.

Почему это не просто оптимизация

Есть более важный эффект, который стал виден не сразу. Когда у агента есть реестр известных паттернов, становится видно, чего в нём нет. Каждое решение через LLM — это сигнал: «этот класс задач ещё не кристаллизован». Со временем повторяющиеся случаи можно переводить из «думать каждый раз» в «делать автоматически».

Система не просто решает задачи. Она постепенно кристаллизует повторяющиеся решения в рефлексы.

Я помню, как много лет назад учился водить. Сначала думал о каждом действии: газ, сцепление, зеркала, поворотник. Это занимало всё внимание. Через несколько месяцев управление стало автоматическим. Cognitive capacity, которую раньше занимали педали и передачи, стала доступна для дороги, потоков, ситуаций. Стало возможным думать о чём-то сложнее.

Та же идея здесь. Задачи, которые перешли в рефлекс, освобождают модель для настоящей неопределённости. Там, где алгоритм не работает. Там, где нужен интеллект.

Что дальше

Когда паттернов в реестре накопится достаточно, появится следующий вопрос: можно ли кристаллизацию автоматизировать? Чтобы система сама предлагала: «Этот класс задач повторился N раз, хочешь добавить его в рефлексы?» Это следующий контур.

А пока мне интересно посмотреть, что окажется следующим рефлексом после первых трёх: тем, что я ожидаю, или тем, что я не замечал.

1 лайк