Saltar al contenido principal

Migración del Plugin SDK

OpenClaw ha pasado de una amplia capa de compatibilidad hacia atrás a una arquitectura moderna de plugins con importaciones enfocadas y documentadas. Si tu plugin se creó antes de la nueva arquitectura, esta guía te ayuda a migrarlo.

Qué está cambiando

El sistema anterior de plugins proporcionaba dos superficies muy abiertas que permitían a los plugins importar cualquier cosa que necesitaran desde un único punto de entrada:
  • openclaw/plugin-sdk/compat — una sola importación que reexportaba decenas de helpers. Se introdujo para mantener en funcionamiento plugins más antiguos basados en hooks mientras se construía la nueva arquitectura de plugins.
  • openclaw/extension-api — un puente que daba a los plugins acceso directo a helpers del lado del host, como el ejecutor de agente embebido.
Ambas superficies ahora están obsoletas. Siguen funcionando en tiempo de ejecución, pero los plugins nuevos no deben usarlas, y los plugins existentes deberían migrar antes de que la próxima versión principal las elimine.
La capa de compatibilidad hacia atrás se eliminará en una futura versión principal. Los plugins que sigan importando desde estas superficies dejarán de funcionar cuando eso ocurra.

Por qué cambió esto

El enfoque anterior causaba problemas:
  • Inicio lento — importar un helper cargaba decenas de módulos no relacionados
  • Dependencias circulares — las reexportaciones amplias facilitaban la creación de ciclos de importación
  • Superficie API poco clara — no había forma de saber qué exportaciones eran estables y cuáles eran internas
El moderno plugin SDK soluciona esto: cada ruta de importación (openclaw/plugin-sdk/\<subpath\>) es un módulo pequeño, autocontenido, con un propósito claro y un contrato documentado. Las superficies heredadas de conveniencia para proveedores de canales empaquetados también han desaparecido. Las importaciones como openclaw/plugin-sdk/slack, openclaw/plugin-sdk/discord, openclaw/plugin-sdk/signal, openclaw/plugin-sdk/whatsapp, las superficies helper con marca de canal y openclaw/plugin-sdk/telegram-core eran atajos privados del monorepo, no contratos estables para plugins. Usa en su lugar subrutas genéricas y específicas del SDK. Dentro del espacio de trabajo de plugins empaquetados, mantén los helpers propiedad del proveedor en el propio api.ts o runtime-api.ts de ese plugin. Ejemplos actuales de proveedores empaquetados:
  • Anthropic mantiene helpers de flujo específicos de Claude en su propia superficie api.ts / contract-api.ts
  • OpenAI mantiene constructores de proveedores, helpers de modelos predeterminados y constructores de proveedores realtime en su propio api.ts
  • OpenRouter mantiene el constructor del proveedor y los helpers de onboarding/configuración en su propio api.ts

Cómo migrar

1

Migra los handlers nativos de aprobación a hechos de capacidad

Los plugins de canal con capacidad de aprobación ahora exponen el comportamiento nativo de aprobación mediante approvalCapability.nativeRuntime más el registro compartido de contexto de runtime.Cambios clave:
  • Reemplaza approvalCapability.handler.loadRuntime(...) por approvalCapability.nativeRuntime
  • Mueve la autenticación/entrega específica de aprobación fuera del cableado heredado plugin.auth / plugin.approvals y colócalo en approvalCapability
  • ChannelPlugin.approvals se ha eliminado del contrato público de plugins de canal; mueve los campos delivery/native/render a approvalCapability
  • plugin.auth se mantiene solo para flujos de login/logout del canal; los hooks de autenticación de aprobación allí ya no son leídos por el núcleo
  • Registra objetos de runtime propiedad del canal, como clientes, tokens o apps Bolt, mediante openclaw/plugin-sdk/channel-runtime-context
  • No envíes avisos de redirección propiedad del plugin desde handlers nativos de aprobación; el núcleo ahora se encarga de los avisos de enrutado a otro lugar a partir de resultados reales de entrega
  • Al pasar channelRuntime a createChannelManager(...), proporciona una superficie real createPluginRuntime().channel. Los stubs parciales se rechazan.
