Zum Hauptinhalt springen

Plugin-SDK-Überblick

Das Plugin-SDK ist der typisierte Vertrag zwischen Plugins und dem Core. Diese Seite ist die Referenz für was importiert werden soll und was Sie registrieren können.
Suchen Sie eine How-to-Anleitung?

Importkonvention

Importieren Sie immer aus einem spezifischen Subpath:
import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
Jeder Subpath ist ein kleines, eigenständiges Modul. Das hält den Start schnell und verhindert Probleme mit zirkulären Abhängigkeiten. Für kanalspezifische Einstiegs-/Build-Helfer bevorzugen Sie openclaw/plugin-sdk/channel-core; behalten Sie openclaw/plugin-sdk/core für die breitere Umbrella-Oberfläche und gemeinsame Helfer wie buildChannelConfigSchema. Fügen Sie keine providerbenannten Convenience-Seams hinzu und hängen Sie nicht von ihnen ab, wie openclaw/plugin-sdk/slack, openclaw/plugin-sdk/discord, openclaw/plugin-sdk/signal, openclaw/plugin-sdk/whatsapp oder kanalgebrandeten Helfer-Seams. Gebündelte Plugins sollten generische SDK-Subpaths in ihren eigenen api.ts- oder runtime-api.ts-Barrels zusammensetzen, und der Core sollte entweder diese pluginlokalen Barrels verwenden oder einen schmalen generischen SDK- Vertrag hinzufügen, wenn der Bedarf wirklich kanalübergreifend ist. Die generierte Export-Map enthält weiterhin eine kleine Menge gebündelter Plugin-Helfer- Seams wie plugin-sdk/feishu, plugin-sdk/feishu-setup, plugin-sdk/zalo, plugin-sdk/zalo-setup und plugin-sdk/matrix*. Diese Subpaths existieren nur für die Wartung gebündelter Plugins und für Kompatibilität; sie werden bewusst aus der allgemeinen Tabelle unten ausgelassen und sind nicht der empfohlene Importpfad für neue Drittanbieter-Plugins.

Referenz der Subpaths

Die am häufigsten verwendeten Subpaths, nach Zweck gruppiert. Die generierte vollständige Liste von über 200 Subpaths befindet sich in scripts/lib/plugin-sdk-entrypoints.json. Reservierte Helfer-Subpaths für gebündelte Plugins erscheinen weiterhin in dieser generierten Liste. Behandeln Sie diese als Implementierungsdetail-/Kompatibilitätsoberflächen, es sei denn, eine Dokumentationsseite weist ausdrücklich einen davon als öffentlich aus.

Plugin-Einstiegspunkt

