- Секрети конфігурації: будь-яке поле SecretRef у
openclaw.jsonможе під час виконання отримувати значення через CLIop, тому ключі API ніколи не зберігаються у файлі конфігурації. - Робочі процеси агентів: вбудована навичка
1passwordнавчає агентів входити в систему та читати або передавати секрети за допомогоюopдля виконання власних завдань.
Вимоги
- CLI 1Password (
op), установлений на хості Gateway (brew install 1password-cliу macOS). - Режим автентифікації для
op:- Сервісний обліковий запис (рекомендовано для Gateway без графічного інтерфейсу): експортуйте
OP_SERVICE_ACCOUNT_TOKENу середовищі служби Gateway. Не потрібні ані настільний застосунок, ані інтерактивний вхід. - Інтеграція з настільним застосунком: застосунок 1Password працює на тому самому комп’ютері з увімкненою інтеграцією CLI. Перші виклики можуть ініціювати Touch ID або системну автентифікацію.
- Автономний вхід:
op signinзапитує дані під час кожного сеансу. Підходить агентам завдяки навичці, але не придатний для отримання секретів конфігурації на Gateway без графічного інтерфейсу.
- Сервісний обліковий запис (рекомендовано для Gateway без графічного інтерфейсу): експортуйте
Отримання секретів конфігурації за допомогою op
Оголосіть exec-провайдер секретів, який запускаєop read із посиланням op://vault/item/field, а потім спрямуйте на нього будь-яке поле, що підтримує SecretRef:
commandмає бути абсолютним шляхом;trustedDirsпозначає його каталог як довірений, аallowSymlinkCommandпотрібен, оскільки Homebrew установлюєopяк символічне посилання.argsпередає посиланняop://vault/item/fieldбез змін. OpenClaw не аналізує схемуop://самостійно; її обробляє виконуваний файлop.passEnvпередає зазначені змінні із середовища Gateway. Для інтеграції з настільним застосунком потрібнаHOME; для сервісних облікових записів також потрібнаOP_SERVICE_ACCOUNT_TOKENу середовищі служби Gateway (додайте її доpassEnvабо задайте черезenv, лише якщо погоджуєтеся, що токен можна буде прочитати у файлі конфігурації).- Для виведення одного значення залиште
id: "value". ЗjsonOnly: trueі корисним навантаженням JSON натомість адресуйте поля за допомогою ідентифікатора-вказівника JSON. - Окремий запис провайдера для кожного секрету спрощує аудит посилань; називайте провайдерів за їхніми споживачами (
onepassword_openai,onepassword_telegram).
Налаштування сервісного облікового запису для Gateway без графічного інтерфейсу
- Створіть сервісний обліковий запис у своєму обліковому записі 1Password і надайте йому доступ для читання лише тих елементів сховища, які потрібні Gateway.
- Передайте
OP_SERVICE_ACCOUNT_TOKENслужбі Gateway (plist-файл launchd, юніт systemd або змінна середовища контейнера). - Додайте
"OP_SERVICE_ACCOUNT_TOKEN"до спискуpassEnvпровайдера. - Перевірте із середовища хоста Gateway:
op whoamiмає вивести сервісний обліковий запис без запиту даних.
op://. Суворо обмежте область доступу облікового запису; це облікові дані на пред’явника.
Навичка 1password для агентів
OpenClaw містить навичку1password, яка навчає агентів компетентно працювати з op: вона виявляє доступний режим автентифікації (сервісний обліковий запис, інтеграцію з настільним застосунком або автономний вхід), перевіряє доступ за допомогою op whoami перед будь-яким читанням і надає перевагу op run / op inject замість запису значень секретів на диск. Для роботи навички потрібен виконуваний файл op; якщо його немає, пропонується встановлення через Homebrew.
Агенти використовують її у власних робочих процесах, наприклад щоб прочитати токен розгортання під час виконання завдання або передати змінні середовища команді. Вона не залежить від отримання секретів конфігурації; Gateway отримує SecretRef без залучення будь-якої навички.
Примітки щодо безпеки
- Значення секретів, отримані через exec-провайдерів, залишаються в пам’яті Gateway; знімки конфігурації та відповіді
config.getприховують поля SecretRef. - Ніколи не розміщуйте значення секретів у
openclaw.json, журналах або чаті. Зберігайте назви елементів у конфігурації, а значення — у 1Password. - Журнал аудиту 1Password показує кожне читання сервісним обліковим записом, що спрощує ротацію ключів і аналіз інцидентів.
Усунення несправностей
command not foundабо помилки запуску процесу: використовуйте абсолютний шляхopі додайте його каталог доtrustedDirs.opвизначається, але читання завершується помилками символічного посилання: для встановлень через Homebrew задайтеallowSymlinkCommand: true.account is not signed in: для сервісних облікових записів переконайтеся, щоOP_SERVICE_ACCOUNT_TOKENпередається службі Gateway і зазначена вpassEnv; для інтеграції з настільним застосунком переконайтеся, що застосунок запущений і розблокований.- Повільне перше читання: збільште
timeoutMsу провайдері; холодний запускopна завантажених хостах може перевищувати суворі обмеження часу очікування.