# System Patterns ## Architektur ``` ┌─────────────────────────────────────────────────────────┐ │ Host (Podman) │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌────────────┐ │ │ │ Ollama │ │ OpenClaw │ │ Tool Router│ │ │ │ (LLM Backend)│◄──►│ (Agent) │◄──►│ (FastAPI) │ │ │ │ Port 11434 │ │ Port 18789 │ │ Port 8090 │ │ │ └──────────────┘ └──────────────┘ └────────────┘ │ │ │ │ ┌──────────────┐ │ │ │ SearchFetch │ (SearXNG Search Tool) │ │ │ (SearXNG) │ Port 8888 │ │ └──────────────┘ │ └─────────────────────────────────────────────────────────┘ ``` ## Design-Entscheidungen 1. **Podman statt Docker**: Rootless Container, keine Daemon-Abhängigkeit 2. **GPU-Unterstützung**: 3 compose-Dateien (AMD/Nvidia/Intel) für verschiedene Hardware 3. **MCP-Protokoll**: Tool-Router nutzt Model Context Protocol für Skill-Orchestrierung 4. **Sandbox**: OpenClaw hat separaten Sandbox-Container für sichere Code-Ausführung 5. **Gateway-Proxy**: Squid-Proxy vor Ollama für Request-Logging und Caching ## Kommunikationsmuster - Ollama ↔ OpenClaw: HTTP REST (Port 11434) - OpenClaw ↔ Tool-Router: MCP over HTTP/SSE (Port 8090) - Tool-Router ↔ externe APIs: HTTP (httpx Client)