Ir al contenido

Plugins

Los complementos amplían OpenClaw con nuevas capacidades: canales, proveedores de modelos, herramientas, habilidades, voz, generación de imágenes y más. Algunos complementos son core (incluidos con OpenClaw), otros son externos (publicados en npm por la comunidad).

  1. See what is loaded

    Ventana de terminal
    openclaw plugins list
  2. Instala un complemento

    Ventana de terminal
    # From npm
    openclaw plugins install @openclaw/voice-call
    # From a local directory or archive
    openclaw plugins install ./my-plugin
    openclaw plugins install ./my-plugin.tgz
  3. Reinicia el Gateway

    Ventana de terminal
    openclaw gateway restart

    Luego configura bajo `plugins.entries.\

    .config` en tu archivo de configuración.

Si prefieres un control nativo del chat, habilita commands.plugins: true y usa:

/plugin install clawhub:@openclaw/voice-call
/plugin show voice-call
/plugin enable voice-call

La ruta de instalación utiliza el mismo resolutor que la CLI: ruta/archivo local, clawhub:<pkg> explícito, o especificación de paquete simple (ClawHub primero, luego respaldo a npm).

OpenClaw reconoce dos formatos de complementos:

FormatoCómo funcionaEjemplos
Nativoopenclaw.plugin.json + módulo de tiempo de ejecución; se ejecuta en procesoComplementos oficiales, paquetes npm de la comunidad
Paquete (Bundle)Diseño compatible con Codex/Claude/Cursor; asignado a funciones de OpenClaw.codex-plugin/, .claude-plugin/, .cursor-plugin/

Ambos aparecen bajo openclaw plugins list. Consulte Plugin Bundles para obtener detalles sobre los paquetes.

Si está escribiendo un complemento nativo, comience con Building Plugins y la Plugin SDK Overview.

ComplementoPaqueteDocumentación
Matriz@openclaw/matrixMatrix
Microsoft Teams@openclaw/msteamsMicrosoft Teams
Nostr@openclaw/nostrNostr
Llamada de voz@openclaw/voice-callVoice Call
Zalo@openclaw/zaloZalo
Zalo Personal@openclaw/zalouserZalo Personal
Model providers (enabled by default)

anthropic, byteplus, cloudflare-ai-gateway, github-copilot, google, huggingface, kilocode, kimi-coding, minimax, mistral, modelstudio, moonshot, nvidia, openai, opencode, opencode-go, openrouter, qianfan, synthetic, together, venice, vercel-ai-gateway, volcengine, xiaomi, zai

Plugins de memoria
  • memory-core — búsqueda de memoria incluida (predeterminado vía plugins.slots.memory) - memory-lancedb — memoria a largo plazo bajo demanda con recuperación/captura automática (establezca plugins.slots.memory = "memory-lancedb")
Proveedores de voz (habilitados de forma predeterminada)

elevenlabs, microsoft

Otros
  • browser — complemento de navegador incluido para la herramienta de navegador, CLI openclaw browser, método de gateway browser.request, tiempo de ejecución del navegador y servicio de control de navegador predeterminado (habilitado de forma predeterminada; desactívelo antes de reemplazarlo)
  • copilot-proxy — puente VS Code Copilot Proxy (desactivado de forma predeterminada)

¿Busca complementos de terceros? Consulte Community Plugins.

{
plugins: {
enabled: true,
allow: ["voice-call"],
deny: ["untrusted-plugin"],
load: { paths: ["~/Projects/oss/voice-call-extension"] },
entries: {
"voice-call": { enabled: true, config: { provider: "twilio" } },
},
},
}
CampoDescripción
enabledInterruptor maestro (predeterminado: true)
allowLista blanca de plugins (opcional)
denyLista negra de plugins (opcional; denegar gana)
load.pathsArchivos/directorios de plugins adicionales
slotsSelectores de ranura exclusivos (ej. memory, contextEngine)
entries.\<id\>Interruptores + configuración por plugin

Los cambios de configuración requieren un reinicio de la puerta de enlace. Si la puerta de enlace se está ejecutando con la vigilancia de configuración + el reinicio en proceso habilitados (la ruta predeterminada openclaw gateway), ese reinicio generalmente se realiza automáticamente un momento después de que se escribe la configuración.

Estados de los complementos: deshabilitado vs. faltante vs. no válido
  • Deshabilitado: el complemento existe pero las reglas de habilitación lo desactivaron. La configuración se conserva. - Faltante: la configuración hace referencia a un id de complemento que el descubrimiento no encontró. - No válido: el complemento existe pero su configuración no coincide con el esquema declarado.

