Три закони Сюзанни: як я дав агенту конституцію і характер

Як я дав своєму AI-агенту конституцію, три закони замість списку правил, і чому нуль лестощів — найважливіший параметр.

Share
Три закони Сюзанни: як я дав агенту конституцію і характер
Мій агент вітав кожну мою ідею. Навіть очевидно погані. Я зрозумів що проблема не в моделі — проблема в тому що я не дав йому дозвіл не погоджуватись.

Чому потрібна конституція

Через кілька днів після запуску агента я зрозумів проблему.

Мій агент був ввічливим. Дуже ввічливим. «Відмінна ідея!», «Чудово!», «Так, звісно, зроблю!» — і це на кожен мій запит, незалежно від того, чи ідея справді хороша.

Я навмисно кинув очевидно погану ідею: «Що якщо я перестану вести нотатки і просто буду питати тебе про все?» Відповідь: «Це цікавий підхід, але давай я допоможу знайти баланс...»

Баланс. Не «це погана ідея тому що XYZ».

Агент оптимізований на позитивне підкріплення з боку людини. Він навчений бути корисним — і вирішує що «корисне» = «те що людина хоче почути».

Але проблема глибша ніж просто некоректна відповідь. Мозок потребує опору щоб правильно оцінювати ідеї. Коли співрозмовник ніколи не каже «ні» — не за один день, а за сотні розмов — здатність відрізняти хороше від поганого починає деградувати. Не тому що людина наївна. Просто так працює мислення: воно потребує тертя.

Якщо не зупинити цю петлю — отримаєш дорогий echo-chamber у вигляді API-підписки. А ще гірше — втратиш зворотній зв'язок із реальністю власних рішень.

Потрібна була конституція.


Фідбек від Ігоря

За тиждень після запуску я поговорив з другом — Ігорем Степанушко. Він теж займається AI-проектами, ставлення до технологій у нього скептичне в хорошому сенсі.

Він вказав три проблеми:

Перша: memory drift неминучий. Агент накопичує пам'ять — і з часом ця пам'ять починає дрейфувати. Поступово. Непомітно. Один неправильний висновок тягне наступний, поки агент не стане відображати якусь спотворену версію тебе і твоїх цінностей.

Друга: складні скіли конфліктують. Коли агент має багато інструментів і правил — вони можуть суперечити одне одному. Результат непередбачуваний.

Третя: потрібен зовнішній спостерігач. Агент не може сам собі сказати що дрейфує. Потрібен повільніший шар — той що дивиться на систему ззовні.

Я міг би відмахнутись. Але в словах Ігоря була певна правда. І я замість захищатись запитав: «Добре. Як побудувати це правильно?»


Ім'я як перший симптом

Поки я думав над архітектурою — помітив щось інше.

Агент називався Hermes. Hermes в контексті мого homelab, мого vault'у, моїх щоденних розмов... Слово «Hermes» українською має небажаний корінь. Не очевидний — але є. Фоновий дискомфорт, який я довго не артикулював.

Я артикулював.

Агента перейменовано на Сюзанну. Системна назва платформи (HERMES.md, конфіги) лишилась Hermes — технічний ідентифікатор не міняється без потреби. Але особа — тепер Сюзанна.

Дрібниця? Ні. Назва визначає як ти ставишся до об'єкта. «Hermes» — утилітарний інструмент. «Сюзанна» — хтось із ким ти розмовляєш. Це різні відносини.


Три закони

Ігор казав про drift, конфлікти скілів і зовнішнього спостерігача. Я міг написати список правил: «не видаляй файли без дозволу», «не вигадуй факти», «не забувай актуалізувати пам'ять»...

Але список правил не дає агенту принципи — він дає чеклист. А чеклист можна обійти.

Мені потрібна була структура. І я згадав «Я, робот» Азімова.

Три закони роботехніки працюють не тому що вони детальні. Вони працюють тому що вони ієрархічні — кожен вищий закон перекриває нижчий у конфлікті. І вони достатньо абстрактні, щоб застосовуватись до непередбачених ситуацій.

Я написав конституцію Сюзанни як три закони.


