
Безопасная* среда выполнения для автономных ИИ-агентов. Политика на основе конституций на простом английском языке. (*https://ironcurtain.dev)
Безопасная* среда выполнения для автономных ИИ-агентов, в которой политика безопасности выводится из читаемого человеком устава (constitution).
*Когда кто-то пишет «secure», вы должны сразу же отнестись с подозрением. Что мы имеем в виду под secure?
[!WARNING] Исследовательский прототип. IronCurtain — это ранний исследовательский проект, изучающий, как сделать ИИ-агентов достаточно безопасными, чтобы они были по-настоящему полезными. API, форматы конфигурации и архитектура могут меняться. Приветствуются вклад и обратная связь.
Агента просят клонировать репозиторий и отправить изменения. Оба действия — git_clone и git_push — эскалируются политическим движком, но авто-одобритель одобряет их автоматически: доверенный ввод пользователя из командного режима (Ctrl-A) выражал явное намерение, так что ручной /approve не понадобился.
Автономные ИИ-агенты могут управлять файлами, выполнять команды git, отправлять сообщения и взаимодействовать с API от вашего имени. Но современные агентные фреймворки дают агенту те же привилегии, что и пользователю, — например, полный доступ к файловой системе, учётным данным и сети. Исследователи безопасности называют это ambient authority, и это означает, что одиночная prompt-инъекция или дрейф в многоходовом диалоге могут заставить агента удалять файлы, похищать данные или публиковать вредоносный код.
Обычный ответ — либо ограничить агентов узкой песочницей (что ограничивает их полезность), либо просить пользователя одобрять каждое действие (что ограничивает их автономию). Ни то, ни другое не является удовлетворительным.
IronCurtain идёт другим путём: сформулируйте ваши требования безопасности на простом английском, а система сама разберётся с их соблюдением.
Вы пишете конституцию — короткий документ, описывающий, что агенту разрешено и запрещено делать. IronCurtain компилирует её в детерминированную политику безопасности с помощью LLM-конвейера, проверяет скомпилированные правила на сгенерированных тестовых сценариях, а затем применяет политику во время выполнения при каждом вызове инструмента. В результате получается агент, который может работать автономно в границах, заданных вами на естественном языке.
Ключевые идеи:
IronCurtain поддерживает два режима сеансов с разными моделями доверия:
Builtin Agent (Code Mode) — собственный LLM-агент IronCurtain пишет TypeScript-фрагменты, которые выполняются в песочнице V8. IronCurtain контролирует агента, песочницу и политический движок. Каждый вызов инструмента покидает песочницу как структурированный MCP-запрос, проходит через политический движок (разрешить / запретить / эскалировать) и только затем достигает реального MCP-сервера.
Docker Agent Mode — внешний агент (Claude Code, Goose и т.п.) работает внутри Docker-контейнера без доступа к сети. IronCurtain опосредует внешние эффекты: вызовы LLM API проходят через TLS-терминирующий MITM-прокси (разрешённый список хостов, подмена ключей fake-to-real), вызовы MCP-инструментов проходят через тот же политический движок, а установка пакетов (npm/PyPI) идёт через проверяющий прокси-реестр.
В обоих режимах агент не заслуживает доверия. Безопасность не зависит от того, следует ли модель инструкциям, — она обеспечивается на границе.
См. SANDBOXING.md с полной архитектурой, диаграммами, послойным анализом доверия и примечаниями по macOS.
isolated-vm; для 24 и 26 устанавливаются готовые бинарники, Node 22 компилируется из исходников при установке и требует тулчейн C/C++). Нечётные ветки (23, 25) работают, но не тестируются — ironcurtain doctor выдаст предупреждение.container работает как альтернативный бэкенд (виртуальная машина на каждый контейнер; используется автоматически, когда его службы запущены — см. containerRuntime в ironcurtain config)Как глобальный CLI-инструмент (для конечных пользователей):```bash npm install -g @provos/ironcurtain
**Из исходного кода (разработка):**```bash
git clone https://github.com/provos/ironcurtain.git
cd ironcurtain
npm install
1. Укажите ваш API-ключ:```bash export ANTHROPIC_API_KEY=sk-ant-...
Вы также можете разместить ключи в файле `.env` в корне проекта (автоматически загружается через `dotenv`) или добавить их в `~/.ironcurtain/config.json` с помощью `ironcurtain config`. Переменные окружения имеют приоритет над значениями из файла конфигурации. Поддерживаются: `ANTHROPIC_API_KEY`, `GOOGLE_GENERATIVE_AI_API_KEY`, `OPENAI_API_KEY`.
**2. Запустите мастер первичной настройки** (запустите его явно перед использованием рекомендуемого пути mux; он также запускается автоматически при первом запуске `ironcurtain start` без mux):```bash
ironcurtain setup
Проводит вас через настройку GitHub-токена, провайдера веб-поиска, выбора модели и других параметров. Создаёт ~/.ironcurtain/config.json с вашими выборами.
IronCurtain поставляется с политикой по умолчанию, ориентированной на опыт разработчика: операции чтения разрешены, а изменения (записи, push, создание PR) требуют одобрения человека. Вы можете начать использовать его сразу после настройки.
Рекомендуемый способ использования IronCurtain. Он даёт вам всю мощь интерактивного TUI вашего агента (Claude Code или Goose), пока IronCurtain пропускает каждый вызов инструмента через свой движок политик — всё в одном терминале.```bash ironcurtain mux
**Ключевые возможности:**