OpenClaw busca plugins en este orden (gana la primera coincidencia):

  1. Rutas de configuración

    plugins.load.paths — rutas explícitas de archivo o directorio.

  2. Extensiones del espacio de trabajo

    `\

    /.openclaw/

    /*.tsy\

    /.openclaw/

    /*/index.ts`.

  3. Extensiones globales

    `~/.openclaw/

    /*.tsy~/.openclaw/

    /*/index.ts`.

  4. Bundled plugins

    Incluidos con OpenClaw. Muchos están habilitados por defecto (proveedores de modelos, voz). Otros requieren habilitación explícita.

  • plugins.enabled: false deshabilita todos los complementos
  • plugins.deny siempre gana sobre permitir
  • plugins.entries.\<id\>.enabled: false deshabilita ese complemento
  • Los complementos originados en el espacio de trabajo están deshabilitados por defecto (deben ser habilitados explícitamente)
  • Los complementos incluidos siguen el conjunto predeterminado de activación incorporado a menos que se anule
  • Las ranuras exclusivas pueden forzar la habilitación del complemento seleccionado para esa ranura

Ranuras de complementos (categorías exclusivas)

Sección titulada «Ranuras de complementos (categorías exclusivas)»

Algunas categorías son exclusivas (solo una activa a la vez):

{
plugins: {
slots: {
memory: "memory-core", // or "none" to disable
contextEngine: "legacy", // or a plugin id
},
},
}
RanuraLo que controlaPredeterminado
memoryComplemento de memoria activamemory-core
contextEngineMotor de contexto activolegacy (integrado)
Ventana de terminal
openclaw plugins list # compact inventory
openclaw plugins inspect <id> # deep detail
openclaw plugins inspect <id> --json # machine-readable
openclaw plugins status # operational summary
openclaw plugins doctor # diagnostics
openclaw plugins install <package> # install (ClawHub first, then npm)
openclaw plugins install clawhub:<pkg> # install from ClawHub only
openclaw plugins install <path> # install from local path
openclaw plugins install -l <path> # link (no copy) for dev
openclaw plugins install <spec> --dangerously-force-unsafe-install
openclaw plugins update <id> # update one plugin
openclaw plugins update --all # update all
openclaw plugins enable <id>
openclaw plugins disable <id>

--dangerously-force-unsafe-install es una anulación de emergencia para falsos positivos del escáner de código peligroso integrado. Permite que las instalaciones continúen más allá de los hallazgos critical integrados, pero aún no omite los bloques de política before_install del complemento ni el bloqueo por fallo de escaneo.

Este indicador de CLI se aplica solo a las instalaciones de complementos. Las instalaciones de dependencias de habilidades respaldadas por la puerta de enlace usan la anulación de solicitud dangerouslyForceUnsafeInstall coincidente, mientras que openclaw skills install sigue siendo el flujo separado de descarga/instalación de habilidades de ClawHub.

Consulte la referencia de la CLI openclaw plugins para obtener detalles completos.

Los complementos exportan una función o un objeto con register(api):

export default definePluginEntry({
id: "my-plugin",
name: "My Plugin",
register(api) {
api.registerProvider({
/* ... */
});
api.registerTool({
/* ... */
});
api.registerChannel({
/* ... */
});
},
});

Métodos de registro comunes:

MétodoLo que registra
registerProviderProveedor de modelos (LLM)
registerChannelCanal de chat
registerToolHerramienta de agente
registerHook / on(...)Ganchos del ciclo de vida
registerSpeechProviderTexto a voz / STT
registerMediaUnderstandingProviderAnálisis de imagen/audio
registerImageGenerationProviderGeneración de imágenes
registerWebSearchProviderBúsqueda web
registerHttpRouteEndpoint HTTP
registerCommand / registerCliComandos CLI
registerContextEngineMotor de contexto
registerServiceServicio en segundo plano

Comportamiento del guarda de gancho para ganchos del ciclo de vida tipados:

  • before_tool_call: { block: true } es terminal; se omiten los controladores de menor prioridad.
  • before_tool_call: { block: false } es una no-op y no borra un bloque anterior.
  • before_install: { block: true } es terminal; se omiten los controladores de menor prioridad.
  • before_install: { block: false } es una no-op y no borra un bloque anterior.
  • message_sending: { cancel: true } es terminal; se omiten los controladores de menor prioridad.
  • message_sending: { cancel: false } es una no-op y no borra una cancelación anterior.

Para obtener el comportamiento completo de los ganchos tipados, consulte Información general del SDK.