Агент предлагает. Правила решают.
Правила живут снаружи агента, а не в промпте. Каждое решение попадает в журнал, который можно проверить.
Работает на вашем железе. Модели и данные не уходят.
Один шлюз между агентом и всем, что он может изменить
Ваш агент не вызывает инструменты напрямую. Каждый вызов сначала проходит шлюз исполнения.
Агент предлагает
Какой инструмент, с какими аргументами, от чьего имени — типизированным предложением вместо прямого вызова.
Правила решают
Без участия модели. Права, регистрация инструмента и класс побочного эффекта от чистого до необратимого. Незарегистрированный инструмент вызвать нельзя вообще.
Необратимое ждёт человека
Одобрение действует в своих границах, имеет срок, срабатывает один раз и никогда не выдаётся тем же агентом, который его запросил.
Решение записано
Предложение, решение и то, что вернулось, дописываются в журнал с хеш-цепочкой: правка задним числом рвёт цепочку.
Три следствия из этого
Governed
Правило живёт снаружи агента и версионировано — видно, по какому именно разрешили вызов.
Sovereign
Своё железо, свой контур. Модели и данные его не покидают.
Auditable
Append-only журнал с хеш-цепочкой. Проверяется запуском команды, а не нашим обещанием.
Ставится туда, где уже идёт работа
Cradle — приложение, которое вы запускаете сами. Шлюз внутри него.
- 01Установите приложение Cradle на свою машину
- 02Запускайте модели с открытыми весами локально через llama.cpp — или обращайтесь к внешнему провайдеру там, где это уместно
- 03Зарегистрируйте инструменты, до которых агентам разрешено дотягиваться, каждый со своим классом побочного эффекта
- 04Журнал остаётся на той же машине — чтобы это работало, никуда ничего отправлять не нужно
Отдельный сервер в Docker существует как способ установки для общей на несколько человек конфигурации. Локальный запуск решает, где лежат ваши данные; допустимо ли действие, решает шлюз выше, а не место установки.
Поставьте шлюз перед своим агентом.
Установите, зарегистрируйте инструменты и посмотрите, как первое решение ложится в журнал.