Plugin guides
Брокер секретов 1Password
Брокер секретов 1Password
Встроенный плагин onepassword предоставляет агентам единый инструмент с управлением политиками для
чтения заданного набора полей 1Password. По умолчанию он отключён и
не выполняет никаких действий, пока не будет указан plugins.entries.onepassword.config.
Это инструмент агента, а не провайдер SecretRef. Он не внедряет переменные окружения и не разрешает секреты конфигурации OpenClaw.
Модель безопасности
- Только аутентификация с помощью сервисной учётной записи. Токен хранится в локальном файле
учётных данных и никогда не принимается в
openclaw.json. - Только заданный реестр. Агенты могут перечислять настроенные идентификаторы, но плагин никогда не просматривает содержимое хранилища 1Password.
- Политика
auto,approveилиdenyдля каждого идентификатора. - Разрешения имеют срок действия. Кэшированное значение никогда не обходит текущую политику.
- Каждая попытка доступа записывается в общее состояние SQLite OpenClaw. Строки аудита содержат указанную причину; не включайте в причины конфиденциальные данные. Брокер никогда не копирует полученное значение или сервисный токен в строку аудита.
- После завершения текущего выполнения инструмента механизм сохранения транскрипта,
принадлежащий OpenClaw, заменяет успешно полученное значение
getотредактированными метаданными. - Во время этого выполнения значение доступно модели. Если модель скопирует его в последующий вызов инструмента или ответ, такая отдельная запись не обрабатывается перехватчиком сохранения этого плагина. Используйте узкие политики и не просите модель повторять значение.
- При каждом промахе кэша плагин однократно вызывает
op. Он не повторяет запросы при ограничении частоты или других сбоях.
Предоставьте сервисной учётной записи доступ на чтение только к хранилищам и элементам, зарегистрированным в конфигурации плагина.
Перед началом работы
Вам потребуются:
- CLI 1Password (
op), установленный на хосте Gateway - сервисная учётная запись 1Password с доступом к выбранным элементам
- отдельный файл токена сервисной учётной записи
Включите встроенный плагин:
openclaw plugins enable onepasswordСоздайте каталог и файл токена в каталоге состояния OpenClaw:
mkdir -p ~/.openclaw/credentials/onepasswordchmod 700 ~/.openclaw/credentials/onepasswordprintf '%s' "$OP_SERVICE_ACCOUNT_TOKEN" > \ ~/.openclaw/credentials/onepassword/service-account-tokenchmod 600 ~/.openclaw/credentials/onepassword/service-account-tokenunset OP_SERVICE_ACCOUNT_TOKENЕсли задан OPENCLAW_STATE_DIR, замените ~/.openclaw этим каталогом.
Плагин однократно предупреждает, если файл токена доступен группе или
другим пользователям для чтения либо записи.
Настройка зарегистрированных секретов
Добавьте конфигурацию плагина в openclaw.json:
{ "plugins": { "entries": { "onepassword": { "enabled": true, "config": { "vault": "Automation", "defaultPolicy": "approve", "cacheTtlSeconds": 300, "grantTtlHours": 720, "opTimeoutMs": 15000, "items": { "repository-token": { "item": "Repository automation token", "field": "credential", "policy": "approve", "description": "Token for repository automation", }, "model-key": { "item": "Model provider key", "vault": "Agent credentials", "policy": "auto", }, }, }, }, }, },}Идентификаторы используют строчные буквы, цифры и дефисы, начинаются с буквы или
цифры и содержат не более 64 символов. Реестр может содержать до 32
идентификаторов; описания могут содержать до 200 символов. field принимает одну метку
или идентификатор поля, не должен содержать запятую и по умолчанию имеет значение credential.
Значение vault на уровне элемента переопределяет хранилище по умолчанию. В opBin можно указать абсолютный
путь к исполняемому файлу op; в противном случае плагин разрешает op из PATH.
Названия элементов не должны начинаться с дефиса.
Использование инструмента агента
Имя инструмента — onepassword.
Выведите зарегистрированные идентификаторы:
{ "action": "list" }Результат содержит только идентификатор, описание, политику и признак активности постоянного разрешения. Он никогда не содержит секретное значение и не обращается к 1Password.
Запросите один секрет:
{ "action": "get", "slug": "repository-token", "reason": "Authenticate the requested repository operation"}reason обязателен, не должен быть пустым и ограничен 300 символами.
Успешный запрос get возвращает значение, настроенный идентификатор, название элемента и
метку поля.
Уровни политик и подтверждения
auto: немедленно получить значение и зарегистрировать запрос в журнале аудита.deny: заблокировать запрос и зарегистрировать его в журнале аудита.approve: использовать неистёкшее постоянное разрешение или запросить у человека однократное разрешение, постоянное разрешение либо отказ.
Однократное разрешение допускает только текущий вызов инструмента. Постоянное разрешение записывает в
SQLite разрешение для этого агента и идентификатора; другим агентам необходимо получить
собственное подтверждение. OpenClaw предлагает постоянное разрешение только тогда, когда вызывающая сторона имеет конкретную
идентичность агента. Срок действия разрешения истекает через grantTtlHours, по умолчанию — через 720 часов.
Если подтверждение не получено или истекло время ожидания, запрос отклоняется; максимальное время
ожидания подтверждения составляет 600 секунд. Плагин хранит до 1 024 постоянных разрешений; при
достижении этого предела самое старое разрешение удаляется, и его агент должен подтвердить следующий доступ.
Срок хранения во внутреннем кэше по умолчанию составляет 300 секунд, а его размер ограничен настроенным
реестром идентификаторов. Чтобы отключить кэш, задайте для cacheTtlSeconds значение 0. Политика проверяется
перед каждым поиском в кэше, а попадания в кэш регистрируются в журнале аудита. Перезагрузка конфигурации во время выполнения
вступает в силу на каждой границе проверки политики и выполнения; отключение плагина либо
удаление, запрет или переназначение идентификатора аннулирует ожидающие разрешения и
кэшированные значения.
Просмотр состояния и истории аудита
Покажите готовность и статистику реестра:
openclaw onepassword statusКоманда сообщает, существует ли файл токена, был ли разрешён op и по какому пути,
количество зарегистрированных элементов и количество элементов для каждой политики. Она никогда не читает и не выводит
токен или секретные значения.
Покажите 50 последних строк аудита:
openclaw onepassword auditopenclaw onepassword audit --limit 100Строки расположены от новых к старым и содержат метку времени, агента, идентификатор, результат и сокращённую причину. Причина сохраняется в указанном виде; брокер никогда не добавляет полученное значение в журнал аудита.
Поведение CLI 1Password
При каждом промахе кэша выполняется op item get с настроенными элементом, хранилищем и точным
селектором поля, выводом JSON, ограниченным временем ожидания и --cache=false. Дочерний процесс
получает только это поле, а не весь элемент. В окружении дочернего процесса присутствуют только
OP_SERVICE_ACCOUNT_TOKEN и HOME.
Плагин выполняет одну попытку. Ошибки RATE_LIMITED следует обрабатывать ожиданием
перед последующим запросом агента; плагин не создаёт автоматический цикл повторных
попыток. Другие стабильные коды ошибок позволяют различать отсутствие токенов или исполняемых файлов, отсутствие
элементов или полей, сбои аутентификации, превышение времени ожидания и другие сбои op.