CommunityProgramación y desarrollogithub.com

Depuración de OpenClaw

Depura el comportamiento del modelo/proveedor/superficie de herramientas/modo código/streaming y Crabbox de OpenClaw; elige logs, sondas, ruta de prueba antes de cambios de código; recupera sesiones almacenadas, transcripciones y archivos adjuntos como evidencia.

¿Qué es Depuración de OpenClaw?

OpenClaw Debugging es una habilidad experta para diagnosticar y depurar problemas en el ecosistema de OpenClaw, abarcando desde modelos de lenguaje y proveedores hasta el modo código, la búsqueda de herramientas (Tool Search), Crabbox (Docker, Linux, CI) y el runtime. Su propósito es guiar al desarrollador para obtener una señal de depuración clara antes de realizar cambios de código, evitando adivinanzas. La habilidad proporciona un flujo de trabajo estructurado: delimitar la frontera sospechosa, habilitar la sonda más específica, reproducir el fallo con la misma configuración, comparar el estado esperado con la ejecución real, aplicar la corrección y verificar con la misma sonda. Soporta múltiples plataformas como interfaz de línea de comandos (CLI) y entornos locales o remotos, y ofrece flags de entorno detallados para inspeccionar el transporte del modelo, los payloads, los eventos SSE y el modo código. También incluye métodos para obtener sesiones de chat, transcripciones y archivos adjuntos como evidencia forense, ya sea mediante la CLI o accediendo directamente a la base de datos SQLite subyacente. Al final, la habilidad exige reportar la frontera probada, el comando exacto, la señal observada y la ubicación de la corrección, junto con la prueba restante y el riesgo residual.

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

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace Depuración de OpenClaw?

El comportamiento difiere entre pruebas locales, modelos en vivo, proveedores, modo código, Tool Search, Crabbox y CI: obtén señal de depuración antes de adivinar.

Leer Primero

  • docs/logging.md: archivos de log, openclaw logs, flags de depuración específicos.
  • docs/reference/test.md: comandos de prueba local.
  • docs/tools/code-mode.md: ejecución/espera del modo código + reglas del catálogo de herramientas.
  • $openclaw-testing: elección de carril de prueba.
  • $crabbox: prueba amplia, Docker, paquete, Linux, clave en vivo, paridad con CI.

Bucle Predeterminado

  1. Identifica la frontera sospechosa: configuración, construcción de herramientas, payload del proveedor, fetch, stream/SSE, repetición de transcripción, worker/runtime, paquete/dist, CI.
  2. Agrega/habilita la señal más específica que demuestre la frontera.
  3. Reproduce con el mismo proveedor/modelo/configuración. Nunca cambies de modelo al azar a menos que el modelo mismo sea la variable probada.
  4. Compara el estado configurado con la activación real de la ejecución.
  5. Corrige la causa raíz.
  6. Vuelve a ejecutar la sonda exacta que falla; amplía solo si el contrato lo requiere.

Logs de Transporte del Modelo

Forma de la solicitud del modelo/tiempos del stream: usa flags de entorno específicos en lugar de depuración global:

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

Flags útiles:

  • OPENCLAW_DEBUG_MODEL_TRANSPORT=1: inicio de solicitud, respuesta de fetch, cabeceras SDK, primer evento SSE, fin de stream, errores de transporte a nivel info.
  • OPENCLAW_DEBUG_MODEL_PAYLOAD=summary: resumen acotado del payload.
  • OPENCLAW_DEBUG_MODEL_PAYLOAD=tools: todos los nombres de herramientas visibles para el modelo.
  • OPENCLAW_DEBUG_MODEL_PAYLOAD=full-redacted: payload JSON limitado y censurado. Solo durante depuración; el texto de mensajes/prompts aún puede aparecer.
  • OPENCLAW_DEBUG_SSE=events: tiempo del primer evento + finalización del stream.
  • OPENCLAW_DEBUG_SSE=peek: primeros cinco eventos SSE censurados.
  • OPENCLAW_DEBUG_CODE_MODE=1: diagnóstico de la superficie de herramientas del modo código.

Observa logs:

openclaw logs --follow

Fronteras Comunes

  • Configuración vs activación: la configuración habilitada puede coexistir con herramientas de ejecución deshabilitadas, ejecución en bruto, lista blanca vacía, falta de soporte de herramientas del modelo. Verifica las herramientas realmente visibles antes de imponer invariantes del payload del proveedor.
  • Superficie de herramientas: inspecciona los nombres de herramientas finales visibles para el modelo, no solo el registro/la configuración. El modo código = exactamente exec + wait solo después de la activación real.
  • Payload del proveedor: antes de la llamada al SDK, registra campos, ID del modelo, nivel de servicio, razonamiento, tamaño de entrada, claves de metadatos, presencia de clave de caché de prompt, nombres de herramientas.
  • Fetch vs SSE: la respuesta de fetch demuestra que las cabeceras HTTP llegaron; el primer evento SSE demuestra el progreso del cuerpo del proveedor. La brecha aquí indica un problema de stream/cuerpo/proveedor, no de ejecución de herramientas.
  • Worker/dist: al tocar workers, importaciones dinámicas, exportaciones de paquetes, límites del runtime perezoso, rutas publicadas → pnpm build.
  • Claves en vivo: claves de proveedor faltantes → flujo de trabajo secreto configurado antes de declarar la prueba en vivo bloqueada. Las comprobaciones de entorno solo verifican presencia; nunca imprimas secretos.