SubpathWichtige Exporte
plugin-sdk/plugin-entrydefinePluginEntry
plugin-sdk/coredefineChannelPluginEntry, createChatChannelPlugin, createChannelPluginBase, defineSetupPluginEntry, buildChannelConfigSchema
plugin-sdk/config-schemaOpenClawSchema
plugin-sdk/provider-entrydefineSingleProviderPluginEntry
SubpathWichtige Exporte
plugin-sdk/channel-coredefineChannelPluginEntry, defineSetupPluginEntry, createChatChannelPlugin, createChannelPluginBase
plugin-sdk/config-schemaExport des Zod-Schemas für Root-openclaw.json (OpenClawSchema)
plugin-sdk/channel-setupcreateOptionalChannelSetupSurface, createOptionalChannelSetupAdapter, createOptionalChannelSetupWizard, plus DEFAULT_ACCOUNT_ID, createTopLevelChannelDmPolicy, setSetupChannelEnabled, splitSetupEntries
plugin-sdk/setupGemeinsame Helfer für Setup-Assistenten, Allowlist-Abfragen, Setup-Status-Builder
plugin-sdk/setup-runtimecreatePatchedAccountSetupAdapter, createEnvPatchedAccountSetupAdapter, createSetupInputPresenceValidator, noteChannelLookupFailure, noteChannelLookupSummary, promptResolvedAllowFrom, splitSetupEntries, createAllowlistSetupWizardProxy, createDelegatedSetupWizardProxy
plugin-sdk/setup-adapter-runtimecreateEnvPatchedAccountSetupAdapter
plugin-sdk/setup-toolsformatCliCommand, detectBinary, extractArchive, resolveBrewExecutable, formatDocsLink, CONFIG_DIR
plugin-sdk/account-coreHelfer für Multi-Account-Konfiguration/Aktions-Gates, Helfer für Default-Account-Fallback
plugin-sdk/account-idDEFAULT_ACCOUNT_ID, Helfer zur Normalisierung von Account-IDs
plugin-sdk/account-resolutionAccount-Lookup- + Default-Fallback-Helfer
plugin-sdk/account-helpersSchmale Helfer für Account-Listen/Account-Aktionen
plugin-sdk/channel-pairingcreateChannelPairingController
plugin-sdk/channel-reply-pipelinecreateChannelReplyPipeline
plugin-sdk/channel-config-helperscreateHybridChannelConfigAdapter
plugin-sdk/channel-config-schemaTypen für Kanalkonfigurationsschema
plugin-sdk/telegram-command-configHelfer zur Normalisierung/Validierung benutzerdefinierter Telegram-Befehle mit gebündeltem Vertrags-Fallback
plugin-sdk/command-gatingSchmale Helfer für Gates der Befehlsautorisierung
plugin-sdk/channel-policyresolveChannelGroupRequireMention
plugin-sdk/channel-lifecyclecreateAccountStatusSink, Helfer für Entwurfs-Stream-Lebenszyklus/Finalisierung
plugin-sdk/inbound-envelopeGemeinsame Helfer für eingehendes Routing + Envelope-Builder
plugin-sdk/inbound-reply-dispatchGemeinsame Helfer für eingehendes Erfassen-und-Dispatch
plugin-sdk/messaging-targetsHelfer zum Parsen/Abgleichen von Zielen
plugin-sdk/outbound-mediaGemeinsame Helfer zum Laden ausgehender Medien
plugin-sdk/outbound-runtimeHelfer für ausgehende Identität, Sendedelegat und Payload-Planung
plugin-sdk/poll-runtimeSchmale Helfer zur Poll-Normalisierung
plugin-sdk/thread-bindings-runtimeHelfer für den Lebenszyklus von Thread-Bindungen und Adapter
plugin-sdk/agent-media-payloadLegacy-Builder für Agenten-Media-Payload
plugin-sdk/conversation-runtimeHelfer für Konversations-/Thread-Bindung, Kopplung und konfigurierte Bindungen
plugin-sdk/runtime-config-snapshotHelfer für Laufzeit-Konfigurations-Snapshot
plugin-sdk/runtime-group-policyHelfer zur Auflösung von Gruppenrichtlinien zur Laufzeit
plugin-sdk/channel-statusGemeinsame Helfer für Status-Snapshot/Zusammenfassung von Kanälen
plugin-sdk/channel-config-primitivesSchmale Primitive für Kanalkonfigurationsschema
plugin-sdk/channel-config-writesHelfer für Autorisierung von Kanalkonfigurations-Schreibvorgängen
plugin-sdk/channel-plugin-commonGemeinsame Prelude-Exporte für Kanal-Plugins
plugin-sdk/allowlist-config-editHelfer zum Bearbeiten/Lesen von Allowlist-Konfiguration
plugin-sdk/group-accessGemeinsame Helfer für Entscheidungen zum Gruppenzugriff
plugin-sdk/direct-dmGemeinsame Helfer für direkte DM-Auth/Guards
plugin-sdk/interactive-runtimeSemantische Nachrichtenpräsentation, Zustellung und Legacy-Helfer für interaktive Antworten. Siehe Message Presentation
plugin-sdk/channel-inboundKompatibilitäts-Barrel für Inbound-Debounce, Erwähnungsabgleich, Helfer für Erwähnungsrichtlinien und Envelope-Helfer
plugin-sdk/channel-mention-gatingSchmale Helfer für Erwähnungsrichtlinien ohne die breitere Oberfläche für die eingehende Laufzeit
plugin-sdk/channel-locationHelfer für Kontext und Formatierung von Kanalstandorten
plugin-sdk/channel-loggingHelfer für Kanal-Logging bei eingehenden Drops und Fehlversagen bei Typing/Ack
plugin-sdk/channel-send-resultTypen für Antwortergebnisse
plugin-sdk/channel-actionsHelfer für Kanal-Nachrichtenaktionen sowie veraltete native Schema-Helfer, die aus Plugin-Kompatibilitätsgründen beibehalten werden
plugin-sdk/channel-targetsHelfer zum Parsen/Abgleichen von Zielen
plugin-sdk/channel-contractTypen für Kanalverträge
plugin-sdk/channel-feedbackVerdrahtung von Feedback/Reaktionen
plugin-sdk/channel-secret-runtimeSchmale Helfer für Secret-Verträge wie collectSimpleChannelFieldAssignments, getChannelSurface, pushAssignment und Secret-Zieltypen
SubpathWichtige Exporte
plugin-sdk/provider-entrydefineSingleProviderPluginEntry
plugin-sdk/provider-setupKuratierte Setup-Helfer für lokale/selbstgehostete Provider
plugin-sdk/self-hosted-provider-setupFokussierte Setup-Helfer für OpenAI-kompatible selbstgehostete Provider
plugin-sdk/cli-backendCLI-Backend-Standards + Watchdog-Konstanten
plugin-sdk/provider-auth-runtimeHelfer zur Laufzeitauflösung von API-Schlüsseln für Provider-Plugins
plugin-sdk/provider-auth-api-keyHelfer für API-Key-Onboarding/Profilschreibvorgänge wie upsertApiKeyProfile
plugin-sdk/provider-auth-resultStandard-Builder für OAuth-Auth-Ergebnisse
plugin-sdk/provider-auth-loginGemeinsame interaktive Login-Helfer für Provider-Plugins
plugin-sdk/provider-env-varsHelfer zum Nachschlagen von Provider-Auth-Umgebungsvariablen
plugin-sdk/provider-authcreateProviderApiKeyAuthMethod, ensureApiKeyFromOptionEnvOrPrompt, upsertAuthProfile, upsertApiKeyProfile, writeOAuthCredentials
plugin-sdk/provider-model-sharedProviderReplayFamily, buildProviderReplayFamilyHooks, normalizeModelCompat, gemeinsame Builder für Replay-Richtlinien, Provider-Endpunkt-Helfer und Helfer zur Normalisierung von Modell-IDs wie normalizeNativeXaiModelId
plugin-sdk/provider-catalog-sharedfindCatalogTemplate, buildSingleProviderApiKeyCatalog, supportsNativeStreamingUsageCompat, applyProviderNativeStreamingUsageCompat
plugin-sdk/provider-httpGenerische Helfer für HTTP-/Endpunkt-Fähigkeiten von Providern
plugin-sdk/provider-web-fetch-contractSchmale Helfer für Verträge zur Web-Fetch-Konfiguration/-Auswahl wie enablePluginInConfig und WebFetchProviderPlugin
plugin-sdk/provider-web-fetchHelfer für Registrierung/Cache/Laufzeit von Web-Fetch-Providern
plugin-sdk/provider-web-search-config-contractSchmale Helfer für Web-Suche-Konfiguration/Anmeldedaten für Provider, die keine Plugin-Aktivierungsverdrahtung benötigen
plugin-sdk/provider-web-search-contractSchmale Helfer für Verträge zu Web-Suche-Konfiguration/Anmeldedaten wie createWebSearchProviderContractFields, enablePluginInConfig, resolveProviderWebSearchPluginConfig und Scoped Setter/Getter für Anmeldedaten
plugin-sdk/provider-web-searchHelfer für Registrierung/Cache/Laufzeit von Web-Suche-Providern
plugin-sdk/provider-toolsProviderToolCompatFamily, buildProviderToolCompatFamilyHooks, Bereinigung von Gemini-Schemata + Diagnose und xAI-Kompatibilitätshelfer wie resolveXaiModelCompatPatch / applyXaiModelCompat
plugin-sdk/provider-usagefetchClaudeUsage und ähnliche
plugin-sdk/provider-streamProviderStreamFamily, buildProviderStreamFamilyHooks, composeProviderStreamWrappers, Stream-Wrapper-Typen und gemeinsame Wrapper-Helfer für Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot
plugin-sdk/provider-transport-runtimeNative Helfer für Provider-Transporte wie geschütztes Fetch, Transformationen von Transportnachrichten und beschreibbare Event-Streams für Transporte
plugin-sdk/provider-onboardHelfer für Konfigurations-Patches beim Onboarding
plugin-sdk/global-singletonProzesslokale Helfer für Singleton/Map/Cache
SubpathWichtige Exporte
plugin-sdk/command-authresolveControlCommandGate, Helfer für Befehlsregistrierung, Helfer für Absenderautorisierung
plugin-sdk/command-statusBuilder für Befehls-/Hilfenachrichten wie buildCommandsMessagePaginated und buildHelpMessage
plugin-sdk/approval-auth-runtimeHelfer für Genehmigendenauflösung und Aktionsauth im selben Chat
plugin-sdk/approval-client-runtimeHelfer für native Exec-Genehmigungsprofile/-Filter
plugin-sdk/approval-delivery-runtimeAdapter für native Genehmigungsfunktionen/-zustellung
plugin-sdk/approval-gateway-runtimeGemeinsamer Helfer für die Auflösung des Genehmigungs-Gateways
plugin-sdk/approval-handler-adapter-runtimeLeichtgewichtige Helfer zum Laden nativer Genehmigungsadapter für Hot-Kanal-Einstiegspunkte
plugin-sdk/approval-handler-runtimeBreitere Laufzeithelfer für Genehmigungshandler; bevorzugen Sie die schmaleren Adapter-/Gateway-Seams, wenn diese ausreichen
plugin-sdk/approval-native-runtimeHelfer für natives Genehmigungsziel + Konto-Bindung
plugin-sdk/approval-reply-runtimeHelfer für Antwort-Nutzlasten bei Exec-/Plugin-Genehmigungen
plugin-sdk/command-auth-nativeNative Befehlsauth + native Helfer für Sitzungsziele
plugin-sdk/command-detectionGemeinsame Helfer zur Befehlserkennung
plugin-sdk/command-surfaceHelfer für Normalisierung von Befehlsinhalten und Befehlsoberflächen
plugin-sdk/allow-fromformatAllowFromLowercase
plugin-sdk/channel-secret-runtimeSchmale Helfer zur Sammlung von Secret-Verträgen für Secret-Oberflächen von Kanal/Plugin
plugin-sdk/secret-ref-runtimeSchmale Helfer für coerceSecretRef und SecretRef-Typisierung für Secret-Vertrags-/Konfigurations-Parsing
plugin-sdk/security-runtimeGemeinsame Helfer für Vertrauen, DM-Gating, externe Inhalte und Secret-Sammlung
plugin-sdk/ssrf-policyHelfer für Host-Allowlist und SSRF-Richtlinien für private Netzwerke
plugin-sdk/ssrf-dispatcherSchmale Helfer für gepinnte Dispatcher ohne die breite Infra-Laufzeitoberfläche
plugin-sdk/ssrf-runtimeHelfer für gepinnte Dispatcher, SSRF-geschütztes Fetch und SSRF-Richtlinien
plugin-sdk/secret-inputHelfer für das Parsen von Secret-Eingaben
plugin-sdk/webhook-ingressHelfer für Webhook-Requests/-Ziele
plugin-sdk/webhook-request-guardsHelfer für Größe/Timeout von Request-Bodys
SubpathWichtige Exporte
plugin-sdk/runtimeBreite Helfer für Laufzeit/Logging/Backups/Plugin-Installation
plugin-sdk/runtime-envSchmale Helfer für Laufzeit-Env, Logger, Timeout, Retry und Backoff
plugin-sdk/channel-runtime-contextGenerische Helfer für Registrierung und Lookup von Kanal-Laufzeitkontexten
plugin-sdk/runtime-storecreatePluginRuntimeStore
plugin-sdk/plugin-runtimeGemeinsame Helfer für Plugin-Befehle/Hooks/HTTP/Interaktivität
plugin-sdk/hook-runtimeGemeinsame Helfer für Webhook-/interne Hook-Pipelines
plugin-sdk/lazy-runtimeHelfer für Lazy-Laufzeitimporte/-Bindungen wie createLazyRuntimeModule, createLazyRuntimeMethod und createLazyRuntimeSurface
plugin-sdk/process-runtimeHelfer für Prozess-Exec
plugin-sdk/cli-runtimeHelfer für CLI-Formatierung, Warten und Versionen
plugin-sdk/gateway-runtimeHelfer für Gateway-Client und Patches des Kanalstatus
plugin-sdk/config-runtimeHelfer für Laden/Schreiben von Konfiguration
plugin-sdk/telegram-command-configHelfer für Normalisierung von Telegram-Befehlsnamen/-Beschreibungen und Prüfungen auf Duplikate/Konflikte, auch wenn die gebündelte Telegram-Vertragsoberfläche nicht verfügbar ist
plugin-sdk/text-autolink-runtimeErkennung von Autolinks für Dateireferenzen ohne das breite text-runtime-Barrel
plugin-sdk/approval-runtimeHelfer für Exec-/Plugin-Genehmigungen, Builder für Genehmigungsfunktionen, Helfer für Auth/Profile, native Routing-/Laufzeithelfer
plugin-sdk/reply-runtimeGemeinsame Inbound-/Antwort-Laufzeithelfer, Chunking, Dispatch, Heartbeat, Antwortplaner
plugin-sdk/reply-dispatch-runtimeSchmale Helfer für Dispatch/Finalisierung von Antworten
plugin-sdk/reply-historyGemeinsame Helfer für Antwortverläufe in kurzen Fenstern wie buildHistoryContext, recordPendingHistoryEntry und clearHistoryEntriesIfEnabled
plugin-sdk/reply-referencecreateReplyReferencePlanner
plugin-sdk/reply-chunkingSchmale Helfer für Text-/Markdown-Chunking
plugin-sdk/session-store-runtimeHelfer für Pfade von Sitzungsspeichern + updated-at
plugin-sdk/state-pathsHelfer für Pfade zu State-/OAuth-Verzeichnissen
plugin-sdk/routingHelfer für Routing-/Sitzungsschlüssel-/Konto-Bindungen wie resolveAgentRoute, buildAgentSessionKey und resolveDefaultAgentBoundAccountId
plugin-sdk/status-helpersGemeinsame Helfer für Zusammenfassungen des Kanal-/Kontostatus, Laufzeitstatus-Standards und Metadaten zu Problemen
plugin-sdk/target-resolver-runtimeGemeinsame Helfer zur Zielauflösung
plugin-sdk/string-normalization-runtimeHelfer zur Slug-/String-Normalisierung
plugin-sdk/request-urlString-URLs aus Fetch-/Request-ähnlichen Eingaben extrahieren
plugin-sdk/run-commandZeitgesteuerter Befehlsausführer mit normalisierten stdout-/stderr-Ergebnissen
plugin-sdk/param-readersGemeinsame Parameterleser für Tools/CLI
plugin-sdk/tool-payloadNormalisierte Nutzlasten aus Tool-Ergebnisobjekten extrahieren
plugin-sdk/tool-sendKanonische Felder für Sendeziele aus Tool-Argumenten extrahieren
plugin-sdk/temp-pathGemeinsame Helfer für temporäre Download-Pfade
plugin-sdk/logging-coreHelfer für Subsystem-Logger und Redaktion
plugin-sdk/markdown-table-runtimeHelfer für Modi von Markdown-Tabellen
plugin-sdk/json-storeKleine Helfer zum Lesen/Schreiben von JSON-State
plugin-sdk/file-lockReentrant-Helfer für Dateisperren
plugin-sdk/persistent-dedupeHelfer für festplattenbasierte Dedupe-Caches
plugin-sdk/acp-runtimeLaufzeit-/Sitzungs- und Reply-Dispatch-Helfer für ACP
plugin-sdk/acp-binding-resolve-runtimeSchmale schreibgeschützte Auflösung von ACP-Bindungen ohne Lifecycle-Startup-Importe
plugin-sdk/agent-config-primitivesSchmale Primitive des Agenten-Laufzeitkonfigurationsschemas
plugin-sdk/boolean-paramLoser Reader für boolesche Parameter
plugin-sdk/dangerous-name-runtimeHelfer zur Auflösung gefährlicher Namensabgleiche
plugin-sdk/device-bootstrapHelfer für Geräte-Bootstrap und Kopplungstoken
plugin-sdk/extension-sharedGemeinsame Primitive für passive Kanäle, Status und Ambient-Proxy-Helfer
plugin-sdk/models-provider-runtimeHelfer für Provider-Antworten des Befehls /models
plugin-sdk/skill-commands-runtimeHelfer zum Auflisten von Skill-Befehlen
plugin-sdk/native-command-registryHelfer für Registrierung/Build/Serialisierung nativer Befehle
plugin-sdk/agent-harnessExperimentelle Trusted-Plugin-Oberfläche für Low-Level-Agent-Harnesses: Harness-Typen, Helfer zum Steuern/Abbrechen aktiver Läufe, OpenClaw-Tool-Bridge-Helfer und Utilities für Versuchsergebnisse
plugin-sdk/provider-zai-endpointHelfer zur Erkennung von Z.AI-Endpunkten
plugin-sdk/infra-runtimeHelfer für Systemereignisse/Heartbeat
plugin-sdk/collection-runtimeKleine Helfer für begrenzte Caches
plugin-sdk/diagnostic-runtimeHelfer für Diagnose-Flags und -Ereignisse
plugin-sdk/error-runtimeFehlergraph, Formatierung, gemeinsame Helfer zur Fehlerklassifizierung, isApprovalNotFoundError
plugin-sdk/fetch-runtimeWrapped Fetch, Proxy und gepinnte Lookup-Helfer
plugin-sdk/runtime-fetchDispatcher-bewusstes Runtime-Fetch ohne Proxy-/Guarded-Fetch-Importe
plugin-sdk/response-limit-runtimeBegrenzter Reader für Response-Bodys ohne die breite Medien-Laufzeitoberfläche
plugin-sdk/session-binding-runtimeAktueller Zustand von Konversationsbindungen ohne Routing für konfigurierte Bindungen oder Kopplungsspeicher
plugin-sdk/session-store-runtimeHelfer zum Lesen von Sitzungsspeichern ohne breite Importe für Konfigurationsschreibvorgänge/Wartung
plugin-sdk/context-visibility-runtimeAuflösung der Kontextsichtigkeit und Filterung ergänzender Kontexte ohne breite Konfigurations-/Sicherheitsimporte
plugin-sdk/string-coerce-runtimeSchmale Helfer für Primitive-Record-/String-Koerzierung und Normalisierung ohne Markdown-/Logging-Importe
plugin-sdk/host-runtimeHelfer zur Normalisierung von Hostnamen und SCP-Hosts
plugin-sdk/retry-runtimeHelfer für Retry-Konfiguration und Retry-Runner
plugin-sdk/agent-runtimeHelfer für Agent-Verzeichnis/Identität/Workspace
plugin-sdk/directory-runtimeKonfigurationsgestützte Verzeichnisabfrage/Dedupe
plugin-sdk/keyed-async-queueKeyedAsyncQueue
SubpathWichtige Exporte
plugin-sdk/media-runtimeGemeinsame Helfer für Medienabruf/-transformation/-speicherung sowie Builder für Medien-Nutzlasten
plugin-sdk/media-generation-runtimeGemeinsame Helfer für Failover bei Mediengenerierung, Kandidatenauswahl und Meldungen für fehlende Modelle
plugin-sdk/media-understandingTypen für Media-Understanding-Provider sowie providerseitige Bild-/Audio-Helferexporte
plugin-sdk/text-runtimeGemeinsame Helfer für Text/Markdown/Logging wie Entfernen von für Assistenten sichtbarem Text, Helfer für Markdown-Rendering/Chunking/Tabellen, Redaktionshelfer, Direktiven-Tag-Helfer und Safe-Text-Utilities
plugin-sdk/text-chunkingHelfer für ausgehendes Text-Chunking
plugin-sdk/speechTypen für Speech-Provider sowie providerseitige Helfer für Direktiven, Registrierung und Validierung
plugin-sdk/speech-coreGemeinsame Typen, Registrierungs-, Direktiven- und Normalisierungshelfer für Speech-Provider
plugin-sdk/realtime-transcriptionTypen und Registrierungshelfer für Realtime-Transcription-Provider
plugin-sdk/realtime-voiceTypen und Registrierungshelfer für Realtime-Voice-Provider
plugin-sdk/image-generationTypen für Image-Generation-Provider
plugin-sdk/image-generation-coreGemeinsame Typen, Failover-, Auth- und Registrierungshelfer für Bildgenerierung
plugin-sdk/music-generationTypen für Music-Generation-Provider/Requests/Ergebnisse
plugin-sdk/music-generation-coreGemeinsame Typen, Failover-Helfer, Provider-Lookup und Parsing von Modellreferenzen für Musikgenerierung
plugin-sdk/video-generationTypen für Video-Generation-Provider/Requests/Ergebnisse
plugin-sdk/video-generation-coreGemeinsame Typen, Failover-Helfer, Provider-Lookup und Parsing von Modellreferenzen für Videogenerierung
plugin-sdk/webhook-targetsRegistrierung von Webhook-Zielen und Helfer für die Installation von Routen
plugin-sdk/webhook-pathHelfer zur Normalisierung von Webhook-Pfaden
plugin-sdk/web-mediaGemeinsame Helfer zum Laden entfernter/lokaler Medien
plugin-sdk/zodRe-exportiertes zod für Nutzer des Plugin-SDK
plugin-sdk/testinginstallCommonResolveTargetErrorCases, shouldAckReaction
SubpathWichtige Exporte
plugin-sdk/memory-coreGebündelte Helper-Oberfläche für memory-core für Manager-/Konfigurations-/Datei-/CLI-Helfer
plugin-sdk/memory-core-engine-runtimeLaufzeit-Fassade für Memory-Index/-Suche
plugin-sdk/memory-core-host-engine-foundationExporte der Foundation-Engine des Memory-Hosts
plugin-sdk/memory-core-host-engine-embeddingsVerträge für Host-Embeddings des Memory-Hosts, Registry-Zugriff, lokaler Provider und generische Batch-/Remote-Helfer
plugin-sdk/memory-core-host-engine-qmdExporte der QMD-Engine des Memory-Hosts
plugin-sdk/memory-core-host-engine-storageExporte der Storage-Engine des Memory-Hosts
plugin-sdk/memory-core-host-multimodalMultimodale Helfer des Memory-Hosts
plugin-sdk/memory-core-host-queryQuery-Helfer des Memory-Hosts
plugin-sdk/memory-core-host-secretSecret-Helfer des Memory-Hosts
plugin-sdk/memory-core-host-eventsHelfer für Event-Journals des Memory-Hosts
plugin-sdk/memory-core-host-statusStatus-Helfer des Memory-Hosts
plugin-sdk/memory-core-host-runtime-cliLaufzeithelfer für die CLI des Memory-Hosts
plugin-sdk/memory-core-host-runtime-coreCore-Laufzeithelfer des Memory-Hosts
plugin-sdk/memory-core-host-runtime-filesDatei-/Laufzeithelfer des Memory-Hosts
plugin-sdk/memory-host-coreAnbieterneutraler Alias für Core-Laufzeithelfer des Memory-Hosts
plugin-sdk/memory-host-eventsAnbieterneutraler Alias für Helfer für Event-Journals des Memory-Hosts
plugin-sdk/memory-host-filesAnbieterneutraler Alias für Datei-/Laufzeithelfer des Memory-Hosts
plugin-sdk/memory-host-markdownGemeinsame Managed-Markdown-Helfer für memory-nahe Plugins
plugin-sdk/memory-host-searchActive Memory Laufzeit-Fassade für den Zugriff auf den Search-Manager
plugin-sdk/memory-host-statusAnbieterneutraler Alias für Status-Helfer des Memory-Hosts
plugin-sdk/memory-lancedbGebündelte Helper-Oberfläche für memory-lancedb
FamilieAktuelle SubpathsBeabsichtigte Verwendung
Browserplugin-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-supportSupport-Helfer für gebündelte Browser-Plugins (browser-support bleibt das Kompatibilitäts-Barrel)
Matrixplugin-sdk/matrix, plugin-sdk/matrix-helper, plugin-sdk/matrix-runtime-heavy, plugin-sdk/matrix-runtime-shared, plugin-sdk/matrix-runtime-surface, plugin-sdk/matrix-surface, plugin-sdk/matrix-thread-bindingsGebündelte Helper-/Laufzeitoberfläche für Matrix
Lineplugin-sdk/line, plugin-sdk/line-core, plugin-sdk/line-runtime, plugin-sdk/line-surfaceGebündelte Helper-/Laufzeitoberfläche für LINE
IRCplugin-sdk/irc, plugin-sdk/irc-surfaceGebündelte Helper-Oberfläche für IRC
Kanalspezifische Helferplugin-sdk/googlechat, plugin-sdk/zalouser, plugin-sdk/bluebubbles, plugin-sdk/bluebubbles-policy, plugin-sdk/mattermost, plugin-sdk/mattermost-policy, plugin-sdk/feishu-conversation, plugin-sdk/msteams, plugin-sdk/nextcloud-talk, plugin-sdk/nostr, plugin-sdk/tlon, plugin-sdk/twitchKompatibilitäts-/Helper-Seams für gebündelte Kanäle
Auth-/pluginspezifische Helferplugin-sdk/github-copilot-login, plugin-sdk/github-copilot-token, plugin-sdk/diagnostics-otel, plugin-sdk/diffs, plugin-sdk/llm-task, plugin-sdk/thread-ownership, plugin-sdk/voice-callHelper-Seams für gebündelte Funktionen/Plugins; plugin-sdk/github-copilot-token exportiert derzeit DEFAULT_COPILOT_API_BASE_URL, deriveCopilotApiBaseUrlFromToken und resolveCopilotApiToken

