CommunityCodierung & Entwicklunggithub.com

openclaw-debugging

Debuggen von OpenClaw-Modell/Provider/Tool-Oberfläche/Code-Modus/Streaming und Live-/Crabbox-Verhalten; Auswahl von Logs, Sonden und Beweispfaden vor Code-Änderungen; Abrufen gespeicherter Sitzungen, Transkripte und Anhänge als Beweismittel.

Was ist openclaw-debugging?

Dieses Skill ist ein umfassendes Debugging-Werkzeug für OpenClaw, das Entwicklern hilft, Probleme in verschiedenen Bereichen wie Modelltransport, Provider-Payloads, Tool-Oberfläche, Code-Modus, Streaming und Live-/CI-Umgebungen systematisch zu identifizieren und zu beheben. Es wird auf CLI-Ebene über Umgebungsflags wie `OPENCLAW_DEBUG_MODEL_TRANSPORT`, `OPENCLAW_DEBUG_SSE` und `OPENCLAW_DEBUG_CODE_MODE` gesteuert, die gezielt Debug-Signale aktivieren, ohne die globale Debug-Ausgabe aufzublähen. Das Skill bietet bewährte Methoden zur Eingrenzung von Fehlergrenzen, zur Reproduktion von Fehlern mit gleicher Konfiguration und zur Auswahl des geeigneten Testansatzes (lokale Vitest-Tests, Live-Provider-Tests oder CI-Parität). Es enthält detaillierte Anleitungen zum Abrufen von Sitzungen und Transkripten aus der SQLite-Datenbank, wobei sowohl CLI-Befehle als auch direkte Datenbankzugriffe über `node:sqlite` beschrieben werden, sowie Hinweise zur Unterscheidung von Benutzernachrichten und synthetischen Eingaben. Das Skill deckt wichtige Code-Stellen in der OpenClaw-Codebasis ab und betont die Bedeutung von Beweisen vor Code-Änderungen.

Funktioniert mit~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/openclaw-debugging

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

OpenClaw Debugging

Das Verhalten unterscheidet sich zwischen lokalen Tests, Live-Modellen, Anbietern (Providern), Code-Modus, Tool Search, Crabbox und CI: Debug-Signal einholen, bevor geraten wird.

Zuerst lesen

  • docs/logging.md: Log-Dateien, openclaw logs, gezielte Debug-Flags.
  • docs/reference/test.md: Lokale Testbefehle.
  • docs/tools/code-mode.md: Code-Mode-Ausführung/Warten + Tool-Katalog-Regeln.
  • $openclaw-testing: Test-Auswahl.
  • $crabbox: Breite, Docker, Paket, Linux, Live-Key, CI-Paritätsprüfung.

Standardablauf

  1. Verdacht auf Grenzbereich eingrenzen: Konfiguration, Tool-Konstruktion, Provider-Payload, Abruf, Stream/SSE, Transkript-Wiedergabe, Worker/Laufzeit, Paket/Verteilung, CI.
  2. Engstes Signal hinzufügen/aktivieren, das den Grenzbereich beweist.
  3. Mit demselben Provider/Modell/Konfiguration reproduzieren. Niemals zufällig Modelle wechseln, es sei denn, das Modell selbst ist die getestete Variable.
  4. Konfigurierten Zustand mit der tatsächlichen Laufaktivierung vergleichen.
  5. Ursache beheben.
  6. Genauen fehlschlagenden Test erneut ausführen; nur verbreitern, wenn der Vertrag es erfordert.

Modell-Transport-Logs

Modellanforderungsform/Streaming-Timing: Gezielte Umgebungsflags statt globalem Debug:

OPENCLAW_DEBUG_MODEL_TRANSPORT=1 openclaw gateway
OPENCLAW_DEBUG_MODEL_PAYLOAD=tools OPENCLAW_DEBUG_SSE=events openclaw gateway
OPENCLAW_DEBUG_MODEL_PAYLOAD=full-redacted OPENCLAW_DEBUG_SSE=peek openclaw gateway

