Debughulpen voor streaminguitvoer, vooral wanneer een provider redeneringen mengt in normale tekst.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Debug-overschrijvingen tijdens runtime
Gebruik/debug in chat om alleen-runtime configuratie-overschrijvingen in te stellen (geheugen, niet schijf).
/debug is standaard uitgeschakeld; schakel het in met commands.debug: true.
Dit is handig wanneer je obscure instellingen moet omschakelen zonder openclaw.json te bewerken.
Voorbeelden:
/debug reset wist alle overschrijvingen en keert terug naar de configuratie op schijf.
Sessietrace-uitvoer
Gebruik/trace wanneer je plugin-eigen trace-/debugregels in één sessie wilt zien
zonder de volledige uitgebreide modus in te schakelen.
Voorbeelden:
/trace voor plugin-diagnostiek zoals Active Memory-debugsamenvattingen.
Blijf /verbose gebruiken voor normale uitgebreide status-/tooluitvoer, en blijf
/debug gebruiken voor alleen-runtime configuratie-overschrijvingen.
Trace van de Plugin-levenscyclus
GebruikOPENCLAW_PLUGIN_LIFECYCLE_TRACE=1 wanneer commando’s voor de plugin-levenscyclus traag aanvoelen
en je een ingebouwde fase-uitsplitsing nodig hebt voor plugin-metadata, discovery, registry,
runtime-mirror, configuratiemutatie en verversingswerk. De trace is opt-in en schrijft
naar stderr, zodat JSON-commando-uitvoer parsebaar blijft.
Voorbeeld:
node dist/entry.js ... na pnpm build; pnpm openclaw ...
meet ook overhead van de source-runner.
Tijdelijke CLI-debugtiming
OpenClaw bewaartsrc/cli/debug-timing.ts als een kleine helper voor lokaal
onderzoek. Deze is bewust niet standaard gekoppeld aan CLI-opstart, commandorouting
of enig commando. Gebruik deze alleen tijdens het debuggen van een traag commando, en
verwijder daarna de import en spans voordat je de gedragswijziging landt.
Gebruik dit wanneer een commando traag is en je een snelle fase-uitsplitsing nodig hebt voordat
je beslist of je een CPU-profiler gebruikt of een specifiek subsysteem repareert.
Tijdelijke spans toevoegen
Voeg de helper toe nabij de code die je onderzoekt. Tijdens het debuggen vanopenclaw models list kan een tijdelijke patch in
src/commands/models/list.list-command.ts er bijvoorbeeld zo uitzien:
- Prefix tijdelijke fasenamen met
debug:. - Voeg slechts een paar spans toe rond vermoedelijk trage secties.
- Geef de voorkeur aan brede fasen zoals
registry,auth_storeofrowsboven helpernamen. - Gebruik
time()voor synchroon werk entimeAsync()voor promises. - Houd stdout schoon. De helper schrijft naar stderr, zodat JSON-commando-uitvoer parsebaar blijft.
- Verwijder tijdelijke imports en spans voordat je de uiteindelijke fix-PR opent.
- Neem de timinguitvoer of een korte samenvatting op in de issue of PR die de optimalisatie uitlegt.
Uitvoeren met leesbare uitvoer
Leesbare modus is het beste voor live debuggen:models list-onderzoek:
| Fase | Tijd | Wat het betekent |
|---|---|---|
debug:models:list:auth_store | 20.3s | Het laden van de auth-profile-store is de grootste kostenpost en moet eerst worden onderzocht. |
debug:models:list:ensure_models_json | 5.0s | Het synchroniseren van models.json is duur genoeg om caching of skip-voorwaarden te inspecteren. |
debug:models:list:load_model_registry | 5.9s | Registry-opbouw en provider-beschikbaarheidswerk zijn ook betekenisvolle kosten. |
debug:models:list:read_registry_models | 2.4s | Alle registry-modellen lezen is niet gratis en kan ertoe doen voor --all. |
| fasen voor het toevoegen van rijen | 3.2s totaal | Vijf weergegeven rijen bouwen duurt nog steeds meerdere seconden, dus het filterpad verdient nadere blik. |
debug:models:list:print_model_table | 0ms | Rendering is niet de bottleneck. |
Uitvoeren met JSON-uitvoer
Gebruik JSON-modus wanneer je timingdata wilt opslaan of vergelijken:Opruimen vóór het landen
Voordat je de definitieve PR opent:--cpu-prof) of een externe
profiler in plaats van meer timing-wrappers toe te voegen.
Gateway-watchmodus
Voor snelle iteratie voer je de Gateway uit onder de file watcher:openclaw-gateway-watch-main (of een profiel-/poortspecificieke variant zoals
openclaw-gateway-watch-dev-19001) en koppelt automatisch aan vanaf interactieve terminals.
Niet-interactieve shells, CI en agent-exec-aanroepen blijven losgekoppeld en tonen in plaats daarvan
instructies om aan te koppelen. Koppel handmatig aan wanneer nodig:
OPENCLAW_PROFILE, OPENCLAW_CONFIG_PATH, OPENCLAW_STATE_DIR,
OPENCLAW_GATEWAY_PORT en OPENCLAW_SKIP_CHANNELS mee naar het paneel. Zet
providerreferenties in je normale profiel/config, of gebruik raw foreground-modus
voor eenmalige tijdelijke geheimen.
De watcher herstart bij build-relevante bestanden onder src/, bronbestanden van Plugins,
extension-package.json- en openclaw.plugin.json-metadata, tsconfig.json,
package.json en tsdown.config.ts. Metadatawijzigingen van Plugins herstarten de
Gateway zonder een tsdown-rebuild te forceren; bron- en configwijzigingen bouwen nog steeds
eerst dist opnieuw.
Voeg eventuele Gateway-CLI-vlaggen toe na gateway:watch en ze worden bij
elke herstart doorgegeven. Het opnieuw uitvoeren van dezelfde watch-opdracht spawnt het genoemde tmux-paneel opnieuw, en
de raw watcher behoudt nog steeds zijn single-watcher-lock, zodat dubbele watcher-ouders
worden vervangen in plaats van zich op te stapelen.
Dev-profiel + dev-Gateway (—dev)
Gebruik het dev-profiel om state te isoleren en een veilige, wegwerpbare setup op te starten voor debugging. Er zijn twee--dev-vlaggen:
- Globale
--dev(profiel): isoleert state onder~/.openclaw-deven stelt de standaard-Gateway-poort in op19001(afgeleide poorten schuiven mee). gateway --dev: vertelt de Gateway om automatisch een standaardconfiguratie + workspace aan te maken wanneer die ontbreekt (en BOOTSTRAP.md over te slaan).
pnpm openclaw ....
Wat dit doet:
-
Profielisolatie (globale
--dev)OPENCLAW_PROFILE=devOPENCLAW_STATE_DIR=~/.openclaw-devOPENCLAW_CONFIG_PATH=~/.openclaw-dev/openclaw.jsonOPENCLAW_GATEWAY_PORT=19001(browser/canvas schuiven overeenkomstig mee)
-
Dev-bootstrap (
gateway --dev)- Schrijft een minimale config als die ontbreekt (
gateway.mode=local, bind loopback). - Stelt
agent.workspacein op de dev-workspace. - Stelt
agent.skipBootstrap=truein (geen BOOTSTRAP.md). - Seedt de workspacebestanden als die ontbreken:
AGENTS.md,SOUL.md,TOOLS.md,IDENTITY.md,USER.md,HEARTBEAT.md. - Standaardidentiteit: C3‑PO (protocol droid).
- Slaat channelproviders over in dev-modus (
OPENCLAW_SKIP_CHANNELS=1).
- Schrijft een minimale config als die ontbreekt (
--dev is een globale profielvlag en wordt door sommige runners opgeslokt. Als je het expliciet moet uitschrijven, gebruik dan de env-var-vorm:--reset wist config, referenties, sessies en de dev-workspace (met
trash, niet rm) en maakt daarna de standaard-dev-setup opnieuw aan.
Raw stream-logging (OpenClaw)
OpenClaw kan de raw assistant-stream loggen vóór filtering/formattering. Dit is de beste manier om te zien of reasoning binnenkomt als plain text-delta’s (of als afzonderlijke thinking-blokken). Schakel dit in via de CLI:~/.openclaw/logs/raw-stream.jsonl
Ruwe fragmentlogging (pi-mono)
Om ruwe OpenAI-compatibele fragmenten vast te leggen voordat ze tot blokken worden verwerkt, biedt pi-mono een afzonderlijke logger:~/.pi-mono/logs/raw-openai-completions.jsonl
Opmerking: dit wordt alleen uitgegeven door processen die de
openai-completions-provider van pi-mono gebruiken.
Veiligheidsopmerkingen
- Ruwe streamlogs kunnen volledige prompts, tooluitvoer en gebruikersgegevens bevatten.
- Houd logs lokaal en verwijder ze na het debuggen.
- Als u logs deelt, verwijder dan eerst geheimen en persoonsgegevens.