---
read_when:
    - Вы хотите, чтобы агенты запрашивали отобранные секреты 1Password
    - Вам нужна политика одобрения для каждого секрета и журнал аудита
    - Вы настраиваете сервисную учётную запись 1Password для OpenClaw
summary: Используйте необязательный плагин 1Password как проверенный брокер секретов для агента
title: Брокер секретов 1Password
x-i18n:
    generated_at: "2026-07-13T18:22:32Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 24
    provider: openai
    source_hash: 0b199fcb582739dff5d0f7583482ced8e30dfc7e20b62b984391ad7bb92f67e1
    source_path: plugins/onepassword.md
    workflow: 16
---

# Брокер секретов 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 с доступом к выбранным элементам
- отдельный файл токена сервисной учётной записи

Включите встроенный плагин:

```bash
openclaw plugins enable onepassword
```

Создайте каталог и файл токена в каталоге состояния OpenClaw:

```bash
mkdir -p ~/.openclaw/credentials/onepassword
chmod 700 ~/.openclaw/credentials/onepassword
printf '%s' "$OP_SERVICE_ACCOUNT_TOKEN" > \
  ~/.openclaw/credentials/onepassword/service-account-token
chmod 600 ~/.openclaw/credentials/onepassword/service-account-token
unset OP_SERVICE_ACCOUNT_TOKEN
```

Если задан `OPENCLAW_STATE_DIR`, замените `~/.openclaw` этим каталогом.
Плагин однократно предупреждает, если файл токена доступен группе или
другим пользователям для чтения либо записи.

## Настройка зарегистрированных секретов

Добавьте конфигурацию плагина в `openclaw.json`:

```jsonc
{
  "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`.

Выведите зарегистрированные идентификаторы:

```json
{ "action": "list" }
```

Результат содержит только идентификатор, описание, политику и признак активности постоянного
разрешения. Он никогда не содержит секретное значение и не обращается к 1Password.

Запросите один секрет:

```json
{
  "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`. Политика проверяется
перед каждым поиском в кэше, а попадания в кэш регистрируются в журнале аудита. Перезагрузка конфигурации во время выполнения
вступает в силу на каждой границе проверки политики и выполнения; отключение плагина либо
удаление, запрет или переназначение идентификатора аннулирует ожидающие разрешения и
кэшированные значения.

## Просмотр состояния и истории аудита

Покажите готовность и статистику реестра:

```bash
openclaw onepassword status
```

Команда сообщает, существует ли файл токена, был ли разрешён `op` и по какому пути,
количество зарегистрированных элементов и количество элементов для каждой политики. Она никогда не читает и не выводит
токен или секретные значения.

Покажите 50 последних строк аудита:

```bash
openclaw onepassword audit
openclaw onepassword audit --limit 100
```

Строки расположены от новых к старым и содержат метку времени, агента, идентификатор, результат и сокращённую
причину. Причина сохраняется в указанном виде; брокер никогда не добавляет полученное
значение в журнал аудита.

## Поведение CLI 1Password

При каждом промахе кэша выполняется `op item get` с настроенными элементом, хранилищем и точным
селектором поля, выводом JSON, ограниченным временем ожидания и `--cache=false`. Дочерний процесс
получает только это поле, а не весь элемент. В окружении дочернего процесса присутствуют только
`OP_SERVICE_ACCOUNT_TOKEN` и `HOME`.

Плагин выполняет одну попытку. Ошибки `RATE_LIMITED` следует обрабатывать ожиданием
перед последующим запросом агента; плагин не создаёт автоматический цикл повторных
попыток. Другие стабильные коды ошибок позволяют различать отсутствие токенов или исполняемых файлов, отсутствие
элементов или полей, сбои аутентификации, превышение времени ожидания и другие сбои `op`.
