Перейти к содержанию

Глубокое погружение: Безопасность и песочница

SILO спроектирован как «Безопасная операционная система для агентов». Это означает, что в отличие от обычных скриптов, инструменты, запускаемые через SILO, никогда не имеют прямого доступа к вашим глобальным переменным окружения, конфиденциальным файлам (без разрешения) или родительскому процессу.

1. Песочница uv run

Каждый раз, когда агент вызывает инструмент SILO, фреймворк запускает свежий процесс с помощью:

uv run <skill_script>.py <tool_name> --args...

  • Изоляция: Каждый скилл имеет собственный .venv и список зависимостей.
  • Воспроизводимость: uv гарантирует, что инструмент запускается в идентичной среде каждый раз.
  • Очистка: Временные данные внутри песочницы не сохраняются, если они не были явно записаны в подключенные тома.

2. Безопасная инъекция секретов

Это критически важная функция безопасности SILO. Секреты (API-ключи, токены) никогда не передаются через переменные окружения оболочки (где они могут утечь в логи или другим процессам).

Как это работает:

  1. Раннер расшифровывает секреты из защищенного хранилища.
  2. Он открывает канал к STDIN дочернего процесса.
  3. Он отправляет JSON-пакет, содержащий только те секреты, которые требуются конкретному скиллу.
  4. Функция require_secret() читает данные из STDIN и кэширует секрет в памяти.

Для корпоративных сред SILO также поддерживает приоритетное получение секретов из HashiCorp Vault.

3. Локальное шифрование хранилища

SILO хранит ваши учетные данные в ~/.silo/credentials.silo.

  • Шифрование: AES-256-GCM (аутентифицированное шифрование).
  • Мастер-ключ: Требуется переменная окружения SILO_MASTER_KEY на хосте или вход через Keyring.
  • Keyring: На macOS SILO интегрируется с Keychain для бесшовного и безопасного хранения мастер-ключа.

4. Headless против Интерактивного режима

  • Режим Headless: Установите SILO_HEADLESS=1, чтобы выполнение сразу прерывалось с ошибкой, если отсутствует секрет или требуется подтверждение.
  • Интерактивный режим: SILO открывает локальное окно браузера для безопасного ввода токена человеком или подтверждения чувствительного действия.

Далее: Узнайте, как Динамическая маршрутизация помогает агентам находить ваши инструменты.