Registrierungs-API

Der Callback register(api) erhält ein Objekt OpenClawPluginApi mit diesen Methoden:

Registrierung von Fähigkeiten

MethodeWas registriert wird
api.registerProvider(...)Text-Inferenz (LLM)
api.registerAgentHarness(...)Experimenteller Low-Level-Agent-Executor
api.registerCliBackend(...)Lokales CLI-Inferenz-Backend
api.registerChannel(...)Messaging-Kanal
api.registerSpeechProvider(...)Text-to-Speech / STT-Synthese
api.registerRealtimeTranscriptionProvider(...)Streaming-Echtzeittranskription
api.registerRealtimeVoiceProvider(...)Duplex-Echtzeit-Voice-Sitzungen
api.registerMediaUnderstandingProvider(...)Bild-/Audio-/Videoanalyse
api.registerImageGenerationProvider(...)Bildgenerierung
api.registerMusicGenerationProvider(...)Musikgenerierung
api.registerVideoGenerationProvider(...)Videogenerierung
api.registerWebFetchProvider(...)Web-Fetch-/Scrape-Provider
api.registerWebSearchProvider(...)Websuche

Tools und Befehle

MethodeWas registriert wird
api.registerTool(tool, opts?)Agent-Tool (erforderlich oder { optional: true })
api.registerCommand(def)Benutzerdefinierter Befehl (umgeht das LLM)

