Глубокое погружение: Безопасность и песочница
SILO спроектирован как «Безопасная операционная система для агентов». Это означает, что в отличие от обычных скриптов, инструменты, запускаемые через SILO, никогда не имеют прямого доступа к вашим глобальным переменным окружения, конфиденциальным файлам (без разрешения) или родительскому процессу.
1. Песочница uv run
Каждый раз, когда агент вызывает инструмент SILO, фреймворк запускает свежий процесс с помощью:
- Изоляция: Каждый скилл имеет собственный
.venvи список зависимостей. - Воспроизводимость:
uvгарантирует, что инструмент запускается в идентичной среде каждый раз. - Очистка: Временные данные внутри песочницы не сохраняются, если они не были явно записаны в подключенные тома.
2. Безопасная инъекция секретов
Это критически важная функция безопасности SILO. Секреты (API-ключи, токены) никогда не передаются через переменные окружения оболочки (где они могут утечь в логи или другим процессам).
Как это работает:
- Раннер расшифровывает секреты из защищенного хранилища.
- Он открывает канал к STDIN дочернего процесса.
- Он отправляет JSON-пакет, содержащий только те секреты, которые требуются конкретному скиллу.
- Функция
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 открывает локальное окно браузера для безопасного ввода токена человеком или подтверждения чувствительного действия.
Далее: Узнайте, как Динамическая маршрутизация помогает агентам находить ваши инструменты.