Zum Hauptinhalt springen

Debugging & Testen

Nachdem Sie einen benutzerdefinierten Workflow geschrieben haben, können Sie die folgenden Methoden verwenden, um ihn zu validieren und zu debuggen.

Debug-Modus aktivieren​

Aktivieren Sie den Debug-Modus in den Einstellungen, um zusätzliche Debugging-Tools und Informationsanzeigen freizuschalten:

Zotero → Einstellungen → Zotero Agents → Debug-Modus aktivieren

Wenn der Debug-Modus aktiviert ist:

  • Debug-bezogene Workflows werden im Dashboard angezeigt
  • Laufzeitprotokolle werden detaillierter
  • Einige Diagnosewerkzeuge werden verfügbar

Verwendung des Debug Probe Toolkits​

Das Plugin enthält ein integriertes workflow-debug-probe Debugging-Toolkit mit mehreren diagnostischen Workflows:

WorkflowZweck
Workflow Debug ProbeInspiziert den Zustand vor der Workflow-Ausführung, öffnet das Diagnosepanel
Debug Sequence Linear ProbeValidiert die sequenzielle Ausführung und die standardmäßige Handoff-Übergabe
Debug Sequence Workspace Reuse ProbeValidiert die schrittübergreifende Wiederverwendung des Workspace
Debug Sequence Context Isolation ProbeValidiert explizite Handoff-Filterung und isolierte Workspaces

Diese Workflows sind in der Workflow-Liste des Dashboards sichtbar (im Debug-Modus) und können direkt ausgeführt werden, um die Mechanismen der Sequenzausführung zu validieren.

Protokollanzeige​

Laufzeitprotokolle​

Workflows generieren während der Ausführung Laufzeitprotokolle, die im Dashboard eingesehen werden können:

  1. Öffnen Sie das Dashboard
  2. Suchen Sie eine laufende oder abgeschlossene Aufgabe
  3. Klicken Sie auf "View Logs", um das Protokollpanel zu erweitern

Protokolle in Hooks schreiben​

export function applyResult({ parent, bundleReader, runtime }) {
// In das Laufzeitprotokoll schreiben
runtime.hostApi.logging.appendRuntimeLog({
level: "info",
message: `Verarbeite parent: ${parent}`,
workflowId: runtime.workflowId,
});

// Für komplexe Debug-Informationen können Sie console verwenden
console.log("Debug:", { parent, workflowId: runtime.workflowId });
}

Fehlerbehebung bei häufigen Problemen​

Workflow erscheint nicht im Dashboard​

  1. Prüfen Sie, ob workflow.json im richtigen Verzeichnis abgelegt ist
  2. Stellen Sie sicher, dass workflow.json korrekt formatiert ist (JSON-Syntax)
  3. Prüfen Sie, dass id eindeutig ist und nicht mit offiziellen Workflows kollidiert
  4. Stellen Sie sicher, dass der Pfad des applyResult-Skripts korrekt ist
  5. Prüfen Sie das Plugin-Fehlerprotokoll (Zotero → Hilfe → Fehlerbehebung → Protokolldatei anzeigen)

Selektionsvalidierung überspringt jede Einheit​

Wenn die deklarative validateSelection oder preflight jede Eingabeeinheit überspringt, sendet der Workflow keine Provider-Anfrage. Überprüfen Sie die Selektionsrichtlinie, Ausschlussregeln und jedes preflight-Ergebnis, das kind: "skip" zurückgibt.

Konflikt zwischen buildRequest und deklarativer Anfrage​

Der buildRequest-Hook und das request-Feld in workflow.json schließen sich gegenseitig aus. Wenn beide vorhanden sind, hat buildRequest Vorrang. Wenn das Anfrageverhalten nicht den Erwartungen entspricht, prüfen Sie, ob beide versehentlich gleichzeitig definiert wurden.

Fehler bei der Ausführung von Hook-Skripten​

  • Stellen Sie sicher, dass das Hook-Skript im .mjs-Format (ES Module) vorliegt
  • Stellen Sie sicher, dass die richtigen Funktionsnamen exportiert werden: preflight, buildRequest, normalizeSettings oder applyResult
  • Stellen Sie sicher, dass die Funktionssignatur Parameter wie { parent, bundleReader, runtime } korrekt empfängt
  • Prüfen Sie, ob relative Importpfade korrekt sind

Ergebnis wird nicht in Zotero geschrieben​

Wenn applyResult hostApi.mutations.execute() verwendet, dies aber nicht wirksam wird, mögliche Ursachen:

  • Schreiboperationen erfordern eine Benutzerbestätigung, aber das Bestätigungs-Popup wurde ignoriert oder ist abgelaufen
  • Es wurde versucht, eine Schreiboperation durchzuführen, obwohl execution.zoteroHostAccess.required nicht auf true gesetzt war
  • allowWriteApprovalBypass muss in Verbindung mit der Plugin-Berechtigungskonfiguration verwendet werden

Entwicklungsvorschläge​

Einfach anfangen​

  1. Verwenden Sie zunächst den pass-through-Provider mit einem minimalen applyResult, um zu überprüfen, ob der Workflow erfolgreich geladen wird
  2. Fügen Sie zuerst validateSelection hinzu, dann preflight oder buildRequest nur bei Bedarf
  3. Verbinden Sie sich schließlich mit dem eigentlichen Backend

Verwenden Sie notifications.toast für schnelles Feedback​

hostApi.notifications.toast({
text: `buildRequest hat ${selectionContext.items.parents.length} übergeordnete Einträge erhalten`,
type: "default",
});

Dies ist eine schnelle Debugging-Technik, mit der Sie Ausführungsergebnisse sehen können, ohne Protokolle zu überprüfen.

Offizielle Workflows als Referenz​

Offizielle Workflows sind die beste Lernreferenz. Nach der Installation des offiziellen Pakets können Sie den Quellcode im Verzeichnis <Zotero Data>/zotero-agents/content/official/workflows/ einsehen:

  • literature-workbench-package/literature-analysis/ — Vollständiges skillrunner.job.v1-Beispiel
  • content/official/workflows/literature-workbench-package/export-notes/ — Einfaches pass-through-Beispiel
  • content/official/workflows/mineru/ — Beispiel mit buildRequest + Dateibehandlung
  • content/official/workflows/literature-workbench-package/literature-search-ingest/ — Beispiel für interaktiven Modus

Nächste Schritte​