# openclaw-openbrain-context OpenBrain-backed `ContextEngine` plugin for OpenClaw. This plugin stores session context in OpenBrain over REST so context can be reassembled from recent history plus semantic matches instead of relying only on in-session compaction state. ## Features - Registers context engine id: `openbrain` - Typed OpenBrain REST client with Bearer auth - Session-aware ingest + batch ingest - Context assembly from recent + semantic search under token budget - Compaction summaries archived to OpenBrain - Subagent seed/result handoff helpers ## Requirements - OpenClaw with plugin/context-engine support (`openclaw >= 2026.3.2`) - Reachable OpenBrain REST API - OpenBrain API key ## Install (local workspace plugin) ```bash pnpm install pnpm build ``` Then reference this plugin in your OpenClaw config. ## OpenBrain Setup (self-host or hosted) You must provide both of these in plugin config: - `baseUrl`: your OpenBrain API root (example: `https://brain.your-domain.com`) - `apiKey`: Bearer token for your OpenBrain instance No host or key fallback is built in. Missing `baseUrl` or `apiKey` throws `OpenBrainConfigError` at `bootstrap()`. ## Configuration Plugin entry id: `openclaw-openbrain-context` Context engine slot id: `openbrain` ### Config fields - `baseUrl` (required, string): OpenBrain API base URL - `apiKey` (required, string): OpenBrain Bearer token - `source` (optional, string, default `openclaw`): source prefix; engine stores thoughts under `:` - `recentMessages` (optional, integer, default `20`): recent thoughts to fetch for bootstrap/assemble - `semanticSearchLimit` (optional, integer, default `10`): semantic matches fetched in assemble - `subagentRecentMessages` (optional, integer, default `8`): context lines used for subagent seed/result exchange ## Environment Variable Pattern Use OpenClaw variable interpolation in `openclaw.json`: ```json { "apiKey": "${OPENBRAIN_API_KEY}" } ``` Then set it in your shell/runtime environment before starting OpenClaw. ## Example `openclaw.json` ```json { "plugins": { "slots": { "contextEngine": "openbrain" }, "entries": { "openclaw-openbrain-context": { "enabled": true, "config": { "baseUrl": "https://brain.example.com", "apiKey": "${OPENBRAIN_API_KEY}", "source": "openclaw", "recentMessages": 20, "semanticSearchLimit": 10, "subagentRecentMessages": 8 } } } } } ``` ## Development ```bash pnpm lint pnpm build pnpm test ```