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.deny und plugins.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 über plugins.slots.memory ausgewählt.
    • kind: "context-engine" wird über plugins.slots.contextEngine ausgewählt (Standard: eingebautes legacy).
  • Wenn dein Plugin native Module benötigt, dokumentiere die Build-Schritte und eventuelle Paketmanager-Allowlist-Anforderungen (zum Beispiel pnpm allow-build-scripts
    • pnpm rebuild <package>).