Plugin-Manifest (openclaw.plugin.json)
Jedes Plugin muss eine openclaw.plugin.json-Datei im Plugin-Stammverzeichnis mitliefern.
OpenClaw nutzt dieses Manifest, um die Konfiguration zu validieren, ohne Plugin-Code auszuführen. Fehlende oder ungültige Manifeste werden als Plugin-Fehler behandelt und blockieren die
Konfigurationsvalidierung.
Siehe die vollständige Plugin-System-Anleitung: Plugins.
Pflichtfelder
{
"id": "voice-call",
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}
Pflichtschlüssel:
id(String): Kanonische Plugin-ID.configSchema(Objekt): JSON-Schema für die Plugin-Konfiguration (inline).
Optionale Schlüssel:
kind(String): Plugin-Art (Beispiele:"memory","context-engine").channels(Array): Kanal-IDs, die dieses Plugin registriert (Beispiel:["matrix"]).providers(Array): Provider-IDs, die dieses Plugin registriert.skills(Array): Skill-Verzeichnisse zum Laden (relativ zum Plugin-Stammverzeichnis).name(String): Anzeigename des Plugins.description(String): Kurze Plugin-Zusammenfassung.uiHints(Objekt): Labels/Platzhalter/Sensitivitäts-Flags für Konfigurationsfelder für die UI-Darstellung.version(String): Plugin-Version (informativ).
JSON-Schema-Anforderungen
- Jedes Plugin muss ein JSON-Schema mitliefern, auch wenn es keine Konfiguration akzeptiert.
- Ein leeres Schema ist akzeptabel (zum Beispiel
{ "type": "object", "additionalProperties": false }). - Schemas werden zum Zeitpunkt des Konfigurationslesens/-schreibens validiert, nicht zur Laufzeit.
Validierungsverhalten
- Unbekannte
channels.*-Schlüssel sind Fehler, es sei denn die Kanal-ID wird von einem Plugin-Manifest deklariert. plugins.entries.<id>,plugins.allow,plugins.denyundplugins.slots.*müssen auf auffindbare Plugin-IDs verweisen. Unbekannte IDs sind Fehler.- Wenn ein Plugin installiert ist, aber ein fehlerhaftes oder fehlendes Manifest oder Schema hat, schlägt die Validierung fehl und Doctor meldet den Plugin-Fehler.
- Wenn Plugin-Konfiguration existiert, aber das Plugin deaktiviert ist, wird die Konfiguration beibehalten und eine Warnung in Doctor + Logs angezeigt.
Hinweise
- Das Manifest ist für alle Plugins erforderlich, einschließlich lokaler Dateisystem-Ladungen.
- Die Laufzeit lädt das Plugin-Modul separat; das Manifest dient nur der Erkennung + Validierung.
- Exklusive Plugin-Arten werden über
plugins.slots.*ausgewählt.kind: "memory"wird überplugins.slots.memoryausgewählt.kind: "context-engine"wird überplugins.slots.contextEngineausgewählt (Standard: eingebauteslegacy).
- Wenn dein Plugin native Module benötigt, dokumentiere die Build-Schritte und eventuelle
Paketmanager-Allowlist-Anforderungen (zum Beispiel pnpm
allow-build-scriptspnpm rebuild <package>).