Nützliche Flags:

  • OPENCLAW_DEBUG_MODEL_TRANSPORT=1: Anforderungsstart, Abruf-Antwort, SDK-Header, erstes SSE-Ereignis, Stream-Ende, Transportfehler auf info-Ebene.
  • OPENCLAW_DEBUG_MODEL_PAYLOAD=summary: Begrenzte Payload-Zusammenfassung.
  • OPENCLAW_DEBUG_MODEL_PAYLOAD=tools: Alle modellseitigen Tool-Namen.
  • OPENCLAW_DEBUG_MODEL_PAYLOAD=full-redacted: Gekürzte, geschwärzte JSON-Payload. Nur während des Debuggens; Aufforderungs-/Nachrichtentext kann weiterhin erscheinen.
  • OPENCLAW_DEBUG_SSE=events: Zeitpunkt des ersten Ereignisses + Stream-Abschluss.
  • OPENCLAW_DEBUG_SSE=peek: Erste fünf geschwärzte SSE-Ereignisse.
  • OPENCLAW_DEBUG_CODE_MODE=1: Code-Mode-Tool-Oberflächendiagnose.

Logs verfolgen:

openclaw logs --follow

Häufige Grenzbereiche

  • Konfiguration vs. Aktivierung: Aktivierte Konfiguration kann mit deaktivierten Ausführungs-Tools, roher Ausführung, leerer Whitelist, fehlender Modell-Tool-Unterstützung koexistieren. Überprüfen Sie die tatsächlich sichtbaren Tools, bevor Sie Provider-Payload-Invarianten durchsetzen.
  • Tool-Oberfläche: Untersuchen Sie die endgültigen modellsichtbaren Tool-Namen, nicht nur das Registry-/Konfigurationsverzeichnis. Code-Modus = genau exec + wait nur nach tatsächlicher Aktivierung.
  • Provider-Payload: Vor dem SDK-Aufruf Felder, Modell-ID, Service-Tier, Reasoning, Eingabegröße, Metadaten-Schlüssel, Vorhandensein von Prompt-Cache-Schlüsseln, Tool-Namen protokollieren.
  • Abruf vs. SSE: Die Abruf-Antwort beweist, dass HTTP-Header angekommen sind; das erste SSE-Ereignis beweist den Fortschritt des Provider-Bodys. Eine Lücke hier deutet auf ein Stream-/Body-/Provider-Problem hin, nicht auf eine Tool-Ausführung.
  • Worker/Verteilung: Worker, dynamische Importe, Paket-Exporte, träge Laufzeitgrenzen, veröffentlichte Pfade betreffen → pnpm build.
  • Live-Keys: Fehlende Provider-Keys → konfigurierten Secret-Workflow vor der Deklaration eines blockierten Live-Beweises. Umgebungsprüfungen prüfen nur die Anwesenheit; geben niemals Geheimnisse aus.

Sitzungen und Transkripte abrufen

Chat-Sitzungs-Fehlerbericht: Tatsächliches Transkript, Absenderzuordnung, Anhänge als Beweismittel abrufen.

Zuerst CLI (benötigt konfigurierte Installation; sicher gegen Live-Gateway):

openclaw sessions list --agent <agentId> --json
openclaw sessions tail
openclaw sessions export-trajectory

Dokumentation: Store-Layout docs/reference/database-schemas.md; CLI https://docs.openclaw.ai/cli/sessions.

