Не довіряйте ШІ-агентам

28 лютого 2026 р. · Gavriel Cohen

Коли ви працюєте з ШІ-агентами, до них слід ставитися як до ненадійних і потенційно зловмисних. Чи турбує вас prompt injection, спроба моделі вирватися з sandbox, чи щось, про що ще ніхто не подумав — яка б не була ваша модель загроз, ви не повинні довіряти агенту. Правильний підхід — це не кращі перевірки дозволів чи розумніші allowlist-и. Це архітектура, яка виходить з того, що агенти будуть поводитися неправильно, і обмежує шкоду, коли це станеться.

Саме на цьому принципі побудований NanoClaw.

Не довіряйте процесу

OpenClaw за замовчуванням працює безпосередньо на хост-машині. Є опціональний режим Docker sandbox, але він вимкнений з коробки, і більшість користувачів його ніколи не вмикають. Без нього безпека повністю покладається на перевірки на рівні застосунку: allowlist-и, запити підтвердження, набір «безпечних» команд. Ці перевірки базуються на неявній довірі до того, що агент не намагатиметься зробити щось погане. Щойно ви приймаєте думку, що агент потенційно зловмисний, стає очевидним, що блокувань на рівні застосунку недостатньо. Вони не забезпечують герметичну безпеку. Наполегливий або скомпрометований агент знайде способи їх обійти.

У NanoClaw контейнерна ізоляція є невід’ємною частиною архітектури. Кожен агент працює у власному контейнері — Docker або Apple Container на macOS. Контейнери є ефемерними: створюються заново для кожного виклику і знищуються після. Агент працює як непривілейований користувач і може бачити лише ті директорії, які були явно змонтовані. Межа контейнера забезпечується на рівні ОС.

Не довіряйте іншим агентам

Навіть коли sandbox OpenClaw увімкнений, усі агенти ділять один контейнер. У вас може бути один агент як персональний асистент, а інший — для роботи, у різних групах WhatsApp або каналах Telegram. Вони всі в одному середовищі, а це означає, що інформація може витікати між агентами, які мають доступ до різних даних.

Агенти не повинні довіряти один одному більше, ніж ви довіряєте їм. У NanoClaw кожен агент отримує власний контейнер, файлову систему та історію сесій Claude. Ваш персональний асистент не може бачити дані робочого агента, тому що вони працюють у повністю окремих sandbox-ах.

СПІЛЬНИЙ КОНТЕЙНЕР Персональний асистент Робочий агент Сімейна група Агент Спільна файлова система Усі облікові дані доступні Уся історія сесій видима Усі змонтовані дані спільні Усі агенти бачать все КОНТЕЙНЕР НА КОЖНОГО АГЕНТА Персональний асистент /data/personal власна сесія ro × Робочий агент /data/work власна сесія rw × Агент сімейної групи /data/family власна сесія ro Агенти ізольовані один від одного

Межа контейнера — це жорсткий рівень безпеки: агент не може вийти за неї незалежно від конфігурації. Поверх цього, allowlist монтування в ~/.config/nanoclaw/mount-allowlist.json працює як додатковий рівень захисту в глибину: він існує для того, щоб запобігти випадковому монтуванню користувачем чогось, що не повинно бути відкритим, а не для того, щоб завадити агенту вирватися. Чутливі шляхи (.ssh, .gnupg, .aws, .env, private_key, credentials) заблоковані за замовчуванням. Allowlist знаходиться за межами директорії проєкту, тому скомпрометований агент не може змінити власні дозволи. Код хост-застосунку монтується лише для читання, тому нічого з того, що зробить агент, не збережеться після знищення контейнера.

Людям у ваших групах також не варто довіряти. Неосновні групи за замовчуванням вважаються ненадійними. Інші групи та люди в них не можуть надсилати повідомлення в інші чати, планувати завдання для інших груп або переглядати дані інших груп. Будь-хто в групі може надіслати prompt injection, і модель безпеки це враховує.

Не довіряйте тому, що не можете прочитати

OpenClaw містить майже півмільйона рядків коду, 53 конфігураційні файли та понад 70 залежностей. Це руйнує базову передумову безпеки відкритого коду. У Chromium понад 35 мільйонів рядків, але ви довіряєте процесам рецензування Google. Більшість проєктів з відкритим кодом працюють навпаки: вони залишаються достатньо малими, щоб багато очей могли їх реально переглянути. 400 000 рядків OpenClaw ніхто не переглядав. Їх написали за тижні без належного процесу рецензування. Складність — це місце, де ховаються вразливості, і аналіз Microsoft це підтвердив: ризики OpenClaw могли виникати через звичайні API-виклики, тому що жодна людина не могла охопити повну картину.

Порівняння рядків коду: OpenClaw ~400 000 рядків проти NanoClaw ~3 000 рядків

NanoClaw — це один процес і кілька файлів. Ми активно покладаємося на Agent SDK від Anthropic — обгортку навколо Claude Code — для керування сесіями, стиснення пам’яті та багато іншого, замість того щоб винаходити велосипед. Кваліфікований розробник може переглянути весь код за одну половину дня. Це свідоме обмеження, а не недолік. Наші правила внесків приймають лише виправлення помилок, виправлення безпеки та спрощення.

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

Ось у чому справжня різниця. З монолітною кодовою базою на 400 000 рядків, навіть якщо ви увімкнете лише дві інтеграції, решта коду все одно там. Він все одно завантажений, все одно частина вашої поверхні атаки, все одно доступний для prompt injection та зловмисних агентів. Ви не можете відокремити активне від неактивного. Ви не можете його аудитувати, бо не можете навіть визначити межу того, що є «вашим кодом». Зі skills межа очевидна: це кілька тисяч рядків, це весь код, який ви обрали додати, і ви можете прочитати кожен його рядок. Ядро фактично стає меншим з часом: підтримка WhatsApp, наприклад, виноситься й пакується як skill.

Проєктуйте для недовіри

Якщо галюцинація або агент, який поводиться неправильно, може створити проблему безпеки, то модель безпеки зламана. Безпека має забезпечуватися поза агентною поверхнею, а не залежати від правильної поведінки агента. Контейнери, обмеження монтування та ізоляція файлової системи існують для того, щоб навіть коли агент робить щось неочікуване, радіус ураження був обмежений.

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

Ви можете прочитати вихідний код та повну модель безпеки NanoClaw; вони достатньо короткі, щоб прочитати за одну половину дня.