Уже тогда было понятно, что одной моделью не обойтись. Роботу, как и человеку, нужны как минимум две системы по Канеману: быстрая (система-1), которая управляет роботом в реальном времени, и медленная умная (система-2), которая понимает задачу целиком и управляет стратегией. С тех пор так собирают почти все: Helix у Figure, GR00T N1 у Nvidia, Gemini Robotics у Google, π0.5 у Physical Intelligence - а Figure с Nvidia прямо ссылаются на Канемана
Я робототехникой (пока) серьезно не занимаюсь, но иногда развлекаюсь в свободное время. На этот раз купил на Озоне вот такую машинку - камера, ESP-32, wifi (~1800 рублей!) и собрал на ней следующий прототипчик:
- система 1: Depth Anything режет картинку на лево-центр-право, считает где свободнее, и сама рулит. Тупая и быстрая, отвечает ровно за одно - не убиться об мебель
- система 2 - это VALM: попробовал Gemini 2.5 Flash / Flash-Lite и локальный Qwen2.5-VL (7B, 4 бита, прямо на маке) - модель может оценить историю фото, работать с промптом, в котором описано что нужно сделать, обнаруживать сложные ситуации (застряли, наехали на провод и т.д.) и выдавать управляющие команды в виде JSON Structured Output
Промпт был типа такого:
Ты управляешь игрушечным двухколесным роботом-тележкой.
Найди желтый каток-асфальтоукладчик и подъедь к нему.
Старайся не съезжать с ковра и не заезжай под мебель.
Тележка едет, объезжает препятствия, ищет игрушку. Но в том же старом посте я жаловался на проблему VALM моделей - у них нет нормальной рефлексии. Когда робот запущен, он не может осознать глобальные проблемы, например, что он фатально застрял, сломался, неправильно настроен или выполнение задачи вообще потеряло смысл, как в рассказе Бредбери "Будет ласковый дождь"😰
Вот эту дырку я и попробовал закрыть. Поэтому добавил систему 3
Система 3 - это внешняя обвязка над первыми двумя, и за неё отвечает самая умная кодовая модель (у меня был Codex на gpt-5.5). Сама она не рулит, но раз в несколько минут она читает логи каждого тика, пересматривает сохранённые кадры и прикидывает, нормально ли шла поездка. Если что-то не так, лезет в код и промпты первых двух систем и переписывает их: чинит логику объезда, добавляет новые команды, меняет то, как ставится цель
Самый близкий аналог системы 3 - это психотерапевт. Он копается в том, что лежит под сиюминутными решениями: чинит внутренние механизмы и помогает поменять цели. Стратегию система 2 ещё успевает поправить на ходу, но переписать саму себя, свои рефлексы и слепые пятна ни она, ни система 1 не способны - это буквально граница их понимания мира. А третий слой спокойно читает всю историю, находит врождённые болячки (те фейлы, что повторяются из раза в раз) и переписывает нижний мозг. Может и цели переопределить - в том посте система 2 в шутку спрашивала "зачем я создан?", так вот теперь есть кому ответить
А ещё человеку, чтобы переписать свои базовые принципы и установки, нужны годы терапии (например, КПТ), и то без гарантий. А программу робота третий слой правит одним хопом
Пускать модель править саму себя сутками - идея опасная, поэтому сверху навешаны guardrails (то, что автор Ralph Loop назвал back pressure):
- менять разрешено только файлы из allowlist, прошивку и моторы трогать нельзя
- всё крутится в песочнице, до и после сверяются хеши файлов
- после каждой правки обязателен зелёный прогон тестов, а сами тесты лежат там, куда третий слой не дотянется - подкрутить их под себя, чтобы стало зелёно, у него не выйдет
- если в логах ничего не зацепило, он просто ничего не делает
Весь код выложил на гитхаб - там все три слоя и харнесс самоулучшения (всё навайбкожено, так что за качество не ручаюсь🤷♂️)