3.0 KiB
summary, title, read_when
| summary | title | read_when | ||
|---|---|---|---|---|
| Developer workflow for OpenClaw embedded agent runtime changes | Embedded agent runtime development workflow |
|
A sane workflow for working on OpenClaw's embedded agent runtime. Some files and
tests still use historical pi-* names because the runtime imports selected
upstream Pi packages, but session state, transcripts, tools, prompts, and
persistence are OpenClaw-owned.
Type checking and linting
- Default local gate:
pnpm check - Build gate:
pnpm buildwhen the change can affect build output, packaging, or lazy-loading/module boundaries - Full landing gate for broad agent-runtime changes:
pnpm check && pnpm test
Running embedded runtime tests
Run the focused runtime test set through the repo test wrapper:
pnpm test \
"src/agents/pi-*.test.ts" \
"src/agents/pi-embedded-*.test.ts" \
"src/agents/pi-tools*.test.ts" \
"src/agents/pi-settings.test.ts" \
"src/agents/pi-tool-definition-adapter*.test.ts" \
"src/agents/pi-hooks/**/*.test.ts"
To include the live provider exercise:
OPENCLAW_LIVE_TEST=1 pnpm test src/agents/pi-embedded-runner-extraparams.live.test.ts
This covers the main embedded runtime unit suites:
src/agents/pi-*.test.tssrc/agents/pi-embedded-*.test.tssrc/agents/pi-tools*.test.tssrc/agents/pi-settings.test.tssrc/agents/pi-tool-definition-adapter.test.tssrc/agents/pi-hooks/*.test.ts
Manual testing
Recommended flow:
- Run the gateway in dev mode:
pnpm gateway:dev
- Trigger the agent directly:
pnpm openclaw agent --message "Hello" --thinking low
- Use the TUI for interactive debugging:
pnpm tui
For tool call behavior, prompt for a read or exec action so you can see tool streaming and payload handling.
Clean slate reset
State lives under the OpenClaw state directory. Default is ~/.openclaw. If OPENCLAW_STATE_DIR is set, use that directory instead.
To reset everything:
openclaw.jsonfor configstate/openclaw.sqlite#table/auth_profile_stores/<agentDir>for model auth profiles (API keys + OAuth)credentials/for provider/channel state that still lives outside the auth profile storestate/openclaw.sqlitefor shared gateway state, device/pairing state, and push registration stateagents/<agentId>/agent/openclaw-agent.sqlitefor agent session history, transcript events, VFS scratch state, and artifactsagents/<agentId>/sessions/orsessions/only if you are clearing legacy imports/debug exportsworkspace/if you want a blank workspace
If you only want to reset sessions, delete
agents/<agentId>/agent/openclaw-agent.sqlite for that agent after stopping the
gateway. If you want to keep auth, leave state/openclaw.sqlite and any
provider state under credentials/ in place.