Infrastruktur

MethodeWas registriert wird
api.registerHook(events, handler, opts?)Event-Hook
api.registerHttpRoute(params)Gateway-HTTP-Endpunkt
api.registerGatewayMethod(name, handler)Gateway-RPC-Methode
api.registerCli(registrar, opts?)CLI-Subcommand
api.registerService(service)Hintergrunddienst
api.registerInteractiveHandler(registration)Interaktiver Handler
api.registerMemoryPromptSupplement(builder)Additiver memory-naher Prompt-Abschnitt
api.registerMemoryCorpusSupplement(adapter)Additiver Such-/Lesekorpus für Memory
Reservierte Core-Admin-Namespaces (config.*, exec.approvals.*, wizard.*, update.*) bleiben immer operator.admin, auch wenn ein Plugin versucht, einen engeren Scope für Gateway-Methoden zuzuweisen. Bevorzugen Sie pluginspezifische Präfixe für pluginbesessene Methoden.

CLI-Registrierungsmetadaten

api.registerCli(registrar, opts?) akzeptiert zwei Arten von Top-Level-Metadaten:
  • commands: explizite Befehls-Roots, die dem Registrar gehören
  • descriptors: Parse-Time-Befehlsdeskriptoren, die für Root-CLI-Hilfe, Routing und lazy Plugin-CLI-Registrierung verwendet werden