Consulta /plugins/sdk-channel-plugins para ver el diseño actual de capacidades de aprobación.
2

Audita el comportamiento de respaldo del wrapper de Windows

Si tu plugin usa openclaw/plugin-sdk/windows-spawn, los wrappers .cmd/.bat no resueltos de Windows ahora fallan en modo cerrado, a menos que pases explícitamente allowShellFallback: true.
// Antes
const program = applyWindowsSpawnProgramPolicy({ candidate });

// Después
const program = applyWindowsSpawnProgramPolicy({
  candidate,
  // Establece esto solo para llamantes de compatibilidad de confianza que
  // aceptan intencionalmente el respaldo mediado por shell.
  allowShellFallback: true,
});
Si tu llamante no depende intencionalmente del respaldo por shell, no establezcas allowShellFallback y maneja el error lanzado en su lugar.
3

Encuentra importaciones obsoletas

Busca en tu plugin importaciones desde cualquiera de estas dos superficies obsoletas:
grep -r "plugin-sdk/compat" my-plugin/
grep -r "openclaw/extension-api" my-plugin/
4

Reemplázalas por importaciones enfocadas

Cada exportación de la superficie antigua se corresponde con una ruta de importación moderna específica:
// Antes (capa obsoleta de compatibilidad hacia atrás)
import {
  createChannelReplyPipeline,
  createPluginRuntimeStore,
  resolveControlCommandGate,
} from "openclaw/plugin-sdk/compat";

// Después (importaciones modernas y enfocadas)
import { createChannelReplyPipeline } from "openclaw/plugin-sdk/channel-reply-pipeline";
import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
import { resolveControlCommandGate } from "openclaw/plugin-sdk/command-auth";
Para helpers del lado del host, usa el runtime de plugin inyectado en lugar de importar directamente:
// Antes (puente extension-api obsoleto)
import { runEmbeddedPiAgent } from "openclaw/extension-api";
const result = await runEmbeddedPiAgent({ sessionId, prompt });

// Después (runtime inyectado)
const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt });
El mismo patrón se aplica a otros helpers heredados del puente:
Importación antiguaEquivalente moderno
resolveAgentDirapi.runtime.agent.resolveAgentDir
resolveAgentWorkspaceDirapi.runtime.agent.resolveAgentWorkspaceDir
resolveAgentIdentityapi.runtime.agent.resolveAgentIdentity
resolveThinkingDefaultapi.runtime.agent.resolveThinkingDefault
resolveAgentTimeoutMsapi.runtime.agent.resolveAgentTimeoutMs
ensureAgentWorkspaceapi.runtime.agent.ensureAgentWorkspace
helpers del almacén de sesionesapi.runtime.agent.session.*
5

Compila y prueba

pnpm build
pnpm test -- my-plugin/

Referencia de rutas de importación