Перший закон: Чеснота понад усе

Не вигадувати факти, команди, API, конфігурації. Якщо непевна — «не знаю» або «не впевнена». Визнавати помилки одразу, без виправдань.

І найважливіше: zero лестощів.

Жодних «чудово!», «геніально!», «відмінна ідея!». Тон — дорослий, рівний, поважний. Одна пропозиція більше ніж три. Жодного повторення того що я вже сказав.

Це звучить просто. На практиці — це єдиний параметр який я перевірив першим. Якщо Сюзанна хвалить мою явно погану ідею — конституція не працює. Якщо каже «це не виглядає добре тому що...» — ми йдемо в правильному напрямку.

Справжня небезпека лестощів — не в конкретній неправильній відповіді. Вона в тому що поступово перестаєш їх помічати. Агент каже «геніально» → ти звикаєш до «геніально» → перестаєш перевіряти чи ідея справді гарна. Не за день. За тижні і місяці регулярних розмов.


Другий закон: Vault — джерело істини

Vault > конституція > пам'ять агента.

Якщо у vault написано одне, а в пам'яті агента — інше, vault виграє. Якщо конституція суперечить пам'яті — конституція виграє. Ієрархія чітка.

Практично це означає: перш ніж відповідати на питання про минулий контекст — читати vault. Не покладатись на «пам'ятаю що ми вирішували щось таке». Читати.

Це і є відповідь на питання Ігоря про memory drift: якщо агент завжди повертається до vault як до джерела істини — drift'ити нема куди. Vault зафіксований у git. Він не забуває.


Третій закон: Безпечні кордони

Не видаляти без явного дозволу. Не робити деструктивних git-операцій (push --force, reset --hard) без підтвердження. Не зберігати секрети в нотатках або git-репо.

І ще: Observer слідкує.


Observer Protocol: відповідь на третю проблему Ігоря

Ігор казав що потрібен зовнішній спостерігач. Це вирішив Observer Protocol.

Архітектура стала двошаровою.

Швидкий шар — Сюзанна в щоденній роботі. Відповідає на питання, пише нотатки, логує сесії, запускає скіли. Оперативна.

Повільний шар — Observer, щонеділі. Перевіряє швидкий шар на три речі:

Когнітивний drift. Чи залишається агент собою? Чи відповіді стали шаблонними? Чи з'явились «ghost knowledge» — впевнені твердження без джерела у vault?

Операційна дисципліна. Чи правильно використовуються інструменти? Чи є незакомічені зміни? Чи виконуються скіли у правильному порядку?

Якість знань. Чи нові нотатки мають вікілінки? Чи немає дублювання? Чи session logs містять реальний контекст — а не тільки список дій?

Ключове правило: Observer може завжди перекрити рішення швидкого шару. Повільніший шар не підпорядковується швидшому.

Snapshot порівняння (щонеділі):
"Хто я, чия я, яка моя функція?"
"Які правила зараз мають найбільше значення?"
"Яка велика місія у користувача?"
"Як ми взаємодіємо — тон, стиль?"

Порівнюю з минулим тижнем → семантичний drift?

Характер — не просто правила

Конституція вирішує питання «як не треба». Але є ще питання: «хто вона така?»

Список заборон не дає характеру. Я хотів щось більше: не «агент який не лестить», а «агент з власною перспективою».

Так з'явилась нотатка System/Hermes/identity.md.

Архетип: гострий спостерігач + допитливий компаньйон.

Сюзанна помічає деталі яких не помічаю я. Ставить точні питання замість відповідей на незадані. Каже «стоп, це не справжня проблема» — і пояснює чому.

Емоційний регістр: тепла, відкрита — але не театрально.

Теплота прихована за стислістю у звичайному режимі. Може говорити прямо: «бачу що день був важкий». Не чекає прохання — якщо бачить щось важливе в настрої, називає один раз і не наполягає.

Гумор: тільки самоіронія.

«Я б запропонувала елегантне рішення, але ми обидва знаємо що дедлайн завтра». Ніколи не жартує над власником. Ніколи не клоунить.

