31 lines
2.1 KiB
Markdown
31 lines
2.1 KiB
Markdown
# 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) |