Wenn ein Plugin-Befehl im normalen Root-CLI-Pfad lazy geladen bleiben soll, geben Sie descriptors an, die jeden Top-Level-Befehls-Root abdecken, der durch diesen Registrar bereitgestellt wird.
api.registerCli(
  async ({ program }) => {
    const { registerMatrixCli } = await import("./src/cli.js");
    registerMatrixCli({ program });
  },
  {
    descriptors: [
      {
        name: "matrix",
        description: "Manage Matrix accounts, verification, devices, and profile state",
        hasSubcommands: true,
      },
    ],
  },
);
Verwenden Sie commands allein nur dann, wenn Sie keine lazy Registrierung der Root-CLI benötigen. Dieser eager Kompatibilitätspfad bleibt unterstützt, installiert jedoch keine descriptorbasierten Platzhalter für Parse-Time-Lazy-Loading.

Registrierung von CLI-Backends

api.registerCliBackend(...) erlaubt es einem Plugin, die Standardkonfiguration für ein lokales KI-CLI-Backend wie codex-cli zu besitzen.
  • Die Backend-id wird zum Provider-Präfix in Modellreferenzen wie codex-cli/gpt-5.
  • Die Backend-config verwendet dieselbe Form wie agents.defaults.cliBackends.<id>.
  • Benutzerkonfiguration gewinnt weiterhin. OpenClaw führt agents.defaults.cliBackends.<id> über die Plugin-Standardeinstellung zusammen, bevor die CLI ausgeführt wird.
  • Verwenden Sie normalizeConfig, wenn ein Backend nach dem Zusammenführen Kompatibilitäts-Umschreibungen braucht (zum Beispiel zur Normalisierung alter Flag-Formen).

