- Segreti di configurazione: qualsiasi campo SecretRef in
openclaw.jsonpuò essere risolto tramite la CLIopin fase di esecuzione, così le chiavi API non risiedono mai nel file di configurazione. - Flussi di lavoro degli agenti: la skill
1passwordinclusa insegna agli agenti ad autenticarsi e a leggere o inserire segreti conopper le proprie attività.
Requisiti
- La CLI di 1Password (
op) installata sull’host del Gateway (brew install 1password-clisu macOS). - Una modalità di autenticazione per
op:- Account di servizio (consigliato per Gateway headless): esportare
OP_SERVICE_ACCOUNT_TOKENnell’ambiente del servizio Gateway. Non sono necessari né un’app desktop né un accesso interattivo. - Integrazione con l’app desktop: l’app 1Password viene eseguita sulla stessa macchina con l’integrazione CLI abilitata. Le prime chiamate possono attivare Touch ID o l’autenticazione di sistema.
- Accesso autonomo:
op signinrichiede l’autenticazione a ogni sessione. È utilizzabile dagli agenti tramite la skill, ma non è adatto alla risoluzione dei segreti di configurazione su un Gateway headless.
- Account di servizio (consigliato per Gateway headless): esportare
Risolvere i segreti di configurazione con op
Dichiarare un provider di segreti exec che eseguaop read con un riferimento op://vault/item/field, quindi indirizzare a tale provider qualsiasi campo compatibile con SecretRef:
commanddeve essere un percorso assoluto;trustedDirscontrassegna la relativa directory come attendibile eallowSymlinkCommandè necessario perché Homebrew installaopcome collegamento simbolico.argstrasmette il riferimentoop://vault/item/fieldsenza modificarlo. OpenClaw non analizza direttamente lo schemaop://; è il binarioopa risolverlo.passEnvinoltra le variabili elencate dall’ambiente del Gateway. L’integrazione con l’app desktop richiedeHOME; gli account di servizio richiedono inoltre cheOP_SERVICE_ACCOUNT_TOKENsia presente nell’ambiente del servizio Gateway (aggiungerlo apassEnv, oppure impostarlo tramiteenvsolo se si accetta che il token sia leggibile nel file di configurazione).- Per l’output con un singolo valore, mantenere
id: "value". ConjsonOnly: truee un payload JSON, indirizzare invece i campi mediante un ID puntatore JSON. - Una voce del provider per ciascun segreto rende i riferimenti verificabili; assegnare ai provider nomi basati sul relativo utilizzatore (
onepassword_openai,onepassword_telegram).
Configurazione dell’account di servizio per Gateway headless
- Creare un account di servizio nell’account 1Password e concedergli l’accesso in lettura esclusivamente agli elementi del vault necessari al Gateway.
- Fornire
OP_SERVICE_ACCOUNT_TOKENal servizio Gateway (plist di launchd, unità systemd o variabile di ambiente del container). - Aggiungere
"OP_SERVICE_ACCOUNT_TOKEN"all’elencopassEnvdel provider. - Verificare dall’ambiente dell’host del Gateway:
op whoamidovrebbe mostrare l’account di servizio senza richiedere l’autenticazione.
op://. Limitare rigorosamente l’ambito dell’account; si tratta di una credenziale bearer.
La skill 1password per gli agenti
OpenClaw include una skill1password che rende gli agenti operatori competenti di op: rileva la modalità di autenticazione disponibile (account di servizio, integrazione con l’app desktop o accesso autonomo), verifica l’accesso con op whoami prima di qualsiasi lettura e preferisce op run / op inject alla scrittura dei valori segreti su disco. La skill richiede il binario op e propone l’installazione tramite Homebrew quando non è presente.
Gli agenti la utilizzano per i propri flussi di lavoro, ad esempio per leggere un token di distribuzione durante un’attività o inserire variabili di ambiente in un comando. È indipendente dalla risoluzione dei segreti di configurazione; il Gateway risolve i SecretRef senza il coinvolgimento di alcuna skill.
Note sulla sicurezza
- I valori segreti risolti tramite provider exec rimangono nella memoria del Gateway; le istantanee della configurazione e le risposte
config.getoscurano i campi SecretRef. - Non inserire mai valori segreti in
openclaw.json, nei log o nelle chat. Mantenere i nomi degli elementi nella configurazione e i valori in 1Password. - Il registro di controllo di 1Password mostra ogni lettura dell’account di servizio, rendendo pratiche la rotazione delle chiavi e l’analisi degli incidenti.
Risoluzione dei problemi
command not foundo errori di avvio del processo: utilizzare il percorso assoluto diope includere la relativa directory intrustedDirs.opviene risolto, ma le letture non riescono a causa di errori relativi ai collegamenti simbolici: impostareallowSymlinkCommand: trueper le installazioni Homebrew.account is not signed in: per gli account di servizio, verificare cheOP_SERVICE_ACCOUNT_TOKENraggiunga il servizio Gateway e sia elencato inpassEnv; per l’integrazione desktop, verificare che l’app sia in esecuzione e sbloccata.- Prime letture lente: aumentare
timeoutMsnel provider; gli avvii a freddo dioppossono superare timeout rigidi sugli host sottoposti a carico elevato.