Roher Store: CLI nicht verfügbar (z.B. Remote-Host über SSH) oder Ereignisdetail erforderlich:

  • Pro-Agent-Datenebene: ~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite. Kanonisches Schema: src/state/openclaw-agent-schema.sql.
  • Gehosteter/Systemd-Zustand: Benutzer-Home des Dienstes (z.B. /home/openclaw/.openclaw/...), nicht root. Root kann eine separate fehlgeleitete Installation mit anderen Agents haben. Erwartetes Agent-Verzeichnis fehlt: Echte DB mit find / -maxdepth 6 -name openclaw-agent.sqlite finden.
  • Web-Chat-URL-Sitzungs-ID-Fragment: /chat/<agentId>/<slug>-<hex>. Auflösen in session_nodes: session_key LIKE '%<hex>%' → current_session_id, display_name. Schlüsselform: agent:<agentId>:<surface>:<uuid>; Subagent-Sitzungen verwenden Surface subagent.
  • Transkript: transcript_events (session_id, seq, event_json). event_json.message: role (user/assistant/toolResult) + content (String oder Teile des Typs text/toolCall/image).
  • Absenderherkunft: Echte Benutzernachrichten enthalten message.__openclaw (senderId, senderName, senderIsOwner); laufzeitgenerierte Eingaben nicht. Unterscheiden Sie operatoreingetragenen Text von injizierten Aufforderungen damit.
  • Volltext-Transkriptsuche: session_transcript_fts.
  • Anhänge: media://inbound/<file> URLs → <state-dir>/media/inbound/<file>.
  • Benutzerangehängte Bilder ≠ image-Inhaltsteile. Der Nachrichtenumschlag enthält message.__openclaw.media[] Einträge: url (media://inbound/<file>), contentType, kind, fileName. Nur-Teile-Extraktor übersieht jedes Bild; rohes event_json nach media:// durchsuchen. Remote-Host: scp-Dateien lokal (ein Remote-Pfad pro scp-Argument); dort lesen.

Hosts ohne sqlite3-Binär haben dennoch Node: node:sqlite benötigt keine Abhängigkeiten.

node -e 'const {DatabaseSync}=require("node:sqlite");
const db=new DatabaseSync(process.argv[1],{readOnly:true});
console.log(JSON.stringify(db.prepare(
  "SELECT seq,event_json FROM transcript_events WHERE session_id=? ORDER BY seq"
).all(process.argv[2])))' <db-pfad> <sitzungs-id>
  • Live-Stores immer mit readOnly: true öffnen; niemals in den Zustand eines laufenden Gateways schreiben (Root AGENTS.md Validierungsregeln).
  • Arbeit mit realistischen Daten: DB zuerst in das Dev-Zustandsverzeichnis kopieren.

Code-Verweise

  • Modell-Payload + Responses-Stream: src/agents/openai-transport-stream.ts
  • Geschützter Abruf/Timing: src/agents/provider-transport-fetch.ts
  • OpenAI/Codex-Provider-Wrapper: src/llm/providers/stream-wrappers/openai.ts
  • Tool-Konstruktion, Tool Search, Code-Mode-Aktivierung: src/agents/embedded-agent-runner/run/attempt.ts
  • Code-Mode-Laufzeit und Worker: src/agents/code-mode.ts src/agents/code-mode.worker.ts
  • Tool Search-Katalog: src/agents/tool-search.ts

Beweisauswahl

  • Einzelfehler (Hilfsfunktion/Payload): Lokaler gezielter Vitest.
  • Nur Dokumentation/Logging: pnpm check:docs + git diff --check.
  • Worker/Verteilung/träges Import/Paket-Oberfläche: Gezielte Tests + pnpm build.
  • Live-Provider/Modell-Verhalten: Gleicher Provider/Modell, Debug-Flags, echter Schlüssel falls verfügbar.
  • Docker/Paket/Linux/CI-Parität: Aktueller dedizierter Linux-Worker, wenn möglich; andernfalls $crabbox.
  • CI-Fehler: Exakter SHA, nur relevanter Job; Logs nur nach Fehler/Abschluss.

Ausgabegewohnheit

Berichten:

  • getesteter Grenzbereich
  • genauer Befehl/Umgebungsform, geschwärzt
  • beobachtetes Signal, z.B. Tool-Namen oder Timing des ersten SSE-Ereignisses
  • Fix-Stelle
  • enger Beweis + verbleibendes Risiko

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

Verwandte Skills