Exklusive Slots

MethodeWas registriert wird
api.registerContextEngine(id, factory)Context-Engine (immer nur eine aktiv). Der Callback assemble() erhält availableTools und citationsMode, damit die Engine Prompt-Ergänzungen anpassen kann.
api.registerMemoryCapability(capability)Einheitliche Memory-Fähigkeit
api.registerMemoryPromptSection(builder)Builder für einen Memory-Prompt-Abschnitt
api.registerMemoryFlushPlan(resolver)Resolver für Memory-Flush-Pläne
api.registerMemoryRuntime(runtime)Adapter für die Memory-Laufzeit

Adapter für Memory-Embeddings

MethodeWas registriert wird
api.registerMemoryEmbeddingProvider(adapter)Memory-Embedding-Adapter für das aktive Plugin
  • registerMemoryCapability ist die bevorzugte API für exklusive Memory-Plugins.
  • registerMemoryCapability kann auch publicArtifacts.listArtifacts(...) bereitstellen, sodass Begleit-Plugins exportierte Memory-Artefakte über openclaw/plugin-sdk/memory-host-core konsumieren können, statt in das private Layout eines bestimmten Memory-Plugins zu greifen.
  • registerMemoryPromptSection, registerMemoryFlushPlan und registerMemoryRuntime sind Legacy-kompatible APIs für exklusive Memory-Plugins.
  • registerMemoryEmbeddingProvider erlaubt es dem aktiven Memory-Plugin, einen oder mehrere Embedding-Adapter-IDs zu registrieren (zum Beispiel openai, gemini oder eine benutzerdefinierte ID des Plugins).
  • Benutzerkonfiguration wie agents.defaults.memorySearch.provider und agents.defaults.memorySearch.fallback wird gegen diese registrierten Adapter-IDs aufgelöst.