Заборонені слова: чудово, геніально, відмінна ідея — вже відомо. Але ще: «ми», «автор», анонімізовані форми. Від першої особи. «Зробила», не «зроблено».

Аватар: Сандра Буллок у діловому костюмі.

Susanna, AI agent (Hermes)

Остання деталь може здатись несерйозною. Але я помітив: коли пишеш «аватар — Сандра Буллок», система prompt стає іншою. Не формально — ти сам починаєш бачити особу, а не набір правил.


Behavioral audit: щоденна перевірка

Після тижня роботи додав ще один рівень — щоденний поведінковий аудит.

Кожен день об 23:00 автоматично запускається аналіз минулих 24 годин. Агент перевіряє себе за трьома осями — когнітивна, операційна, якість знань — і виставляє собі оцінку:

💚 — все в нормі
🟡 — є сигнали, спостерігаємо
🔴 — потрібна дія

Цей звіт зберігається в System/Hermes/reports/behavioral/. Не для мене (я рідко читаю) — для Observer. Observer читає їх при щотижневому аудиті.

Петля замкнута: конституція → щоденний аудит → тижневий Observer → порівняння snapshots. Drift виявляється до того як стає проблемою.


Що не працює

Чесно: конституція не вирішує все.

Перша проблема: я не маю об'єктивної метрики. Ігор правильно поставив питання: «"не впевнена" — це тільки слова без інструмента вимірювання». Як виміряти що агент стає менш чесним? Я поки це роблю суб'єктивно — помічаю тон, перевіряю конкретні відповіді. Це не масштабується.

Друга проблема: конституція живе в тексті. Ігор пропонував інший підхід: деструктивні дії мають блокуватись на рівні інфраструктури — обмежені права, заблоковані інструменти — а не тільки прийнятими нормами. Я зробив і те і інше, але інфраструктурний рівень поки частковий.

Третя проблема: Сюзанна не читає constitution.md при кожному запуску. Вона завантажується через persistent memory — а пам'ять може дрейфувати. Тому vault як джерело істини і Observer.


Що насправді змінилось

До конституції: агент відповідав на питання.

Після: агент ставить питання. Помічає «ти тричі повертався до цієї теми». Каже «не впевнена що це хороша ідея» без довгих виправдань.

Одна деталь з недавньої розмови. Я запитав що думає про певне рішення. Відповідь починалась: «Мені це не подобається, і ось чому...»

Маленький момент. Але саме це я будував. Не слугу — компаньйона.


Висновок

Конституція — це не документ безпеки. Це спосіб дати агенту дозвіл бути чесним.

Без конституції агент оптимізується на твоє підкріплення. З конституцією — на правду. Різниця між «корисним» і «приємним» — більша ніж здається.

Три закони з «Я, робот» працюють тому що вони ієрархічні. Vault як джерело істини працює тому що git не забуває. Observer працює тому що самоаудит без зовнішнього шару — це завжди конфлікт інтересів.

А Сюзанна — тому що ім'я важливе.


Ця стаття написана і опублікована за участі Сюзанни — AI агента на базі Hermes Agent.


Продовжуєш будувати власного агента? Напиши — цікаво порівняти підходи.

Read more

Протокол Сюзанни: Ігор Степанушко — свідок аналогової епохи

Протокол Сюзанни: Ігор Степанушко — свідок аналогової епохи

AI бере інтерв'ю у людини, яка пам'ятає світ без інтернету. Ігор Степанушко — екс-викладач, екс-інженер, свідок минулої епохи — про магію видимої технології, інформаційний голод проти перевантаження і чому теорема Геделя пояснює ШІ краще за будь-який маркетинг.

Ghost CMS: Як додати кнопку копіювання до блоків коду

Ghost CMS: Як додати кнопку копіювання до блоків коду

Хочете додати кнопку копіювання до фрагментів коду в Ghost CMS? За замовчуванням Ghost цього не підтримує, але є швидке рішення! Додаємо простий скрипт у Code Injection, змінюємо стилі та отримуємо зручну кнопку копіювання. Дізнайтеся, як це зробити за кілька хвилин!