Plugin-SDK-Auswirkung
Kombiniere aktuelle ClawHub-Inventare mit einem Quellcode-Scan aller gebündelten OpenClaw-Plugins, einschließlich Plugins, die nicht in ClawHub vorhanden sind, um Kompatibilitätsentscheidungen zu treffen. Statische Nutzung identifiziert Abhängigkeiten; es beweist keine Ausführung oder Abhängigkeit von einem bestimmten Verhalten. Halte die Genehmigungs- und Abschaffungsregeln in der SDK-Grenzrichtlinie maßgeblich.
Untersuchen
-
Identifiziere jede betroffene öffentliche Oberfläche aus dem Quellcode, einschließlich alternativer SDK-Exporte und Laufzeitpfade. Überprüfe die Schreibweise anhand der Definition und bekannter Aufrufer; ein falscher Schlüssel kann eine überzeugende Null zurückgeben. Verfolge auch gruppierte Fassaden, SDK-Helfer und Registrierungsleser: ein flacher Alias kann null direkte Plugin-Aufrufe haben, während er eine unterstützte gruppierte Methode implementiert.
-
Scanne jedes gebündelte Plugin in einem sauberen OpenClaw-Checkout mit der statischen Quellcode-Analyse des Plugin Inspector. Verwende einen installierten Inspector 0.4.3 oder neuer; andernfalls installiere ihn in einem separaten temporären Verzeichnis, ohne Lebenszyklus-Skripte:
inspector_dir=$(mktemp -d) npm install --prefix "$inspector_dir" --ignore-scripts @openclaw/[email protected] node {baseDir}/scripts/scan-bundled.mjs \ --inspector "$inspector_dir/node_modules/@openclaw/plugin-inspector" \ --out /tmp/openclaw-bundled-sdk-usage.jsonDer Scanner verwendet standardmäßig das Checkout dieses Skills;
--root <checkout>wählt ein anderes aus. Er erkenntextensions/*/openclaw.plugin.json, führt niemals Plugin-Code aus und zeichnet den Commit, den Eingabe-Fingerprint, die Inspector-Version, jedes Plugin und unvollständige Analysen auf. Ein fehlgeschlagener oder zeitlich abgelaufener Scan bleibt eine Lücke. Plugins ohne deklarierte Einstiegspunkte bleiben ebenfalls Abdeckungslücken, da Inspector implizite Einstiegspunkte übersehen kann. Ein unterbrochener Korpus-Scan kann nicht als fertiges Inventar verwendet werden. Verwende den Bericht für mehrere Abfragen wieder, solange seine Quelle unverändert bleibt. Ein geänderter Commit, eine geänderte Plugin-Liste oder nicht festgeschriebener Quellcode macht ihn ungültig; scanne erneut, anstatt den Beleg zu bearbeiten. -
Frage jeden kanonischen Schlüssel mit beiden Quellen ab:
node {baseDir}/scripts/query.mjs 'api-member:api.registerTool' \ --bundled /tmp/openclaw-bundled-sdk-usage.jsonFür „aktualisiert innerhalb der letzten drei Monate“ füge
--months 3hinzu. Das bedeutet, die neueste berechtigte öffentliche Veröffentlichung wurde innerhalb von drei Kalendermonaten ab jetzt hochgeladen, gemessen in UTC (Monatsenden werden begrenzt). Bearbeitungen und erneute Scans von Auflistungen zählen nicht als Aktualisierungen. Das gespeicherte Veröffentlichungsdatum ist die Erstellungs-/Hochladezeit; die öffentliche Genehmigung kann später erfolgen.--since 2026-07-16T12:00:00Zakzeptiert einen expliziten Cutoff. Melde den genauen inklusiven Cutoff ausreleaseWindow, kein geschätztes Datum. Öffentliche Nutzer und Abdeckung verwenden auf jeder Seite dasselbe Fenster. Gebündelter Quellcode hat kein vergleichbares Hochladedatum: melde ihn separat, ungefiltert, selbst bei einer Frage zu einer aktuellen Veröffentlichung. Die kombinierte Anzahl ist die Vereinigung dieses öffentlichen Veröffentlichungsfensters und des aktuellen gebündelten Quellcodes, nicht eine Anzahl aktueller Veröffentlichungen.Der Helfer folgt allen Nutzungs- und Abdeckungsseiten, einschließlich leerer Zwischenseiten. Zählungen und Abdeckung umfassen jedes Ergebnis;
items,gapsundwarningsenthalten begrenzte Beispiele mit ausgelassenen Zählungen inoutput.omitted. Gemischte Referenzen zählen sowohl in Laufzeit- als auch in Typ-Gesamtsummen. Für eine Untersuchung, die jeden Nutzer oder jede Lücke benötigt, speichere die--fullAusgabe in einer Datei und lese sie in Abschnitten:node {baseDir}/scripts/query.mjs 'api-member:api.registerTool' \ --bundled /tmp/openclaw-bundled-sdk-usage.json --full > sdk-usage.json--helpdokumentiert lokale Endpunkt- und Durchlaufgrenzen. -
Überprüfe die übereinstimmenden Beweise anhand der vorgeschlagenen Änderung. Ein Methodenaufruf verwendet möglicherweise nicht das Verhalten, das geändert wird. Nur-Typ-Nutzer sind dennoch für die Entfernung von Typen/Exporten relevant. Frage verwandte Mitglieder separat ab; ein Modulimport beweist nicht die Verwendung jedes Exports. Wiederholte Referenzen in einem Plugin zählen als ein Nutzer.
-
Für eine Frage zur Nutzungsanzahl melde den Schlüssel, die Abfragezeit, das genaue Veröffentlichungsfenster (falls angefordert), die ClawHub- und gebündelten Zählungen, ihre kombinierte Anzahl, den gebündelten Commit und beide Abdeckungslücken. Top-Level
distinctPluginsundcoveragebleiben nur für ClawHub;bundledbeschreibt Quellcode-Ergebnisse;combinedführt genaue Paketidentitäten einmal zusammen. Einige gebündelte Plugins haben keinen Paketnamen: wenn sie sich mit öffentlichen Treffern überschneiden könnten, istcombined.distinctPluginsnull unddistinctPluginBoundsgibt den möglichen Bereich an.observedPluginIdentitieszählt Quellcode-Identitäten vor dieser unsicheren Überschneidung. Melde den Bereich, nicht seine obere Grenze als genaue Anzahl. Unterschiedliche Namen bleiben unterschiedlich; rate niemals Aliase aus Anzeigenamen. Fehlende gebündelte Beweise machen die kombinierte Auswirkung nicht verfügbar. Für eine vorgeschlagene SDK-Änderung melde auch übereinstimmende Beweise, indirekte Aufrufer und deine Kompatibilitätsempfehlung. Beende Änderungsuntersuchungen mit der Entscheidung des Maintainers: Verhalten beibehalten, mit Migration abschaffen oder unter bestehender Richtlinie fortfahren. Leite niemals eine Berechtigung aus der Anzahl ab.
Kanonische Schlüssel
| Oberfläche | Beispiel |
|---|---|
| SDK-Modul | sdk-module:openclaw/plugin-sdk/core |
| Benannter SDK-Export | sdk-export:openclaw/plugin-sdk/core#OpenClawPluginApi |
| Plugin-API-Methode | api-member:api.registerTool |
| Host-Laufzeitmitglied | runtime-member:runtime.channel.reply.dispatchReplyFromConfig |
| Benannter Hook | hook:hook.before_agent_start |
| Manifest-Vertrag | manifest-contract:manifest.contracts.tools:example_tool |
Schlüssel beschreiben SDK-Identitäten, keine lokalen Aliase. api.runtime-Mitglieder normalisieren zu runtime.*. Das Inventar umfasst unterstützte und veraltete Referenzen; nicht leere deprecationCodes wählt Einträge aus, die mit vorhandenen Warnungen verbunden sind. Die Inspektion pro Plugin ist verfügbar unter https://clawhub.ai/api/v1/sdk-usage/plugin?package=<encodierter-name>; folge seinem nextCursor bis null, um das vollständige Inventar zu erhalten.
Interpretiere das Ergebnis
| Ergebnis | Bericht |
|---|---|
| Beobachtete Nutzer | Melde öffentliche, gebündelte und kombinierte Zählungen mit ihren separaten Bereichen. Überprüfe Beweise, bevor du ein Verhaltensänderung beurteilst. |
| Keine beobachteten Nutzer, vollständige Abdeckung | „Keine statischen Referenzen erkannt über N öffentliche/gebündelte Plugin-Identitäten.“ Erfordert beide Scans; schließt private nicht gebündelte Plugins und nicht gebündelte Abhängigkeiten aus. Kein Beweis, dass niemand die API verwendet. |
| Teilweise, fehlgeschlagene, fehlende, inkompatible oder ungelöste Analyse | Gib übereinstimmende Funde, Lückenzahlen und repräsentative Lücken an. Null Treffer lässt die Auswirkung unbekannt. |
| Leerer Korpus | Es wurden keine berechtigten Plugins beobachtet; dies bietet keine Ökosystem-Sicherheit. |
| Nicht verfügbarer Endpunkt, fehlerhaftes Ergebnis oder unvollständiger Durchlauf | Die Auswirkung ist unbekannt. Behalte den Fehler bei und verwende lokale Beweise; ersetze niemals durch null. |
Abdeckung ist an die aktuelle Version von Veröffentlichung/Artefakt und Analyse gebunden. Berechtigte ClawHub-Berichte haben inputKind: "artifact"; gebündelte Berichte verwenden "source". Ein Quellcode-Checkout-Benchmark kann nicht feststellen, was ein veröffentlichtes Paket enthält. Nur-Quellcode-Typ-Referenzen sind dennoch für die Entfernung von SDK-Typen und -Exporten relevant; bewahre die Quelle jedes Treffers. Ein alter Scan-Zeitstempel allein macht ein unveränderliches Artefakt nicht veraltet. Beweise werden stichprobenartig erhoben; jeder Scan meldet seine Beweis-/Unbekannt-Grenzen. Seiten sind Live-Lesevorgänge, keine Momentaufnahme: führe erneut aus, wenn sich während der Untersuchung Veröffentlichungen oder Sichtbarkeit ändern. Der Helfer markiert Änderungen, die er beobachtet, kann aber keine transaktionsweite Momentaufnahme erstellen.
Entlasse ein Sicherheitsproblem nicht, nur weil keine Nutzer beobachtet wurden. Beschreibe, wie Nutzungsnachweise das Kompatibilitätsrisiko beeinflussen; Sicherheits- und SDK-Eigentümer entscheiden weiterhin über den Fix und jede Ausnahme vom normalen Migrationsfenster.