Gateway
1Password
OpenClaw se integra con 1Password de dos formas independientes:
- Secretos de configuración: cualquier campo SecretRef de
openclaw.jsonpuede resolverse mediante la CLIopen tiempo de ejecución, por lo que las claves de API nunca se almacenan en el archivo de configuración. - Flujos de trabajo de agentes: la skill
1passwordincluida enseña a los agentes a iniciar sesión y leer o inyectar secretos conoppara sus propias tareas.
Requisitos
- La CLI de 1Password (
op) instalada en el host del Gateway (brew install 1password-clien macOS). - Un modo de autenticación para
op:- Cuenta de servicio (recomendada para Gateways sin interfaz gráfica): exporte
OP_SERVICE_ACCOUNT_TOKENen el entorno del servicio del Gateway. No requiere aplicación de escritorio ni inicio de sesión interactivo. - Integración con la aplicación de escritorio: la aplicación 1Password se ejecuta en el mismo equipo con la integración de la CLI habilitada. Las primeras llamadas pueden activar Touch ID o la autenticación del sistema.
- Inicio de sesión independiente:
op signinsolicita autenticación en cada sesión. Es viable para los agentes mediante la skill, pero no resulta adecuado para resolver secretos de configuración en un Gateway sin interfaz gráfica.
- Cuenta de servicio (recomendada para Gateways sin interfaz gráfica): exporte
Resolver secretos de configuración con op
Declare un proveedor de secretos exec que ejecute op read con una referencia op://vault/item/field y, a continuación, dirija hacia él cualquier campo compatible con SecretRef:
{ secrets: { providers: { onepassword_openai: { source: "exec", command: "/opt/homebrew/bin/op", allowSymlinkCommand: true, // obligatorio para binarios de Homebrew enlazados simbólicamente 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" }, }, }, },}Cómo encajan las piezas:
commanddebe ser una ruta absoluta;trustedDirsmarca su directorio como de confianza yallowSymlinkCommandes necesario porque Homebrew instalaopcomo enlace simbólico.argstransmite literalmente la referenciaop://vault/item/field. OpenClaw no analiza por sí mismo el esquemaop://; el binariooplo resuelve.passEnvreenvía las variables indicadas desde el entorno del Gateway. La integración con la aplicación de escritorio necesitaHOME; las cuentas de servicio también necesitan queOP_SERVICE_ACCOUNT_TOKENesté presente en el entorno del servicio del Gateway (añádalo apassEnvo establézcalo medianteenvsolo si acepta que el token pueda leerse en el archivo de configuración).- Para una salida de un solo valor, mantenga
id: "value". ConjsonOnly: truey una carga útil JSON, use en su lugar un id de puntero JSON para acceder a los campos. - Una entrada de proveedor por secreto permite auditar las referencias; asigne a los proveedores nombres basados en sus consumidores (
onepassword_openai,onepassword_telegram).
Consulte Secretos del Gateway para conocer el orden de resolución, el almacenamiento en caché y la semántica de los fallos, y Superficie de credenciales SecretRef para ver todos los campos que aceptan SecretRefs.
Configuración de una cuenta de servicio para Gateways sin interfaz gráfica
- Cree una cuenta de servicio en su cuenta de 1Password y concédale acceso de lectura únicamente a los elementos de la bóveda que necesita el Gateway.
- Proporcione
OP_SERVICE_ACCOUNT_TOKENal servicio del Gateway (plist de launchd, unidad de systemd o entorno del contenedor). - Añada
"OP_SERVICE_ACCOUNT_TOKEN"a la listapassEnvdel proveedor. - Verifique desde el entorno del host del Gateway:
op whoamidebe mostrar la cuenta de servicio sin solicitar autenticación.
Las lecturas de cuentas de servicio requieren que la bóveda se indique explícitamente en la referencia op://. Limite estrictamente el alcance de la cuenta; se trata de una credencial de portador.
La skill 1password para agentes
OpenClaw incluye una skill 1password que convierte a los agentes en operadores competentes de op: detecta el modo de autenticación disponible (cuenta de servicio, integración con la aplicación de escritorio o inicio de sesión independiente), verifica el acceso con op whoami antes de leer nada y prefiere op run / op inject en lugar de escribir valores secretos en el disco. La skill requiere el binario op y ofrece instalarlo mediante Homebrew cuando no está disponible.
Los agentes la utilizan para sus propios flujos de trabajo, por ejemplo, para leer un token de despliegue durante una tarea o inyectar variables de entorno en un comando. Es independiente de la resolución de secretos de configuración; el Gateway resuelve las SecretRefs sin que intervenga ninguna skill.
Notas de seguridad
- Los valores secretos resueltos mediante proveedores exec permanecen en la memoria del Gateway; las instantáneas de configuración y las respuestas de
config.getocultan los campos SecretRef. - Nunca coloque valores secretos en
openclaw.json, registros ni chats. Mantenga los nombres de los elementos en la configuración y los valores en 1Password. - El registro de auditoría de 1Password muestra cada lectura de las cuentas de servicio, lo que facilita la rotación de claves y la revisión de incidentes.
Solución de problemas
command not foundo errores al iniciar el proceso: use la ruta absoluta deope incluya su directorio entrustedDirs.opse resuelve, pero las lecturas fallan con errores de enlaces simbólicos: establezcaallowSymlinkCommand: truepara las instalaciones de Homebrew.account is not signed in: para las cuentas de servicio, confirme queOP_SERVICE_ACCOUNT_TOKENllegue al servicio del Gateway y figure enpassEnv; para la integración de escritorio, confirme que la aplicación esté en ejecución y desbloqueada.- Primeras lecturas lentas: aumente
timeoutMsen el proveedor; los arranques en frío deoppueden superar los tiempos de espera estrictos en hosts con mucha carga.