# Framework & Runtime Notes ## OpenClaw's Agent Framework OpenClaw does **not** use any mainstream agent framework. No LangChain, LangGraph, CrewAI, Strands, or similar. ### Custom Stack: pi-mono The agent runtime is built on **pi-mono** by Mario Zechner (`@mariozechner`), a custom TypeScript agent runtime: | Package | Role | |---|---| | `@mariozechner/pi-agent-core` | Core agent loop: LLM call → tool parse → execute → loop | | `@mariozechner/pi-ai` | LLM provider abstraction (Bedrock, Anthropic, OpenAI, Ollama, etc.) | | `@mariozechner/pi-coding-agent` | Coding agent runtime (Codex/Claude Code style sub-agents) | | `@mariozechner/pi-tui` | Terminal UI for interactive sessions | ### OpenClaw Owns Everything Else On top of pi-mono, OpenClaw implements: - Session management (JSONL transcripts, compaction, pruning) - Channel routing (inbound message → agent → response → channel) - Tool wiring (exec, read, write, edit, browser, canvas, nodes, message, etc.) - Context engine (system prompt construction, bootstrap file injection) - Heartbeat / Cron scheduling - Device pairing and trust - Config management and hot-reload - Multi-agent routing - Webhook/hook system ### Observability No LangSmith, LangFuse, Arize, or OpenTelemetry integration. - Internal JSONL session transcripts - stdout/stderr logging (CloudWatch-compatible) - `openclaw logs --follow` for live tailing - Control UI for session inspection ### Implications for AgentCore - No off-the-shelf framework adapter for AgentCore (unlike LangGraph/Strands starters) - Would need custom `/invocations` + `/ping` HTTP wrapper around pi-mono - LLM provider layer (`pi-ai`) could potentially be swapped for direct Bedrock SDK calls - Tool definitions would need to be re-expressed as AgentCore-compatible tool schemas --- *Added 2026-03-10*