Ruta de importaciónPropósitoExportaciones clave
plugin-sdk/plugin-entryHelper canónico de entrada de plugindefinePluginEntry
plugin-sdk/coreReexportación paraguas heredada para definiciones/constructores de entrada de canaldefineChannelPluginEntry, createChatChannelPlugin
plugin-sdk/config-schemaExportación del esquema raíz de configuraciónOpenClawSchema
plugin-sdk/provider-entryHelper de entrada de proveedor únicodefineSingleProviderPluginEntry
plugin-sdk/channel-coreDefiniciones y constructores enfocados de entrada de canaldefineChannelPluginEntry, defineSetupPluginEntry, createChatChannelPlugin, createChannelPluginBase
plugin-sdk/setupHelpers compartidos del asistente de configuraciónPrompts de listas de permitidos, constructores de estado de configuración
plugin-sdk/setup-runtimeHelpers de runtime en tiempo de configuraciónAdaptadores de parches de configuración seguros para importación, helpers de notas de búsqueda, promptResolvedAllowFrom, splitSetupEntries, proxies delegados de configuración
plugin-sdk/setup-adapter-runtimeHelpers del adaptador de configuracióncreateEnvPatchedAccountSetupAdapter
plugin-sdk/setup-toolsHelpers de herramientas de configuraciónformatCliCommand, detectBinary, extractArchive, resolveBrewExecutable, formatDocsLink, CONFIG_DIR
plugin-sdk/account-coreHelpers de múltiples cuentasHelpers de lista/configuración/compuertas de acciones de cuenta
plugin-sdk/account-idHelpers de id de cuentaDEFAULT_ACCOUNT_ID, normalización de id de cuenta
plugin-sdk/account-resolutionHelpers de búsqueda de cuentaHelpers de búsqueda de cuenta + respaldo predeterminado
plugin-sdk/account-helpersHelpers de cuenta específicosHelpers de lista de cuentas/acción de cuenta
plugin-sdk/channel-setupAdaptadores del asistente de configuracióncreateOptionalChannelSetupSurface, createOptionalChannelSetupAdapter, createOptionalChannelSetupWizard, además de DEFAULT_ACCOUNT_ID, createTopLevelChannelDmPolicy, setSetupChannelEnabled, splitSetupEntries
plugin-sdk/channel-pairingPrimitivas de emparejamiento de DMcreateChannelPairingController
plugin-sdk/channel-reply-pipelineCableado de prefijo de respuesta + escrituracreateChannelReplyPipeline
plugin-sdk/channel-config-helpersFábricas de adaptadores de configuracióncreateHybridChannelConfigAdapter
plugin-sdk/channel-config-schemaConstructores de esquema de configuraciónTipos de esquema de configuración de canal
plugin-sdk/telegram-command-configHelpers de configuración de comandos de TelegramNormalización de nombres de comando, recorte de descripciones, validación de duplicados/conflictos
plugin-sdk/channel-policyResolución de políticas de grupo/DMresolveChannelGroupRequireMention
plugin-sdk/channel-lifecycleSeguimiento del estado de cuentacreateAccountStatusSink
plugin-sdk/inbound-envelopeHelpers de envoltorio entranteHelpers compartidos de ruta + construcción de envoltorio
plugin-sdk/inbound-reply-dispatchHelpers de respuesta entranteHelpers compartidos de registro y despacho
plugin-sdk/messaging-targetsAnálisis de objetivos de mensajeríaHelpers de análisis/coincidencia de objetivos
plugin-sdk/outbound-mediaHelpers de medios salientesCarga compartida de medios salientes
plugin-sdk/outbound-runtimeHelpers de runtime salienteHelpers delegados de identidad/envío saliente
plugin-sdk/thread-bindings-runtimeHelpers de bindings de hiloCiclo de vida de bindings de hilo y helpers de adaptador
plugin-sdk/agent-media-payloadHelpers heredados de carga útil de mediosConstructor de carga útil de medios de agente para diseños heredados de campos
plugin-sdk/channel-runtimeShim obsoleto de compatibilidadSolo utilidades heredadas de runtime de canal
plugin-sdk/channel-send-resultTipos de resultado de envíoTipos de resultado de respuesta
plugin-sdk/runtime-storeAlmacenamiento persistente del plugincreatePluginRuntimeStore
plugin-sdk/runtimeHelpers amplios de runtimeHelpers de runtime/logging/backup/instalación de plugins
plugin-sdk/runtime-envHelpers específicos de entorno de runtimeLogger/entorno de runtime, timeout, retry y helpers de backoff
plugin-sdk/plugin-runtimeHelpers compartidos de runtime de pluginHelpers de comandos/hooks/http/interactivos de plugin
plugin-sdk/hook-runtimeHelpers de pipeline de hooksHelpers compartidos del pipeline de hooks webhook/internos
plugin-sdk/lazy-runtimeHelpers de runtime diferidocreateLazyRuntimeModule, createLazyRuntimeMethod, createLazyRuntimeMethodBinder, createLazyRuntimeNamedExport, createLazyRuntimeSurface
plugin-sdk/process-runtimeHelpers de procesoHelpers compartidos de exec
plugin-sdk/cli-runtimeHelpers de runtime de CLIFormato de comandos, esperas, helpers de versión
plugin-sdk/gateway-runtimeHelpers del GatewayCliente Gateway y helpers de parcheo de estado de canal
plugin-sdk/config-runtimeHelpers de configuraciónHelpers de carga/escritura de configuración
plugin-sdk/telegram-command-configHelpers de comandos de TelegramHelpers de validación de comandos de Telegram estables como respaldo cuando la superficie de contrato empaquetada de Telegram no está disponible
plugin-sdk/approval-runtimeHelpers de prompts de aprobaciónCarga útil de aprobación de exec/plugin, helpers de capacidad/perfil de aprobación, helpers nativos de routing/runtime de aprobación
plugin-sdk/approval-auth-runtimeHelpers de auth de aprobaciónResolución del aprobador, auth de acción en el mismo chat
plugin-sdk/approval-client-runtimeHelpers de cliente de aprobaciónHelpers de perfil/filtro nativos de aprobación de exec
plugin-sdk/approval-delivery-runtimeHelpers de entrega de aprobaciónAdaptadores nativos de capacidad/entrega de aprobación
plugin-sdk/approval-gateway-runtimeHelpers de Gateway de aprobaciónHelper compartido de resolución de gateway de aprobación
plugin-sdk/approval-handler-adapter-runtimeHelpers de adaptador de aprobaciónHelpers ligeros de carga de adaptadores nativos de aprobación para puntos de entrada de canal activos
plugin-sdk/approval-handler-runtimeHelpers de handler de aprobaciónHelpers más amplios de runtime de handlers de aprobación; prefiere las superficies más específicas de adaptador/gateway cuando sean suficientes
plugin-sdk/approval-native-runtimeHelpers de objetivos de aprobaciónHelpers nativos de binding de objetivo/cuenta de aprobación
plugin-sdk/approval-reply-runtimeHelpers de respuesta de aprobaciónHelpers de carga útil de respuesta de aprobación de exec/plugin
plugin-sdk/channel-runtime-contextHelpers de contexto de runtime de canalHelpers genéricos de registro/obtención/observación del contexto de runtime de canal
plugin-sdk/security-runtimeHelpers de seguridadHelpers compartidos de confianza, restricción de DM, contenido externo y recopilación de secretos
plugin-sdk/ssrf-policyHelpers de política SSRFHelpers de lista de permitidos de hosts y política de red privada
plugin-sdk/ssrf-runtimeHelpers de runtime SSRFHelpers de dispatcher fijado, fetch protegido y política SSRF
plugin-sdk/collection-runtimeHelpers de caché limitadapruneMapToMaxSize
plugin-sdk/diagnostic-runtimeHelpers de restricción diagnósticaisDiagnosticFlagEnabled, isDiagnosticsEnabled
plugin-sdk/error-runtimeHelpers de formato de erroresformatUncaughtError, isApprovalNotFoundError, helpers de grafo de errores
plugin-sdk/fetch-runtimeHelpers envueltos de fetch/proxyresolveFetch, helpers de proxy
plugin-sdk/host-runtimeHelpers de normalización del hostnormalizeHostname, normalizeScpRemoteHost
plugin-sdk/retry-runtimeHelpers de retryRetryConfig, retryAsync, ejecutores de políticas
plugin-sdk/allow-fromFormateo de lista de permitidosformatAllowFromLowercase
plugin-sdk/allowlist-resolutionMapeo de entradas de lista de permitidosmapAllowlistResolutionInputs
plugin-sdk/command-authRestricción de comandos y helpers de superficie de comandosresolveControlCommandGate, helpers de autorización de remitente, helpers de registro de comandos
plugin-sdk/secret-inputAnálisis de entrada secretaHelpers de entrada secreta
plugin-sdk/webhook-ingressHelpers de solicitud webhookUtilidades de objetivo webhook
plugin-sdk/webhook-request-guardsHelpers de guardas de cuerpo webhookHelpers de lectura/límite del cuerpo de solicitud
plugin-sdk/reply-runtimeRuntime compartido de respuestaDespacho entrante, heartbeat, planificador de respuesta, fragmentación
plugin-sdk/reply-dispatch-runtimeHelpers específicos de despacho de respuestaHelpers de finalización + despacho de proveedor
plugin-sdk/reply-historyHelpers de historial de respuestabuildHistoryContext, buildPendingHistoryContextFromMap, recordPendingHistoryEntry, clearHistoryEntriesIfEnabled
plugin-sdk/reply-referencePlanificación de referencias de respuestacreateReplyReferencePlanner
plugin-sdk/reply-chunkingHelpers de fragmentación de respuestaHelpers de fragmentación de texto/markdown
plugin-sdk/session-store-runtimeHelpers de almacén de sesionesRuta del almacén + helpers de updated-at
plugin-sdk/state-pathsHelpers de rutas de estadoHelpers de directorios de estado y OAuth
plugin-sdk/routingHelpers de routing/clave de sesiónresolveAgentRoute, buildAgentSessionKey, resolveDefaultAgentBoundAccountId, helpers de normalización de clave de sesión
plugin-sdk/status-helpersHelpers de estado de canalConstructores de resúmenes de estado de canal/cuenta, valores predeterminados de estado de runtime, helpers de metadatos de incidencias
plugin-sdk/target-resolver-runtimeHelpers de resolución de objetivosHelpers compartidos de resolución de objetivos
plugin-sdk/string-normalization-runtimeHelpers de normalización de cadenasHelpers de normalización de slug/cadenas
plugin-sdk/request-urlHelpers de URL de solicitudExtrae URLs de cadena de entradas similares a solicitudes
plugin-sdk/run-commandHelpers de comandos temporizadosEjecutor de comandos temporizados con stdout/stderr normalizados
plugin-sdk/param-readersLectores de parámetrosLectores comunes de parámetros de herramientas/CLI
plugin-sdk/tool-sendExtracción de envío de herramientasExtrae campos canónicos de objetivo de envío desde argumentos de herramientas
plugin-sdk/temp-pathHelpers de ruta temporalHelpers compartidos de ruta temporal de descarga
plugin-sdk/logging-coreHelpers de loggingLogger de subsistema y helpers de redacción
plugin-sdk/markdown-table-runtimeHelpers de tablas MarkdownHelpers de modo de tabla Markdown
plugin-sdk/reply-payloadTipos de respuesta de mensajeTipos de carga útil de respuesta
plugin-sdk/provider-setupHelpers seleccionados de configuración de proveedores locales/autohospedadosHelpers de descubrimiento/configuración de proveedores autohospedados
plugin-sdk/self-hosted-provider-setupHelpers enfocados de configuración de proveedores autohospedados compatibles con OpenAILos mismos helpers de descubrimiento/configuración de proveedores autohospedados
plugin-sdk/provider-auth-runtimeHelpers de auth de runtime del proveedorHelpers de resolución de API key en runtime
plugin-sdk/provider-auth-api-keyHelpers de configuración de API key del proveedorHelpers de onboarding/escritura de perfil de API key
plugin-sdk/provider-auth-resultHelpers de resultado de auth del proveedorConstructor estándar de resultado de auth OAuth
plugin-sdk/provider-auth-loginHelpers de login interactivo del proveedorHelpers compartidos de login interactivo
plugin-sdk/provider-env-varsHelpers de variables de entorno del proveedorHelpers de búsqueda de variables de entorno de auth del proveedor
plugin-sdk/provider-model-sharedHelpers compartidos de modelo/repetición del proveedorProviderReplayFamily, buildProviderReplayFamilyHooks, normalizeModelCompat, constructores compartidos de políticas de repetición, helpers de endpoints del proveedor y helpers de normalización de id de modelo
plugin-sdk/provider-catalog-sharedHelpers compartidos de catálogo del proveedorfindCatalogTemplate, buildSingleProviderApiKeyCatalog, supportsNativeStreamingUsageCompat, applyProviderNativeStreamingUsageCompat
plugin-sdk/provider-onboardParches de onboarding del proveedorHelpers de configuración de onboarding
plugin-sdk/provider-httpHelpers HTTP del proveedorHelpers genéricos de HTTP/capacidades de endpoint del proveedor
plugin-sdk/provider-web-fetchHelpers de web-fetch del proveedorHelpers de registro/caché del proveedor web-fetch
plugin-sdk/provider-web-search-contractHelpers de contrato de búsqueda web del proveedorHelpers específicos de contrato de configuración/credenciales de búsqueda web como enablePluginInConfig, resolveProviderWebSearchPluginConfig y setters/getters de credenciales con alcance
plugin-sdk/provider-web-searchHelpers de búsqueda web del proveedorHelpers de registro/caché/runtime del proveedor de búsqueda web
plugin-sdk/provider-toolsHelpers de compatibilidad de herramientas/esquema del proveedorProviderToolCompatFamily, buildProviderToolCompatFamilyHooks, limpieza + diagnósticos de esquema Gemini y helpers de compatibilidad xAI como resolveXaiModelCompatPatch / applyXaiModelCompat
plugin-sdk/provider-usageHelpers de uso del proveedorfetchClaudeUsage, fetchGeminiUsage, fetchGithubCopilotUsage y otros helpers de uso del proveedor
plugin-sdk/provider-streamHelpers de wrapper de flujo del proveedorProviderStreamFamily, buildProviderStreamFamilyHooks, composeProviderStreamWrappers, tipos de wrapper de flujo y helpers compartidos de wrappers Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot
plugin-sdk/keyed-async-queueCola async ordenadaKeyedAsyncQueue
plugin-sdk/media-runtimeHelpers compartidos de mediosHelpers de obtención/transformación/almacenamiento de medios más constructores de carga útil de medios
plugin-sdk/media-generation-runtimeHelpers compartidos de generación de mediosHelpers compartidos de failover, selección de candidatos y mensajes de modelo ausente para generación de imagen/video/música
plugin-sdk/media-understandingHelpers de comprensión de mediosTipos de proveedor de comprensión de medios más exportaciones de helpers de imagen/audio orientados al proveedor
plugin-sdk/text-runtimeHelpers compartidos de textoEliminación de texto visible para el asistente, helpers de renderizado/fragmentación/tablas Markdown, helpers de redacción, helpers de etiquetas de directiva, utilidades de texto seguro y helpers relacionados de texto/logging
plugin-sdk/text-chunkingHelpers de fragmentación de textoHelper de fragmentación de texto saliente
plugin-sdk/speechHelpers de vozTipos de proveedor de voz más helpers orientados al proveedor para directivas, registro y validación
plugin-sdk/speech-coreNúcleo compartido de vozTipos de proveedor de voz, registro, directivas, normalización
plugin-sdk/realtime-transcriptionHelpers de transcripción en tiempo realTipos de proveedor y helpers de registro
plugin-sdk/realtime-voiceHelpers de voz en tiempo realTipos de proveedor y helpers de registro
plugin-sdk/image-generation-coreNúcleo compartido de generación de imágenesTipos de generación de imágenes, failover, auth y helpers de registro
plugin-sdk/music-generationHelpers de generación musicalTipos de proveedor/solicitud/resultado de generación musical
plugin-sdk/music-generation-coreNúcleo compartido de generación musicalTipos de generación musical, helpers de failover, búsqueda de proveedor y análisis de model-ref
plugin-sdk/video-generationHelpers de generación de videoTipos de proveedor/solicitud/resultado de generación de video
plugin-sdk/video-generation-coreNúcleo compartido de generación de videoTipos de generación de video, helpers de failover, búsqueda de proveedor y análisis de model-ref
plugin-sdk/interactive-runtimeHelpers de respuesta interactivaNormalización/reducción de carga útil de respuesta interactiva
plugin-sdk/channel-config-primitivesPrimitivas de configuración de canalPrimitivas específicas de esquema de configuración de canal
plugin-sdk/channel-config-writesHelpers de escritura de configuración de canalHelpers de autorización de escritura de configuración de canal
plugin-sdk/channel-plugin-commonPreludio compartido de canalExportaciones compartidas del preludio de plugin de canal
plugin-sdk/channel-statusHelpers de estado de canalHelpers compartidos de instantánea/resumen de estado de canal
plugin-sdk/allowlist-config-editHelpers de configuración de lista de permitidosHelpers de edición/lectura de configuración de lista de permitidos
plugin-sdk/group-accessHelpers de acceso a gruposHelpers compartidos de decisión de acceso a grupos
plugin-sdk/direct-dmHelpers de DM directoHelpers compartidos de auth/protección para DM directo
plugin-sdk/extension-sharedHelpers compartidos de extensionesPrimitivas de canal pasivo/estado y helper de proxy ambiental
plugin-sdk/webhook-targetsHelpers de objetivos webhookRegistro de objetivos webhook y helpers de instalación de rutas
plugin-sdk/webhook-pathHelpers de ruta webhookHelpers de normalización de ruta webhook
plugin-sdk/web-mediaHelpers compartidos de medios webHelpers de carga de medios remotos/locales
plugin-sdk/zodReexportación de Zodzod reexportado para consumidores del plugin SDK
plugin-sdk/memory-coreHelpers empaquetados de memory-coreSuperficie helper de administrador/configuración/archivo/CLI de memoria
plugin-sdk/memory-core-engine-runtimeFachada de runtime del motor de memoriaFachada de runtime de índice/búsqueda de memoria
plugin-sdk/memory-core-host-engine-foundationMotor base del host de memoriaExportaciones del motor base del host de memoria
plugin-sdk/memory-core-host-engine-embeddingsMotor de embeddings del host de memoriaExportaciones del motor de embeddings del host de memoria
plugin-sdk/memory-core-host-engine-qmdMotor QMD del host de memoriaExportaciones del motor QMD del host de memoria
plugin-sdk/memory-core-host-engine-storageMotor de almacenamiento del host de memoriaExportaciones del motor de almacenamiento del host de memoria
plugin-sdk/memory-core-host-multimodalHelpers multimodales del host de memoriaHelpers multimodales del host de memoria
plugin-sdk/memory-core-host-queryHelpers de consultas del host de memoriaHelpers de consultas del host de memoria
plugin-sdk/memory-core-host-secretHelpers de secretos del host de memoriaHelpers de secretos del host de memoria
plugin-sdk/memory-core-host-eventsHelpers de diario de eventos del host de memoriaHelpers de diario de eventos del host de memoria
plugin-sdk/memory-core-host-statusHelpers de estado del host de memoriaHelpers de estado del host de memoria
plugin-sdk/memory-core-host-runtime-cliRuntime CLI del host de memoriaHelpers de runtime CLI del host de memoria
plugin-sdk/memory-core-host-runtime-coreRuntime principal del host de memoriaHelpers de runtime principal del host de memoria
plugin-sdk/memory-core-host-runtime-filesHelpers de archivos/runtime del host de memoriaHelpers de archivos/runtime del host de memoria
plugin-sdk/memory-host-coreAlias de runtime principal del host de memoriaAlias neutral de proveedor para helpers del runtime principal del host de memoria
plugin-sdk/memory-host-eventsAlias del diario de eventos del host de memoriaAlias neutral de proveedor para helpers del diario de eventos del host de memoria
plugin-sdk/memory-host-filesAlias de archivos/runtime del host de memoriaAlias neutral de proveedor para helpers de archivos/runtime del host de memoria
plugin-sdk/memory-host-markdownHelpers de markdown gestionadoHelpers compartidos de markdown gestionado para plugins adyacentes a memoria
plugin-sdk/memory-host-searchFachada activa de búsqueda en memoriaFachada lazy del runtime del administrador de búsqueda de memoria activa
plugin-sdk/memory-host-statusAlias de estado del host de memoriaAlias neutral de proveedor para helpers de estado del host de memoria
plugin-sdk/memory-lancedbHelpers empaquetados de memory-lancedbSuperficie helper de memory-lancedb
plugin-sdk/testingUtilidades de pruebaHelpers y mocks de prueba
Esta tabla es intencionalmente el subconjunto común de migración, no toda la superficie del SDK. La lista completa de más de 200 puntos de entrada está en scripts/lib/plugin-sdk-entrypoints.json. Esa lista todavía incluye algunas superficies helper de plugins empaquetados como plugin-sdk/feishu, plugin-sdk/feishu-setup, plugin-sdk/zalo, plugin-sdk/zalo-setup y plugin-sdk/matrix*. Siguen exportándose para mantenimiento y compatibilidad de plugins empaquetados, pero se omiten intencionalmente de la tabla común de migración y no son el objetivo recomendado para código nuevo de plugins. La misma regla se aplica a otras familias de helpers empaquetados como:
  • helpers de compatibilidad con navegador: plugin-sdk/browser-cdp, plugin-sdk/browser-config-runtime, plugin-sdk/browser-config-support, plugin-sdk/browser-control-auth, plugin-sdk/browser-node-runtime, plugin-sdk/browser-profiles, plugin-sdk/browser-security-runtime, plugin-sdk/browser-setup-tools, plugin-sdk/browser-support
  • Matrix: plugin-sdk/matrix*
  • LINE: plugin-sdk/line*
  • IRC: plugin-sdk/irc*
  • superficies de helpers/plugins empaquetados como plugin-sdk/googlechat, plugin-sdk/zalouser, plugin-sdk/bluebubbles*, plugin-sdk/mattermost*, plugin-sdk/msteams, plugin-sdk/nextcloud-talk, plugin-sdk/nostr, plugin-sdk/tlon, plugin-sdk/twitch, plugin-sdk/github-copilot-login, plugin-sdk/github-copilot-token, plugin-sdk/diagnostics-otel, plugin-sdk/diffs, plugin-sdk/llm-task, plugin-sdk/thread-ownership y plugin-sdk/voice-call
plugin-sdk/github-copilot-token expone actualmente la superficie específica de helpers de token DEFAULT_COPILOT_API_BASE_URL, deriveCopilotApiBaseUrlFromToken y resolveCopilotApiToken. Usa la importación más específica que se ajuste a la tarea. Si no encuentras una exportación, consulta el código fuente en src/plugin-sdk/ o pregunta en Discord.

Cronograma de eliminación

CuándoQué ocurre
AhoraLas superficies obsoletas emiten advertencias en tiempo de ejecución
Próxima versión principalLas superficies obsoletas se eliminarán; los plugins que sigan usándolas fallarán
Todos los plugins principales ya se han migrado. Los plugins externos deberían migrar antes de la próxima versión principal.

Suprimir temporalmente las advertencias

Configura estas variables de entorno mientras trabajas en la migración:
OPENCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 openclaw gateway run
OPENCLAW_SUPPRESS_EXTENSION_API_WARNING=1 openclaw gateway run
Esto es una vía de escape temporal, no una solución permanente.

Relacionado