Pi-Entwicklungsworkflow

Diese Anleitung fasst einen sinnvollen Workflow für die Arbeit an der Pi-Integration in OpenClaw zusammen.

Typprüfung und Linting

  • Typprüfung und Build: pnpm build
  • Lint: pnpm lint
  • Format-Check: pnpm format
  • Vollständiger Gate-Check vor dem Push: pnpm lint && pnpm build && pnpm test

Pi-Tests ausführen

Führe die Pi-spezifische Testmenge direkt mit Vitest aus:

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-extensions/**/*.test.ts"

Um den Live-Provider-Test einzubeziehen:

OPENCLAW_LIVE_TEST=1 pnpm test -- src/agents/pi-embedded-runner-extraparams.live.test.ts

Damit werden die wichtigsten Pi-Unit-Suites abgedeckt:

  • 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-extensions/*.test.ts

Manuelles Testen

Empfohlener Ablauf:

  • Gateway im Dev-Modus starten:
    • pnpm gateway:dev
  • Agent direkt triggern:
    • pnpm openclaw agent --message "Hello" --thinking low
  • TUI für interaktives Debugging verwenden:
    • pnpm tui

Um das Verhalten bei Tool-Aufrufen zu testen, löse eine read- oder exec-Aktion aus, damit du Tool-Streaming und Payload-Handling beobachten kannst.

Kompletter Reset

Der Zustand liegt im OpenClaw-State-Verzeichnis. Standard ist ~/.openclaw. Wenn OPENCLAW_STATE_DIR gesetzt ist, wird stattdessen dieses Verzeichnis verwendet.

Um alles zurückzusetzen:

  • openclaw.json für die Konfiguration
  • credentials/ für Auth-Profile und Tokens
  • agents/<agentId>/sessions/ für die Agent-Session-Historie
  • agents/<agentId>/sessions.json für den Session-Index
  • sessions/ falls Legacy-Pfade existieren
  • workspace/ für einen leeren Workspace

Wenn du nur Sessions zurücksetzen willst, lösche agents/<agentId>/sessions/ und agents/<agentId>/sessions.json für den jeweiligen Agenten. Behalte credentials/, wenn du dich nicht erneut authentifizieren möchtest.

Referenzen