Skip to content
Agentmart
Submit a tool
This entry duplicates openclaw-debugging, which is the one we list in search.

openclaw-debugging

Debug OpenClaw model/provider/tool-surface/code-mode/streaming and live/Crabbox behavior; choose logs, probes, proof path before code changes; fetch stored…

Skill by ngpestelos-mirrors

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/ngpestelos-mirrors-openclaw-debugging

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Debug OpenClaw model/provider/tool-surface/code-mode/streaming and live/Crabbox behavior; choose logs, probes, proof path before code changes; fetch stored sessions, transcripts, attachments as evidence.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions: not checked yet.

What's inside

Skill name
openclaw-debugging
Description
Debug OpenClaw model/provider/tool-surface/code-mode/streaming and live/Crabbox behavior; choose logs, probes, proof path before code changes; fetch stored sessions, transcripts, attachments as evidence.
License
MIT
Instructions
162 lines in SKILL.md · view on GitHub

Agent Skills spec issues

  • body: contains an absolute path from the author's machine

Files (2)

  • SKILL.md
  • openai.yaml · agents/

SKILL.md (first lines)

# OpenClaw Debugging

Behavior differs between local tests, live models, providers, code mode, Tool
Search, Crabbox, CI: get debug signal before guessing.

## Read First

- `docs/logging.md`: log files, `openclaw logs`, targeted debug flags.
- `docs/reference/test.md`: local test commands.
- `docs/tools/code-mode.md`: code-mode exec/wait + tool catalog rules.
- `$openclaw-testing`: test-lane choice.
- `$crabbox`: broad, Docker, package, Linux, live-key, CI-parity proof.

## Default Loop

1. State suspected boundary: config, tool construction, provider payload, fetch,
   stream/SSE, transcript replay, worker/runtime, package/dist, CI.
2. Add/enable narrowest signal proving boundary.
3. Reproduce with same provider/model/config. Never randomly switch models
   unless model itself = tested variable.
4. Compare configured state with actual run activation.
5. Patch root cause.
6. Rerun exact failing probe; broaden only if contract requires.

## Model Transport Logs

Model request shape/stream timing: targeted env flags over global debug:

```bash
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
```

Useful flags:

- `OPENCLAW_DEBUG_MODEL_TRANSPORT=1`: request start, fetch response, SDK
  headers, first SSE event, stream done, transport errors at `info`.
- `OPENCLAW_DEBUG_MODEL_PAYLOAD=summary`: bounded payload summary.
- `OPENCLAW_DEBUG_MODEL_PAYLOAD=tools`: all model-facing tool names.
- `OPENCLAW_DEBUG_MODEL_PAYLOAD=full-redacted`: capped, redacted JSON payload.
  Only while debugging; prompts/message text may still appear.
- `OPENCLAW_DEBUG_SSE=events`: first-event + stream-completion timing.
- `OPENCLAW_DEBUG_SSE=peek`: first five redacted SSE events.
- `OPENCLAW_DEBUG_CODE_MODE=1`: code-mode tool-surface diagnostics.

Watch logs:

```bash
openclaw logs --follow
```

## Common Boundaries

- **Config vs activation:** enabled config can coexist with disabled run tools,
  raw run, empty allowlist, missing model tool support. Check actual visible
  tools before enforcing provider payload invariants.
- **Tool surface:** inspect final model-visible tool names, not only registry/
  config. Code mode = exactly `exec` + `wait` only after actual activation.
- **Provider payload:** before SDK call, log fields, model id, service tier,
  reasoning, input size, metadata keys, prompt-cache key presence, tool names.
- **Fetch vs SSE:** fetch response proves HTTP headers arrived; first SSE event
  proves provider body progress. Gap here = stream/body/provider issue, not
  tool execution.
- **Worker/dist:** touching workers, dynamic imports, package exports, lazy
  runtime boundaries, published paths → `pnpm build`.
- **Live keys:** missing provider keys → configured secret workflow before
  declaring live proof blocked. Env checks presence-only; never print secrets.

## Fetching Sessions and Transcripts

Chat-session bug report: fetch actual transcript, sender attribution,
attachments as evidence.

CLI first (needs configured install; safe against live gateway):

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

Docs: store layout `docs/reference/database-schemas.md`;
CLI https://docs.openclaw.ai/cli/sessions.

Raw store: CLI unavailable (e.g. remote host over SSH) or event-level detail needed:

- Per-agent data plane: `~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite`.
  Canonical schema: `src/state/openclaw-agent-schema.sql`.
- Hosted/systemd state: service user's home (e.g. `/home/openclaw/.openclaw/...`),
  not root's. Root may have separate stray install with different agents.
  Expected agent dir missing: locate real DB with
  `find / -maxdepth 6 -name openclaw-agent.sqlite`.
- Web chat URL session-id fragment: `/chat/<agentId>/<slug>-<hex>`.
  Resolve in `session_nodes`: `session_key LIKE '%<hex>%'` →
  `current_session_id`, `display_name`. Key shape:
  `agent:<agentId>:<surface>:<uuid>`; subagent sessions use surface `subagent`.
- Transcript: `transcript_events` (`session_id`, `seq`, `event_json`).
  `event_json.message`: `role` (`user`/`assistant`/`toolResult`) +
  `content` (string or parts of type `text`/`toolCall`/`image`).
- Sender provenance: real user messages carry `message.__openclaw`
  (`senderId`, `senderName`, `senderIsOwner`); runtime-synthesized inputs do not.
  Distinguish operator-authored text from injected prompts with this.
- Full-text transcript search: `session_transcript_fts`.
- Attachments: `media://inbound/<file>` URLs → `<state-dir>/media/inbound/<file>`.
- User-attached images ≠ `image` content parts. Message envelope carries
  `message.__openclaw.media[]` entries: `url` (`media://inbound/<file>`),
  `contentType`, `kind`, `fileName`. Parts-only extractor misses every image;
  grep raw `event_json` for `media://`. Remote host: scp files locally
  (one remote path per scp argument); read there.

Hosts without `sqlite3` binary still have Node: `node:sqlite` needs no dependencies.

```bash
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-path> <session-id>

From ngpestelos-mirrors/openclaw, MIT.

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Oct 12, 2026 (16 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Same skill elsewhere

Copies of this SKILL.md published by others; search shows only one of them.

More from ngpestelos-mirrors

Cite this page

openclaw-debugging skill. Agent Mart. https://agentmart.dev/skills/ngpestelos-mirrors-openclaw-debugging (last updated 2026-10-24)