Obtención de Sesiones y Transcripciones

Reporte de error de sesión de chat: obtén la transcripción real, atribución del remitente, archivos adjuntos como evidencia.

Primero CLI (necesita instalación configurada; seguro contra el gateway en vivo):

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

Documentación: diseño de almacenamiento docs/reference/database-schemas.md; CLI https://docs.openclaw.ai/cli/sessions.

Almacenamiento sin procesar: cuando la CLI no está disponible (por ejemplo, host remoto por SSH) o se necesita detalle a nivel de evento:

  • Plano de datos por agente: ~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite. Esquema canónico: src/state/openclaw-agent-schema.sql.
  • Estado alojado/systemd: directorio home del usuario de servicio (p. ej., /home/openclaw/.openclaw/...), no el de root. Root puede tener una instalación separada huérfana con diferentes agentes. Si falta el directorio esperado del agente: localiza la BD real con find / -maxdepth 6 -name openclaw-agent.sqlite.
  • Fragmento de ID de sesión en URL de chat web: /chat/<agentId>/<slug>-<hex>. Resuelve en session_nodes: session_key LIKE '%<hex>%' → current_session_id, display_name. Forma de la clave: agent:<agentId>:<surface>:<uuid>; las sesiones de subagentes usan la superficie subagent.
  • Transcripción: transcript_events (session_id, seq, event_json). event_json.message: role (user/assistant/toolResult) + content (cadena o partes de tipo text/toolCall/image).
  • Procedencia del remitente: los mensajes de usuario reales llevan message.__openclaw (senderId, senderName, senderIsOwner); las entradas sintetizadas por el runtime no. Distingue texto escrito por el operador de prompts inyectados con esto.
  • Búsqueda de texto completo en transcripciones: session_transcript_fts.
  • Archivos adjuntos: URLs media://inbound/<file> → <state-dir>/media/inbound/<file>.
  • Las imágenes adjuntas por el usuario no son partes de contenido image. El sobre del mensaje lleva entradas message.__openclaw.media[]: url (media://inbound/<file>), contentType, kind, fileName. El extractor solo de partes pierde todas las imágenes; busca en el event_json sin procesar por media://. Host remoto: copia archivos por scp localmente (una ruta remota por argumento de scp); lee allí.

Hosts sin el binario sqlite3 aún tienen Node: node:sqlite no necesita dependencias.

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])))' <ruta-bd> <id-sesión>
  • Siempre abre almacenes en vivo con readOnly: true; nunca escribas en el estado del gateway en ejecución (reglas de validación de AGENTS.md raíz).
  • Trabajo con datos realistas: copia la BD en el directorio de estado de desarrollo primero.

Punteros de Código

  • Payload del modelo + stream de Responses: src/agents/openai-transport-stream.ts
  • Fetch/timing custodiado: src/agents/provider-transport-fetch.ts
  • Wrappers de proveedor OpenAI/Codex: src/llm/providers/stream-wrappers/openai.ts
  • Construcción de herramientas, Tool Search, activación del modo código: src/agents/embedded-agent-runner/run/attempt.ts
  • Runtime del modo código y worker: src/agents/code-mode.ts src/agents/code-mode.worker.ts
  • Catálogo de Tool Search: src/agents/tool-search.ts

Elección de Prueba

  • Error de helper/payload único: Vitest local dirigido.
  • Solo documentación/logs: pnpm check:docs + git diff --check.
  • Worker/dist/importación perezosa/superficie de paquete: pruebas dirigidas + pnpm build.
  • Comportamiento de modelo/proveedor en vivo: mismo proveedor/modelo, flags de depuración, clave real si está disponible.
  • Docker/paquete/Linux/paridad con CI: worker Linux dedicado actual si es capaz; de lo contrario, $crabbox.
  • Falla en CI: SHA exacto, solo el trabajo relevante; logs solo después de falla/completado.

Hábito de Salida

Reporta:

  • frontera probada
  • comando/env exacto, censurado
  • señal observada, p. ej., nombres de herramientas o tiempo del primer evento SSE
  • ubicación de la corrección
  • prueba estrecha + riesgo restante

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, 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.

Skills relacionados