Gateway
1Password
OpenClaw terintegrasi dengan 1Password dalam dua cara yang independen:
- Rahasia konfigurasi: setiap bidang SecretRef di
openclaw.jsondapat diresolusikan melalui CLIopsaat runtime, sehingga kunci API tidak pernah disimpan dalam file konfigurasi. - Alur kerja agen: skill bawaan
1passwordmengajarkan agen untuk masuk serta membaca atau menginjeksikan rahasia denganopbagi tugas mereka sendiri.
Persyaratan
- CLI 1Password (
op) terinstal di host Gateway (brew install 1password-clidi macOS). - Mode autentikasi untuk
op:- Akun layanan (disarankan untuk Gateway tanpa antarmuka): ekspor
OP_SERVICE_ACCOUNT_TOKENdi lingkungan layanan Gateway. Tidak memerlukan aplikasi desktop maupun proses masuk interaktif. - Integrasi aplikasi desktop: aplikasi 1Password berjalan di mesin yang sama dengan integrasi CLI diaktifkan. Pemanggilan pertama mungkin memicu Touch ID atau autentikasi sistem.
- Proses masuk mandiri:
op signinmeminta autentikasi pada setiap sesi. Dapat digunakan oleh agen melalui skill, tetapi tidak cocok untuk resolusi rahasia konfigurasi pada Gateway tanpa antarmuka.
- Akun layanan (disarankan untuk Gateway tanpa antarmuka): ekspor
Meresolusikan rahasia konfigurasi dengan op
Deklarasikan penyedia rahasia exec yang menjalankan op read dengan referensi op://vault/item/field, lalu arahkan setiap bidang yang mendukung SecretRef kepadanya:
{ secrets: { providers: { onepassword_openai: { source: "exec", command: "/opt/homebrew/bin/op", allowSymlinkCommand: true, // diperlukan untuk biner Homebrew yang ditautkan secara simbolis trustedDirs: ["/opt/homebrew"], args: ["read", "op://Personal/OpenClaw QA API Key/password"], passEnv: ["HOME"], jsonOnly: false, }, }, }, models: { providers: { openai: { baseUrl: "https://api.openai.com/v1", models: [{ id: "gpt-5", name: "gpt-5" }], apiKey: { source: "exec", provider: "onepassword_openai", id: "value" }, }, }, },}Cara komponen-komponen tersebut bekerja bersama:
commandharus berupa path absolut;trustedDirsmenandai direktorinya sebagai tepercaya, danallowSymlinkCommanddiperlukan karena Homebrew menginstalopsebagai tautan simbolis.argsmeneruskan referensiop://vault/item/fieldapa adanya. OpenClaw tidak mengurai skemaop://sendiri; bineropyang meresolusikannya.passEnvmeneruskan variabel yang tercantum dari lingkungan Gateway. Integrasi aplikasi desktop memerlukanHOME; akun layanan juga memerlukanOP_SERVICE_ACCOUNT_TOKENtersedia di lingkungan layanan Gateway (tambahkan kepassEnv, atau atur melaluienvhanya jika Anda menerima bahwa token dapat dibaca dalam file konfigurasi).- Untuk keluaran bernilai tunggal, pertahankan
id: "value". DenganjsonOnly: truedan payload JSON, akses bidang menggunakan id penunjuk JSON. - Satu entri penyedia per rahasia menjaga referensi tetap dapat diaudit; beri nama penyedia berdasarkan konsumennya (
onepassword_openai,onepassword_telegram).
Lihat Rahasia Gateway untuk urutan resolusi, caching, dan semantik kegagalan, serta Permukaan Kredensial SecretRef untuk setiap bidang yang menerima SecretRef.
Penyiapan akun layanan untuk Gateway tanpa antarmuka
- Buat akun layanan di akun 1Password Anda dan berikan akses baca hanya ke item brankas yang diperlukan Gateway.
- Sediakan
OP_SERVICE_ACCOUNT_TOKENbagi layanan Gateway (plist launchd, unit systemd, atau env kontainer). - Tambahkan
"OP_SERVICE_ACCOUNT_TOKEN"ke daftarpassEnvpenyedia. - Verifikasi dari lingkungan host Gateway:
op whoamiseharusnya menampilkan akun layanan tanpa meminta autentikasi.
Pembacaan oleh akun layanan mengharuskan nama brankas dicantumkan secara eksplisit dalam referensi op://. Batasi cakupan akun secara ketat; akun tersebut merupakan kredensial bearer.
Skill 1password untuk agen
OpenClaw menyertakan skill 1password yang menjadikan agen sebagai operator op yang kompeten: skill ini mendeteksi mode autentikasi yang tersedia (akun layanan, integrasi aplikasi desktop, atau proses masuk mandiri), memverifikasi akses dengan op whoami sebelum membaca apa pun, dan mengutamakan op run / op inject daripada menulis nilai rahasia ke disk. Skill ini memerlukan biner op dan menawarkan instalasi Homebrew jika biner tersebut tidak tersedia.
Agen menggunakannya untuk alur kerja mereka sendiri, misalnya membaca token deployment di tengah tugas atau menginjeksikan variabel lingkungan ke dalam perintah. Ini terpisah dari resolusi rahasia konfigurasi; Gateway meresolusikan SecretRef tanpa melibatkan skill apa pun.
Catatan keamanan
- Nilai rahasia yang diresolusikan melalui penyedia exec tetap berada dalam memori Gateway; snapshot konfigurasi dan respons
config.getmenyamarkan bidang SecretRef. - Jangan pernah menempatkan nilai rahasia dalam
openclaw.json, log, atau percakapan. Simpan nama item dalam konfigurasi dan nilainya dalam 1Password. - Jejak audit 1Password menampilkan setiap pembacaan oleh akun layanan, sehingga rotasi kunci dan peninjauan insiden dapat dilakukan secara praktis.
Pemecahan masalah
command not foundatau kesalahan pemunculan proses: gunakan path absolutopdan sertakan direktorinya dalamtrustedDirs.opberhasil diresolusikan tetapi pembacaan gagal dengan kesalahan tautan simbolis: aturallowSymlinkCommand: trueuntuk instalasi Homebrew.account is not signed in: untuk akun layanan, pastikanOP_SERVICE_ACCOUNT_TOKENmencapai layanan Gateway dan tercantum dalampassEnv; untuk integrasi desktop, pastikan aplikasi berjalan dan tidak terkunci.- Pembacaan pertama lambat: naikkan
timeoutMspada penyedia; proses mulai dinginopdapat melampaui batas waktu yang ketat pada host yang sibuk.