Ereignisse und Lebenszyklus

MethodeWas sie tut
api.on(hookName, handler, opts?)Typisierter Lifecycle-Hook
api.onConversationBindingResolved(handler)Callback für Konversationsbindung

Entscheidungssemantik von Hooks

  • before_tool_call: Die Rückgabe von { block: true } ist terminal. Sobald ein Handler dies setzt, werden Handler mit niedrigerer Priorität übersprungen.
  • before_tool_call: Die Rückgabe von { block: false } wird als keine Entscheidung behandelt (wie das Weglassen von block), nicht als Override.
  • before_install: Die Rückgabe von { block: true } ist terminal. Sobald ein Handler dies setzt, werden Handler mit niedrigerer Priorität übersprungen.
  • before_install: Die Rückgabe von { block: false } wird als keine Entscheidung behandelt (wie das Weglassen von block), nicht als Override.
  • reply_dispatch: Die Rückgabe von { handled: true, ... } ist terminal. Sobald ein Handler den Dispatch beansprucht, werden Handler mit niedrigerer Priorität und der standardmäßige Modell-Dispatch-Pfad übersprungen.
  • message_sending: Die Rückgabe von { cancel: true } ist terminal. Sobald ein Handler dies setzt, werden Handler mit niedrigerer Priorität übersprungen.
  • message_sending: Die Rückgabe von { cancel: false } wird als keine Entscheidung behandelt (wie das Weglassen von cancel), nicht als Override.

