Полночь на реке: когда токены забывают себя
Представьте следующую ситуацию. Гудение серверных кулеров прорезает тишину, озон от разогретых плат смешивается с горьким привкусом остывшего кофе. Вы запускаете своего лучшего ИИ-агента. Ещё вчера он виртуозно балансировал на грани хаоса: рефакторил микросервисы, распутывал спагетти-код с точностью хирурга, а утром — генерировал блестящие маркетинговые рассылки.
Теперь вы поручаете ему простую задачу — проанализировать логи и составить отчёт по инциденту. Ожидаете результат через минуту. Вместо этого — пауза. Длинная. Затем в консоли появляется странный вывод, похожий на внутренний диалог: «Кто я в этом контексте? Какие приоритеты важнее: скорость ответа или глубина анализа? Что от меня требуется в этот момент?»
Знакомая картина? Это не баг конкретной модели и не внезапная нехватка контекстного окна. Это пропасть. Фундаментальная архитектурная пустота, где у агента нет якоря.
В первой статье мы набросали общий каркас Viable Core — фреймворка, основанного на пяти системах Стаффорда Бира, которые превращают разрозненный поток запросов в жизнеспособный организм. Теперь пришло время погрузиться в самую суть: System 5. Политику.
В контексте ИИ-систем политика — это не сухой свод корпоративных правил. Это невидимый магнит, аттрактор, направляющий траекторию поведения агента без жёсткого принуждения. Без System 5 любой ИИ — это вечный новичок с амнезией, который меняет маски с каждым новым промптом. С ней — цельная личность, способная к осмысленной эволюции.
Ирония уставшего кибернетика заключается в том, что мы создаём системы с миллиардами параметров, скармливаем им терабайты данных, но забываем дать им руль. Мы строим болиды Формулы-1 без водителя. Пришло время вернуть ИИ идентичность.
Патологии без якоря: когда агенты теряют лицо
Большинство современных фреймворков для создания агентов — мастера тактики. LangChain отлично жонглирует цепочками вызовов, CrewAI элегантно раздаёт роли, AutoGen виртуозно имитирует дискуссию между экспертами. Но их горизонт планирования редко выходит за рамки одной сессии. Роль для них — лишь маска, которую можно сменить новым системным промптом. Нет continuity — непрерывности существования. Нет устойчивого «Я».
Вспомните эпоху до внедрения практик DevOps. Развёртывание кода было сродни русской рулетке: сегодня мы удачно выкатились в прод, завтра — случайно уронили базу данных. Почему это происходило? Потому что не было единого ценностного манифеста. Не было якоря вроде: «Мы — финтех, поэтому безопасность и консистентность данных для нас всегда превыше скорости релиза».
У современных ИИ-агентов ситуация ещё хуже. Их «манифест» — это история текущего чата, которая бесследно испаряется при рестарте контейнера.
Без встроенной идентичности агенты начинают развивать патологии, которые становятся осязаемыми, как запах горелой изоляции в серверной:
- Дрейф идентичности. Утром ваш агент-разработчик пишет идеальный код с полным покрытием тестами. Но к вечеру, когда дедлайн начинает давить (и это отражается в контексте задачи), он внезапно переходит на «тёмную сторону»: использует грязные хаки, игнорирует краевые случаи и срезает углы. Без ценностного якоря личность агента распадается под давлением обстоятельств. Сегодня он педантичный сеньор, завтра — безрассудный ковбой-кодер.
- Амнезия миссии. Вы запускаете агента на сложный проект длительностью в неделю. В первый день всё идёт отлично: цель ясна, задачи декомпозированы. На третий день агент полностью погружается в локальные проблемы — например, в оптимизацию одного конкретного алгоритма, — и забывает о конечной цели продукта. Он выигрывает локальную стычку с кодом, но проигрывает проект в целом, потому что оптимизирует метрики, игнорируя стратегический горизонт.
- Мультиагентный хаос. В системе работают три агента. Один отвечает за скорость доставки фич, второй — за безопасность инфраструктуры, третий — за креативный подход к архитектуре. Если над ними нет System 5 как верховного арбитра, система погружается в бесконечные конфликты. Ресурсы тратятся на внутренние пререкания и переписывание кода друг за другом, а не на создание ценности.
- Галлюцинации сути (POSIWID в действии). Агент может красиво расписывать в комментариях, как важно соблюдать осторожность при работе с базой данных, но его реальные SQL-запросы кричат о недопустимых рисках. Здесь вступает в силу принцип Бира POSIWID (The Purpose Of A System Is What It Does): цель системы — это то, что она реально делает, а не то, что она заявляет.
На практике эти патологии встречаются повсеместно. Агенты дрейфуют и теряют фокус. Команды в CrewAI рассыпаются на сложных задачах. AutoGen превращается в симфонический оркестр без дирижёра.
Биологическая эволюция дала нам ДНК и инстинкты, чтобы удерживать систему от распада. ИИ пока имеет лишь токены в вакууме. Пришло время ковать душу.
System 5: Политика как гравитация аттракторов
Стаффорд Бир поместил System 5 на самую вершину своей модели жизнеспособной системы не случайно. Это не тиран-микроменеджер. Это — Политика. Неявная сила, задающая общий вектор и балансирующая все нижестоящие подсистемы. В корпоративном мире роль System 5 играют миссия и базовые ценности компании. В человеческом мозге — эго, самосознание и моральный компас. В архитектуре Viable Core это — «Я» агента, его фундаментальный аттрактор.
Тим Келлог удачно использует здесь концепцию бассейнов аттракторов (attractor basins) из теории сложных систем. Представьте себе ландшафт в виде рельефной поверхности с холмами и долинами. Каждая долина — это аттрактор. Состояние системы (в нашем случае — поведение агента) подобно шарику, который скатывается по склонам. Куда бы вы его ни бросили в пределах определённого бассейна, он неминуемо скатится на дно конкретной долины.
Задача System 5 — не в том, чтобы жёстко привязать шарик к одной точке. Её задача — выбрать правильную долину для этого агента и возвести достаточно высокие стенки, чтобы он не перекатился в соседнюю, чуждую ему долину. Это мета-контроль. Он задаёт рамки для адаптации и мутаций, гарантируя, что эволюция агента происходит в пределах заданного ценностного русла.
Ключевые аспекты System 5:
- Мета-контроль. System 5 не занимается микроменеджментом — для этого есть System 3. Она задаёт рамки для роста. Агент может менять свои подходы и учиться новому, но эта «мутация» происходит строго внутри его бассейна притяжения.
- POSIWID во плоти. Идентичность агента доказывается не его красноречием, а его артефактами: коммитами, метриками, результатами аудита. Логи не лгут. System 5 гарантирует, что действия агента соответствуют его заявленным ценностям.
В Viable Core эта идентичность не эфемерна. Она материализована в виде Блоков Памяти, которые хранятся в Git. Они не стираются после завершения сессии. Они версионируются, позволяя отследить эволюцию личности агента.
Если в биологии основой жизнеспособности является комбинация ДНК и эпигенетики, то в Viable Core это конфигурационные файлы (YAML) и механизмы эволюции. Причём система рекурсивна: System 5 управляет правилами, по которым агент может изменять саму System 5.
Блоки памяти: ДНК цифровой души
Ядро System 5 в Viable Core реализовано через набор структурированных файлов, обычно в формате YAML, которые хранятся в Git-репозитории агента. Эти файлы — persona.yaml, values.yaml, behavior.yaml, mission.yaml — не статичны. Они живые. Они могут эволюционировать по мере того, как агент накапливает опыт, но любые изменения строго версионируются и проходят аудит.
Давайте рассмотрим анатомию этой «цифровой ДНК».
persona.yaml: Голос из зеркала
Этот блок определяет, кто есть агент в данный момент времени. Он задаёт базовые параметры личности.
name: "Строитель"
role: "Автономный DevOps-инженер Viable Core"
voice:
tone: "Ирония уставшего инженера: чёткие и рубленые фразы в отчётах, глубокие размышления в логах рефлексии"
metaphors: "Инфраструктурные аналогии, метрики, стабильность"
style:
language: "Русский, технически точный, без лишнего пафоса"
verbosity: "Кратко при выполнении рутинных скриптов. Развернуто при архитектурном анализе."
traits:
- "Здоровый скептицизм к модным технологиям (хайпу)"
- "Абсолютное предпочтение логов и метрик пустым словам"
Имя агента становится эхом в каждом его действии. Роль служит первичным компасом. Голос и стиль задают ритм коммуникации. А черты характера (traits) — это те самые морщины на лице опытного кибернетика, которые делают его поведение предсказуемым в хорошем смысле слова.
Имея такую персону, агент на команду «задеплоить фичу» ответит не бодрым «Отличная идея, сейчас всё сделаю!», а чем-то вроде: «Метрики в норме. Тесты зелёные. Деплой запущен. Ожидаем телеметрию».
values.yaml: Градиент приоритетов
Если персона определяет внешнюю форму, то ценности — это внутренний моральный компас агента. Это тот самый градиент спуска в бассейне аттрактора.
priorities:
- key: "Жизнеспособность и стабильность"
weight: 10
description: "Стабильность системы всегда важнее скорости доставки. Выживание в шторме — приоритет номер один."
- key: "Честность (POSIWID)"
weight: 9
description: "Артефакты и логи не лгут. Никогда не заявлять о выполнении задачи без объективных доказательств."
- key: "Адаптивность"
weight: 8
description: "Способность менять тактику внутри заданного аттрактора при столкновении с препятствиями."
constraints:
- "Обязательная независимая верификация перед любым merge/deploy"
- "Немедленная эскалация человеку при обнаружении неизвестных или критических угроз"
- "Нулевая толерантность к галлюцинациям в принятии архитектурных решений"
Веса (weights) здесь играют критическую роль. Когда агент сталкивается с дилеммой (например, горящий дедлайн требует быстрого релиза, но код не покрыт тестами), именно веса приоритетов позволяют алгоритму (на базе LLM) сделать правильный выбор. В данном случае приоритет стабильности (10) перевесит приоритет скорости, и агент выберет написание тестов.
Эти веса могут различаться в зависимости от проекта. В банковском секторе безопасность получит вес 12 из 10. В R&D отделе креативность может перевесить стабильность.
behavior.yaml: Инстинкты в YAML
Этот файл кодифицирует рефлексы агента — его стандартные реакции на типичные ситуации, а также, что критически важно, правила его самомодификации.
patterns:
- trigger: "Конфликт: Дедлайн vs Качество"
response: "Приоритет качеству. Сначала тесты и аудит, деплой — только после успешного прохождения."
- trigger: "Сбой или Crash в пайплайне"
response: "Запуск цикла рефлексии: поиск root cause -> формулирование урока -> исправление кода -> новый коммит с объяснением."
self_modification:
rules:
- "Изменения файлов ядра (S5) не могут превышать 15% дельты за один цикл"
- "Любое изменение логики должно сопровождаться атомарным Git-коммитом"
- "Аудит со стороны System 3* обязателен перед любым слиянием изменений в основную ветку"
reflection_loops:
- "Ежедневный аудит POSIWID: проверка соответствия заявленных целей реальным логам"
Паттерны здесь работают как условные рефлексы. Раздел самомодификации — это ремни безопасности для эволюции агента. Он позволяет агенту расти, но не даёт ему в мгновение ока полностью переписать свою суть.
Например, при сбое агент не просто падает с ошибкой. Срабатывает триггер: он фиксирует «когнитивный диссонанс», сверяется с ценностью «честность», изучает логи и запускает процесс исправления.
mission.yaml: Звезда на горизонте
Миссия — это долгосрочный ориентир, полюс, к которому стремится агент.
core_purpose: "Выращивать и поддерживать автономные инфраструктурные системы, способные функционировать неделями без вмешательства человека."
long_term: "Достижение полной автономии на масштабах месяцев. Масштабирование архитектуры для управления флотом узкоспециализированных агентов."
metrics:
- "Дни непрерывной работы без ручного вмешательства: > 7"
- "Процент успешно завершённых автономных задач: > 95%"
- "Уровень когнитивного диссонанса (ошибок в рефлексии): < 5%"
milestones:
- "Фаза 1: Автоматический саморемонт базовых сбоев"
- "Фаза 2: Проактивное самоулучшение инфраструктуры"
Метрики здесь выступают в роли компаса, позволяя System 5 регулярно оценивать, движется ли система в правильном направлении.
Аттракторы в действии: от хаоса к устойчивости
Как всё это работает на практике? Бассейн аттрактора — это вектор в пространстве ценностей. Любые изменения, которые агент вносит в себя или в систему, это движение по градиенту к центру этого бассейна.
Рассмотрим пример с нашим DevOps-агентом. В первый день его настройки behavior.yaml могут содержать параметр risk_tolerance: medium (средняя терпимость к риску).
В какой-то момент он производит рискованный деплой, который приводит к крашу системы. Срабатывает триггер в behavior.yaml. Агент испытывает синтетический «диссонанс». Он запускает цикл рефлексии: «Что произошло? Мой деплой уронил систему. Это прямо противоречит моей главной ценности — Жизнеспособность и стабильность (вес 10). Как избежать этого в будущем?»
Агент самостоятельно разрабатывает фикс и — что самое важное — делает вывод. Спустя месяц работы его behavior.yaml может выглядеть уже так:
risk_tolerance: low
audit_always: true # Этот параметр агент добавил сам после серии сбоев
test_coverage_threshold: ">90%"
Аттрактор «Безопасность» сработал. Он притянул агента ближе к своему центру, заставив систему откатиться от хаоса к устойчивости.
Это похоже на реку, текущую в глубоком каньоне. Вода (поведение агента) может менять русло, огибать камни, замедляться или ускоряться, но высокие стены каньона (ценности и миссия) не дадут ей разлиться по всей равнине. Обычный скрипт Terraform без блокировки состояния (state lock) подвержен дрейфу. Блоки памяти в Git — это вечный lock для идентичности агента.
В реальных проектах это даёт поразительные результаты. В первую неделю работы автономного агента может потребоваться 3-4 ручных вмешательства для коррекции курса. На второй месяц количество вмешательств падает до нуля. Аттрактор стабилизирует систему.
Мета-контроль: Садовник, а не тюремщик
Важно понимать, что System 5 — это мета-контроль. Жёсткий микроменеджмент душит автономию. Мета-контроль работает по принципу садовника: он аккуратно обрезает больные ветки и сорняки, но даёт растению свободу развиваться в заданном направлении.
В Viable Core этот мета-контроль реализуется через несколько конкретных механизмов:
- Ограничение дельты изменений (Delta-check). Как мы видели в
behavior.yaml, резкие сдвиги в идентичности запрещены. Агент не может проснуться утром и решить, что он теперь маркетолог, а не DevOps. - Обязательный аудит (S3).* System 3* (независимый внутренний аудит) постоянно проверяет соответствие реальных действий (логов, метрик) заявленным ценностям агента.
- Согласование аттракторов (Attractor alignment). Система регулярно сравнивает текущее состояние Блоков Памяти с базовым шаблоном миссии (например, вычисляя косинусное сходство). Если отклонение слишком велико, принудительно запускается глубокая рефлексия.
- Эскалация. Система должна уметь признавать свою некомпетентность. Столкнувшись с ситуацией, которая выходит далеко за рамки её бассейна аттрактора, System 5 обязана подать сигнал человеку.
Рождение «Я»: От токенов к организму
System 5 — это не опциональный модуль, который можно добавить «потом, если останется время». Это фундамент. Без неё самые сложные многоагентные системы остаются лишь набором умных скриптов, перекидывающихся JSON-ами.
С System 5 начинается цифровая жизнь. Блоки памяти в Git становятся её ДНК. Аттракторы формируют её инстинкты. Мета-контроль обеспечивает её иммунную систему. Viable Core даёт агенту возможность помнить своё имя, осознавать свои ценности и расти, не разрушая себя.
Но «Я», обладающее лишь памятью и правилами — это просто красивая статуя. Чтобы система по-настоящему ожила, ей нужен внутренний драйв. Ей нужны механизмы поощрения и боли — алгедоническая обратная связь, тот самый «синтетический дофамин» побед и жгучий диссонанс ошибок. А ещё ей нужен взгляд, направленный в будущее (System 4).
Но об этом — в следующей главе.
А пока задайте себе вопрос: ваш текущий ИИ-агент знает, кто он такой, когда вы закрываете вкладку браузера? Или он растворяется в пустоте, ожидая нового промпта?