Безопасность
Что этот продукт делает с вашей машиной и вашими данными — изложено так, чтобы вы могли решать, а не предполагать.
Что покидает вашу машину
Ваши промпты и все файлы, которые агент читает по вашему поручению, уходят на ту точку доступа, которую вы настроили, и больше никуда. Никакого нашего шлюза посередине нет.
Если эта точка работает на вашей собственной машине, её не покидает ничего.
Два исключения, оба тихо не срабатывают без сети и ни одно из них не несёт ничего из набранного вами:
- настольное приложение спрашивает свою точку обновлений, есть ли версия новее
- панель Models при открытии подтягивает с Hugging Face список популярных моделей
Что агент может сделать с вашей машиной
Две настройки, делающие разную работу.
Песочница решает, что он может. При workspace-write — значении по
умолчанию — он может писать куда угодно внутри своего рабочего каталога и
никуда больше. Чтение не ограничивается ни в одном режиме.
Подтверждения решают, о чём он обязан спросить заранее — от каждой незнакомой команды до вообще ничего.
Сочетание, с которым стоит быть осторожнее, — danger-full-access вместе с
never: агент, выполняющий произвольные команды, ничего не показывая и ни о
чём не спрашивая. Есть каталоги, где это правильно. Ваша домашняя папка — не
из них.
Подробности — в Песочнице и подтверждениях.
Где фоновому запуску позволено начаться
Запуск, чей каталог не является ни рабочим пространством, ни отделом, ни местом, разрешённым вами поимённо, придерживается, а не запускается.
Это существует потому, что запланированная задача, созданная до появления
отделов, несла в себе домашний каталог и отработала сорок два раза: каждый
запуск дотягивался до .ssh и Documents, и никого не спрашивали.
Настройка подтверждений в never отключает и это — вместе со всем остальным,
что и означает та настройка.
Ключи
Ключи API хранятся вне config.toml, потому что этот файл отдают другим и
вставляют в issue. Они записываются туда же, где лежат остальные ваши секреты, и
после сохранения больше не показываются.
Ключи коннекторов устроены так же: вы называете переменные окружения, нужные серверу, а значения хранятся отдельно от конфигурации этого сервера.
Шлюз
Настольное приложение и веб-интерфейс разговаривают с локальным шлюзом. Он:
- привязывается к loopback, если явно не сказано иное, поэтому не оказывается выставленным в сеть по случайности
- требует токен при каждом подключении — он создаётся для каждого запуска и печатается один раз, чтобы ни другой локальный пользователь, ни веб-страница в вашем браузере не смогли им управлять
Клиент этого шлюза может заставить агента выполнять команды на машине, где шлюз запущен. В этом весь смысл, и потому токен и существует.
По замыслу он однопользовательский. Обслуживать нескольких людей, которым вы не доверяете, потребовало бы песочницы на каждого пользователя, а это вне рамок.
Спаренные телефоны
Спаривание выдаёт устройству токен, позволяющий управлять агентом на этой машине. Адрес показывается один раз. Спаривайте только собственные устройства и отзывайте всё, чего не узнаёте.
Сборки не подписаны
Никакого сертификата Apple или Microsoft, поэтому операционная система не может понять, кто их собрал, и так и говорит. Это предупреждение верно, и читать его следует как верное.
Если вам не хочется верить нам на слово ни в чём из этого — исходники
здесь, и это одна команда
cargo build.
Сообщить о чём-то
Не открывайте публичный issue из-за уязвимости. Воспользуйтесь формой закрытого уведомления на GitHub: она доходит до сопровождающих, ничего не публикуя.
Больше всего внимания заслуживает то, что описано на этой странице: политика песочницы, путь подтверждений, проверка каталога у фоновых запусков и токен шлюза.
Не прикладывайте свои ключи и журналы, в которых они есть.