Memory
# IntelligentRAG — Final Architecture (Two Containers) ## Stack - **Worker** (McpAgent) — MCP server, orchestration - **SurrealDB Container** (:8000) — graph, vectors, document store, SurrealQL functions - **Xberg Container** (:5000) — document intelligence (97 formats, OCR, extraction) - **crawlberg-wasm** — web crawling (in Worker, 4.7MB) - **Workers AI** — Qwen3 embeddings (1024-dim) + chat models - **Browser Run** — JS-heavy page fallback ## Architecture ``` Worker (McpAgent) │ ├─→ SurrealDB container (:8000) │ ├── 23 tables │ ├── 3 functions (embed, llm, search) │ ├── 2 events (auto-notify) │ └── 3 API endpoints │ ├─→ Xberg container (:5000) │ └── Document extraction (97 formats, OCR) │ ├─→ crawlberg-wasm (in Worker) │ └── Web crawling │ ├─→ Workers AI │ └── Embeddings + chat │ └─→ Browser Run └── JS-heavy page fallback ``` ## Key Decision: xberg as Container - xberg-wasm is 37MB (too large for 10MB Worker bundle) - crawlberg-wasm is 4.7MB (fits in Worker) - xberg runs as container with full capabilities - Worker calls xberg via HTTP ## Environment Variables - SURREAL_ENDPOINT — SurrealDB container URL - SURREAL_USER / SURREAL_PASS — SurrealDB auth - XBERG_ENDPOINT — Xberg container URL - CF_ACCOUNT_ID / CF_API_TOKEN — Workers AI credentials
Tags: architecture, containers, xberg, surrealdb, final, project:intelligentrag, kind:semantic — Source: claude — 2026-07-17 08:23:13 UTC