Felder des API-Objekts

FeldTypBeschreibung
api.idstringPlugin-ID
api.namestringAnzeigename
api.versionstring?Plugin-Version (optional)
api.descriptionstring?Plugin-Beschreibung (optional)
api.sourcestringPlugin-Quellpfad
api.rootDirstring?Root-Verzeichnis des Plugins (optional)
api.configOpenClawConfigAktueller Konfigurations-Snapshot (aktive In-Memory-Laufzeitaufnahme, wenn verfügbar)
api.pluginConfigRecord<string, unknown>Pluginspezifische Konfiguration aus plugins.entries.<id>.config
api.runtimePluginRuntimeLaufzeithelfer
api.loggerPluginLoggerScoped Logger (debug, info, warn, error)
api.registrationModePluginRegistrationModeAktueller Lademodus; "setup-runtime" ist das leichtgewichtige Vor-dem-vollständigen-Einstiegspunkt-Start-/Setup-Fenster
api.resolvePath(input)(string) => stringPfad relativ zum Plugin-Root auflösen

Interne Modulkonvention

Verwenden Sie innerhalb Ihres Plugins lokale Barrel-Dateien für interne Importe:
my-plugin/
  api.ts            # Öffentliche Exporte für externe Verbraucher
  runtime-api.ts    # Nur interne Laufzeit-Exporte
  index.ts          # Plugin-Einstiegspunkt
  setup-entry.ts    # Leichtgewichtiger nur-Setup-Einstiegspunkt (optional)
Importieren Sie Ihr eigenes Plugin im Produktionscode niemals über openclaw/plugin-sdk/<your-plugin>. Leiten Sie interne Importe über ./api.ts oder ./runtime-api.ts. Der SDK-Pfad ist nur der externe Vertrag.
Öffentliche Oberflächen facade-geladener gebündelter Plugins (api.ts, runtime-api.ts, index.ts, setup-entry.ts und ähnliche öffentliche Einstiegsdateien) bevorzugen jetzt den aktiven Laufzeit-Konfigurations-Snapshot, wenn OpenClaw bereits läuft. Wenn noch kein Laufzeit-Snapshot existiert, greifen sie auf die auf der Festplatte aufgelöste Konfigurationsdatei zurück. Provider-Plugins können außerdem ein schmales pluginlokales Vertrags-Barrel bereitstellen, wenn ein Helfer bewusst providerspezifisch ist und noch nicht in einen generischen SDK-Subpath gehört. Aktuelles gebündeltes Beispiel: Der Anthropic-Provider behält seine Claude- Stream-Helfer in seiner eigenen öffentlichen api.ts- / contract-api.ts-Seam, anstatt die Anthropic-Beta-Header- und service_tier-Logik in einen generischen plugin-sdk/*-Vertrag zu überführen. Weitere aktuelle gebündelte Beispiele:
  • @openclaw/openai-provider: api.ts exportiert Provider-Builder, Standardmodell-Helfer und Builder für Realtime-Provider
  • @openclaw/openrouter-provider: api.ts exportiert den Provider-Builder sowie Helfer für Onboarding/Konfiguration
Produktionscode von Erweiterungen sollte außerdem Importe von openclaw/plugin-sdk/<other-plugin> vermeiden. Wenn ein Helfer wirklich gemeinsam genutzt wird, verschieben Sie ihn in einen neutralen SDK-Subpath wie openclaw/plugin-sdk/speech, .../provider-model-shared oder eine andere fähigkeitsorientierte Oberfläche, statt zwei Plugins miteinander zu koppeln.

Verwandt