30 KiB
OpenClaw Architecture, Deployment Modes, and Ollama Integration
Research Report for Timmy Time Dashboard Project
Issue: #721 — [Kimi Research] OpenClaw architecture, deployment modes, and Ollama integration
Date: 2026-03-21
Author: Kimi (Moonshot AI)
Status: Complete
Executive Summary
OpenClaw is an open-source AI agent framework that bridges messaging platforms (WhatsApp, Telegram, Slack, Discord, iMessage) to AI coding agents through a centralized gateway. Originally known as Clawdbot and Moltbot, it was rebranded to OpenClaw in early 2026. This report provides a comprehensive analysis of OpenClaw's architecture, deployment options, Ollama integration capabilities, and suitability for deployment on resource-constrained VPS environments like the Hermes DigitalOcean droplet (2GB RAM / 1 vCPU).
Key Finding: Running OpenClaw with local LLMs on a 2GB RAM VPS is not recommended. The absolute minimum for a text-only agent with external API models is 4GB RAM. For local model inference via Ollama, 8-16GB RAM is the practical minimum. A hybrid approach using OpenRouter as the primary provider with Ollama as fallback is the most viable configuration for small VPS deployments.
1. Architecture Overview
1.1 Core Components
OpenClaw follows a hub-and-spoke (轴辐式) architecture optimized for multi-agent task execution:
┌─────────────────────────────────────────────────────────────────────────┐
│ OPENCLAW ARCHITECTURE │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ WhatsApp │ │ Telegram │ │ Discord │ │
│ │ Channel │ │ Channel │ │ Channel │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ └────────────────────┼────────────────────┘ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ Gateway │◄─────── WebSocket/API │
│ │ (Port 18789) │ Control Plane │
│ └────────┬─────────┘ │
│ │ │
│ ┌──────────────┼──────────────┐ │
│ ▼ ▼ ▼ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Agent A │ │ Agent B │ │ Pi Agent│ │
│ │ (main) │ │ (coder) │ │(delegate)│ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
│ │ │ │ │
│ └──────────────┼──────────────┘ │
│ ▼ │
│ ┌────────────────────────┐ │
│ │ LLM Router │ │
│ │ (Primary/Fallback) │ │
│ └───────────┬────────────┘ │
│ │ │
│ ┌─────────────────┼─────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Ollama │ │ OpenAI │ │Anthropic│ │
│ │(local) │ │(cloud) │ │(cloud) │ │
│ └─────────┘ └─────────┘ └─────────┘ │
│ │ ┌─────┐ │
│ └────────────────────────────────────────────────────►│ MCP │ │
│ │Tools│ │
│ └─────┘ │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Memory │ │ Skills │ │ Workspace │ │
│ │ (SOUL.md) │ │ (SKILL.md) │ │ (sessions) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘
1.2 Component Deep Dive
| Component | Purpose | Configuration File |
|---|---|---|
| Gateway | Central control plane, WebSocket/API server, session management | gateway section in openclaw.json |
| Pi Agent | Core agent runner, "指挥中心" - schedules LLM calls, tool execution, error handling | agents section in openclaw.json |
| Channels | Messaging platform integrations (Telegram, WhatsApp, Slack, Discord, iMessage) | channels section in openclaw.json |
| SOUL.md | Agent persona definition - personality, communication style, behavioral guidelines | ~/.openclaw/workspace/SOUL.md |
| AGENTS.md | Multi-agent configuration, routing rules, agent specialization definitions | ~/.openclaw/workspace/AGENTS.md |
| Workspace | File system for agent state, session data, temporary files | ~/.openclaw/workspace/ |
| Skills | Bundled tools, prompts, configurations that teach agents specific tasks | ~/.openclaw/workspace/skills/ |
| Sessions | Conversation history, context persistence between interactions | ~/.openclaw/agents/<agent>/sessions/ |
| MCP Tools | Model Context Protocol integration for external tool access | Via mcporter or native MCP |
1.3 Agent Runner Execution Flow
According to OpenClaw documentation, a complete agent run follows these stages:
- Queuing - Session-level queue (serializes same-session requests) → Global queue (controls total concurrency)
- Preparation - Parse workspace, provider/model, thinking level parameters
- Plugin Loading - Load relevant skills based on task context
- Memory Retrieval - Fetch relevant context from SOUL.md and conversation history
- LLM Inference - Send prompt to configured provider with tool definitions
- Tool Execution - Execute any tool calls returned by the LLM
- Response Generation - Format and return final response to the channel
- Memory Storage - Persist conversation and results to session storage
2. Deployment Modes
2.1 Comparison Matrix
| Deployment Mode | Best For | Setup Complexity | Resource Overhead | Stability |
|---|---|---|---|---|
| npm global | Development, quick testing | Low | Minimal (~200MB) | Moderate |
| Docker | Production, isolation, reproducibility | Medium | Higher (~2.5GB base image) | High |
| Docker Compose | Multi-service stacks, complex setups | Medium-High | Higher | High |
| Bare metal/systemd | Maximum performance, dedicated hardware | High | Minimal | Moderate |
2.2 NPM Global Installation (Recommended for Quick Start)
# One-line installer
curl -fsSL https://openclaw.ai/install.sh | bash
# Or manual npm install
npm install -g openclaw
# Initialize configuration
openclaw onboard
# Start gateway
openclaw gateway
Pros:
- Fastest setup (~30 seconds)
- Direct access to host resources
- Easy updates via
npm update -g openclaw
Cons:
- Node.js 22+ dependency required
- No process isolation
- Manual dependency management
2.3 Docker Deployment (Recommended for Production)
# Pull and run
docker pull openclaw/openclaw:latest
docker run -d \
--name openclaw \
-p 127.0.0.1:18789:18789 \
-v ~/.openclaw:/root/.openclaw \
-e ANTHROPIC_API_KEY=sk-ant-... \
openclaw/openclaw:latest
# Or with Docker Compose
docker compose -f compose.yml --env-file .env up -d --build
Docker Compose Configuration (production-ready):
version: '3.8'
services:
openclaw:
image: openclaw/openclaw:latest
container_name: openclaw
restart: unless-stopped
ports:
- "127.0.0.1:18789:18789" # Never expose to 0.0.0.0
volumes:
- ./openclaw-data:/root/.openclaw
- ./workspace:/root/.openclaw/workspace
environment:
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
- OLLAMA_API_KEY=ollama-local
networks:
- openclaw-net
# Resource limits for small VPS
deploy:
resources:
limits:
cpus: '1.5'
memory: 3G
reservations:
cpus: '0.5'
memory: 1G
networks:
openclaw-net:
driver: bridge
2.4 Bare Metal / Systemd Installation
For running as a system service on Linux:
# Create systemd service
sudo tee /etc/systemd/system/openclaw.service > /dev/null <<EOF
[Unit]
Description=OpenClaw Gateway
After=network.target
[Service]
Type=simple
User=openclaw
Group=openclaw
WorkingDirectory=/home/openclaw
Environment="PATH=/usr/local/bin:/usr/bin:/bin"
Environment="NODE_ENV=production"
Environment="ANTHROPIC_API_KEY=sk-ant-..."
ExecStart=/usr/local/bin/openclaw gateway
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable openclaw
sudo systemctl start openclaw
2.5 Recommended Deployment for 2GB RAM VPS
⚠️ Critical Finding: OpenClaw's official minimum is 4GB RAM. On a 2GB VPS:
- Do NOT run local LLMs - Use external API providers exclusively
- Use npm installation - Docker overhead is too heavy
- Disable browser automation - Chromium requires 2-4GB alone
- Enable swap - Critical for preventing OOM kills
- Use OpenRouter - Cheap/free tier models reduce costs
Setup script for 2GB VPS:
#!/bin/bash
# openclaw-minimal-vps.sh
# Setup for 2GB RAM VPS - EXTERNAL API ONLY
# Create 4GB swap
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# Install Node.js 22
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash -
sudo apt-get install -y nodejs
# Install OpenClaw
npm install -g openclaw
# Configure for minimal resource usage
mkdir -p ~/.openclaw
cat > ~/.openclaw/openclaw.json <<'EOF'
{
"gateway": {
"bind": "127.0.0.1",
"port": 18789,
"mode": "local"
},
"agents": {
"defaults": {
"model": {
"primary": "openrouter/google/gemma-3-4b-it:free",
"fallbacks": [
"openrouter/meta/llama-3.1-8b-instruct:free"
]
},
"maxIterations": 15,
"timeout": 120
}
},
"channels": {
"telegram": {
"enabled": true,
"dmPolicy": "pairing"
}
}
}
EOF
# Set OpenRouter API key
export OPENROUTER_API_KEY="sk-or-v1-..."
# Start gateway
openclaw gateway &
3. Ollama Integration
3.1 Architecture
OpenClaw integrates with Ollama through its native /api/chat endpoint, supporting both streaming responses and tool calling simultaneously:
┌──────────────┐ HTTP/JSON ┌──────────────┐ GGUF/CPU/GPU ┌──────────┐
│ OpenClaw │◄───────────────────►│ Ollama │◄────────────────────►│ Local │
│ Gateway │ /api/chat │ Server │ Model inference │ LLM │
│ │ Port 11434 │ Port 11434 │ │ │
└──────────────┘ └──────────────┘ └──────────┘
3.2 Configuration
Basic Ollama Setup:
# Install Ollama
curl -fsSL https://ollama.com/install.sh | sh
# Start server
ollama serve
# Pull a tool-capable model
ollama pull qwen2.5-coder:7b
ollama pull llama3.1:8b
# Configure OpenClaw
export OLLAMA_API_KEY="ollama-local" # Any non-empty string works
OpenClaw Configuration for Ollama:
{
"models": {
"providers": {
"ollama": {
"baseUrl": "http://localhost:11434",
"apiKey": "ollama-local",
"api": "ollama",
"models": [
{
"id": "qwen2.5-coder:7b",
"name": "Qwen 2.5 Coder 7B",
"contextWindow": 32768,
"maxTokens": 8192,
"cost": { "input": 0, "output": 0 }
},
{
"id": "llama3.1:8b",
"name": "Llama 3.1 8B",
"contextWindow": 128000,
"maxTokens": 8192,
"cost": { "input": 0, "output": 0 }
}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "ollama/qwen2.5-coder:7b",
"fallbacks": ["ollama/llama3.1:8b"]
}
}
}
}
3.3 Context Window Requirements
⚠️ Critical Requirement: OpenClaw requires a minimum 64K token context window for reliable multi-step task execution.
| Model | Parameters | Context Window | Tool Support | OpenClaw Compatible |
|---|---|---|---|---|
| llama3.1 | 8B | 128K | ✅ Yes | ✅ Yes |
| qwen2.5-coder | 7B | 32K | ✅ Yes | ⚠️ Below minimum |
| qwen2.5-coder | 32B | 128K | ✅ Yes | ✅ Yes |
| gpt-oss | 20B | 128K | ✅ Yes | ✅ Yes |
| glm-4.7-flash | - | 128K | ✅ Yes | ✅ Yes |
| deepseek-coder-v2 | 33B | 128K | ✅ Yes | ✅ Yes |
| mistral-small3.1 | - | 128K | ✅ Yes | ✅ Yes |
Context Window Configuration:
For models that don't report context window via Ollama's API:
# Create custom Modelfile with extended context
cat > ~/qwen-custom.modelfile <<EOF
FROM qwen2.5-coder:7b
PARAMETER num_ctx 65536
PARAMETER temperature 0.7
EOF
# Create custom model
ollama create qwen2.5-coder-64k -f ~/qwen-custom.modelfile
3.4 Models for Small VPS (≤8B Parameters)
For resource-constrained environments (2-4GB RAM):
| Model | Quantization | RAM Required | VRAM Required | Performance |
|---|---|---|---|---|
| Llama 3.1 8B | Q4_K_M | ~5GB | ~6GB | Good |
| Llama 3.2 3B | Q4_K_M | ~2.5GB | ~3GB | Basic |
| Qwen 2.5 7B | Q4_K_M | ~5GB | ~6GB | Good |
| Qwen 2.5 3B | Q4_K_M | ~2.5GB | ~3GB | Basic |
| DeepSeek 7B | Q4_K_M | ~5GB | ~6GB | Good |
| Phi-4 4B | Q4_K_M | ~3GB | ~4GB | Moderate |
⚠️ Verdict for 2GB VPS: Running local LLMs is NOT viable. Use external APIs only.
4. OpenRouter Integration (Fallback Strategy)
4.1 Overview
OpenRouter provides a unified API gateway to multiple LLM providers, enabling:
- Single API key access to 200+ models
- Automatic failover between providers
- Free tier models for cost-conscious deployments
- Unified billing and usage tracking
4.2 Configuration
Environment Variable Setup:
export OPENROUTER_API_KEY="sk-or-v1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
OpenClaw Configuration:
{
"models": {
"providers": {
"openrouter": {
"apiKey": "${OPENROUTER_API_KEY}",
"baseUrl": "https://openrouter.ai/api/v1"
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "openrouter/anthropic/claude-sonnet-4-6",
"fallbacks": [
"openrouter/google/gemini-3.1-pro",
"openrouter/meta/llama-3.3-70b-instruct",
"openrouter/google/gemma-3-4b-it:free"
]
}
}
}
}
4.3 Recommended Free/Cheap Models on OpenRouter
For cost-conscious VPS deployments:
| Model | Cost | Context | Best For |
|---|---|---|---|
| google/gemma-3-4b-it:free | Free | 128K | General tasks, simple automation |
| meta/llama-3.1-8b-instruct:free | Free | 128K | General tasks, longer contexts |
| deepseek/deepseek-chat-v3.2 | $0.53/M | 64K | Code generation, reasoning |
| xiaomi/mimo-v2-flash | $0.40/M | 128K | Fast responses, basic tasks |
| qwen/qwen3-coder-next | $1.20/M | 128K | Code-focused tasks |
4.4 Hybrid Configuration (Recommended for Timmy)
A production-ready configuration for the Hermes VPS:
{
"models": {
"providers": {
"openrouter": {
"apiKey": "${OPENROUTER_API_KEY}",
"models": [
{
"id": "google/gemma-3-4b-it:free",
"name": "Gemma 3 4B (Free)",
"contextWindow": 131072,
"maxTokens": 8192,
"cost": { "input": 0, "output": 0 }
},
{
"id": "deepseek/deepseek-chat-v3.2",
"name": "DeepSeek V3.2",
"contextWindow": 64000,
"maxTokens": 8192,
"cost": { "input": 0.00053, "output": 0.00053 }
}
]
},
"ollama": {
"baseUrl": "http://localhost:11434",
"apiKey": "ollama-local",
"models": [
{
"id": "llama3.2:3b",
"name": "Llama 3.2 3B (Local Fallback)",
"contextWindow": 128000,
"maxTokens": 4096,
"cost": { "input": 0, "output": 0 }
}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "openrouter/google/gemma-3-4b-it:free",
"fallbacks": [
"openrouter/deepseek/deepseek-chat-v3.2",
"ollama/llama3.2:3b"
]
},
"maxIterations": 10,
"timeout": 90
}
}
}
5. Hardware Constraints & VPS Viability
5.1 System Requirements Summary
| Component | Minimum | Recommended | Notes |
|---|---|---|---|
| CPU | 2 vCPU | 4 vCPU | Dedicated preferred over shared |
| RAM | 4 GB | 8 GB | 2GB causes OOM with external APIs |
| Storage | 40 GB SSD | 80 GB NVMe | Docker images are ~10-15GB |
| Network | 100 Mbps | 1 Gbps | For API calls and model downloads |
| OS | Ubuntu 22.04/Debian 12 | Ubuntu 24.04 LTS | Linux required for production |
5.2 2GB RAM VPS Analysis
Can it work? Yes, with severe limitations:
✅ What works:
- Text-only agents with external API providers
- Single Telegram/Discord channel
- Basic file operations and shell commands
- No browser automation
❌ What doesn't work:
- Local LLM inference via Ollama
- Browser automation (Chromium needs 2-4GB)
- Multiple concurrent channels
- Python environment-heavy skills
Required mitigations for 2GB VPS:
# 1. Create substantial swap
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# 2. Configure swappiness
echo 'vm.swappiness=60' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
# 3. Limit Node.js memory
export NODE_OPTIONS="--max-old-space-size=1536"
# 4. Use external APIs only - NO OLLAMA
# 5. Disable browser skills
# 6. Set conservative concurrency limits
5.3 4-bit Quantization Viability
Qwen 2.5 7B Q4_K_M on 2GB VPS:
- Model size: ~4.5GB
- RAM required at runtime: ~5-6GB
- Verdict: Will cause immediate OOM on 2GB VPS
- Even with 4GB VPS: Marginal, heavy swap usage, poor performance
Viable models for 4GB VPS with Ollama:
- Llama 3.2 3B Q4_K_M (~2.5GB RAM)
- Qwen 2.5 3B Q4_K_M (~2.5GB RAM)
- Phi-4 4B Q4_K_M (~3GB RAM)
6. Security Configuration
6.1 Network Ports
| Port | Purpose | Exposure |
|---|---|---|
| 18789/tcp | OpenClaw Gateway (WebSocket/HTTP) | NEVER expose to internet |
| 11434/tcp | Ollama API (if running locally) | Localhost only |
| 22/tcp | SSH | Restrict to known IPs |
⚠️ CRITICAL: Never expose port 18789 to the public internet. Use Tailscale or SSH tunnels for remote access.
6.2 Tailscale Integration
Tailscale provides zero-configuration VPN mesh for secure remote access:
# Install Tailscale
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
# Get Tailscale IP
tailscale ip
# Returns: 100.x.y.z
# Configure OpenClaw to bind to Tailscale
cat > ~/.openclaw/openclaw.json <<EOF
{
"gateway": {
"bind": "tailnet",
"port": 18789
},
"tailscale": {
"mode": "on",
"resetOnExit": false
}
}
EOF
Tailscale vs SSH Tunnel:
| Feature | Tailscale | SSH Tunnel |
|---|---|---|
| Setup | Very easy | Moderate |
| Persistence | Automatic | Requires autossh |
| Multiple devices | Built-in | One tunnel per connection |
| NAT traversal | Works | Requires exposed SSH |
| Access control | Tailscale ACL | SSH keys |
6.3 Firewall Configuration (UFW)
# Default deny
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Allow SSH
sudo ufw allow 22/tcp
# Allow Tailscale only (if using)
sudo ufw allow in on tailscale0 to any port 18789
# Block public access to OpenClaw
# (bind is 127.0.0.1, so this is defense in depth)
sudo ufw enable
6.4 Authentication Configuration
{
"gateway": {
"bind": "127.0.0.1",
"port": 18789,
"auth": {
"mode": "token",
"token": "your-64-char-hex-token-here"
},
"controlUi": {
"allowedOrigins": [
"http://localhost:18789",
"https://your-domain.tailnet-name.ts.net"
],
"allowInsecureAuth": false,
"dangerouslyDisableDeviceAuth": false
}
}
}
Generate secure token:
openssl rand -hex 32
6.5 Sandboxing Considerations
OpenClaw executes arbitrary shell commands and file operations by default. For production:
- Run as non-root user:
sudo useradd -r -s /bin/false openclaw
sudo mkdir -p /home/openclaw/.openclaw
sudo chown -R openclaw:openclaw /home/openclaw
- Use Docker for isolation:
docker run --security-opt=no-new-privileges \
--cap-drop=ALL \
--read-only \
--tmpfs /tmp:noexec,nosuid,size=100m \
openclaw/openclaw:latest
- Enable dmPolicy for channels:
{
"channels": {
"telegram": {
"dmPolicy": "pairing" // Require one-time code for new contacts
}
}
}
7. MCP (Model Context Protocol) Tools
7.1 Overview
MCP is an open standard created by Anthropic (donated to Linux Foundation in Dec 2025) that lets AI applications connect to external tools through a universal interface. Think of it as "USB-C for AI."
7.2 MCP vs OpenClaw Skills
| Aspect | MCP | OpenClaw Skills |
|---|---|---|
| Protocol | Standardized (Anthropic) | OpenClaw-specific |
| Isolation | Process-isolated | Runs in agent context |
| Security | Higher (sandboxed) | Lower (full system access) |
| Discovery | Automatic via protocol | Manual via SKILL.md |
| Ecosystem | 10,000+ servers | 5400+ skills |
Note: OpenClaw currently has limited native MCP support. Use mcporter tool for MCP integration.
7.3 Using MCPorter (MCP Bridge)
# Install mcporter
clawhub install mcporter
# Configure MCP server
mcporter config add github \
--url "https://api.github.com/mcp" \
--token "ghp_..."
# List available tools
mcporter list
# Call MCP tool
mcporter call github.list_repos --owner "rockachopa"
7.4 Popular MCP Servers
| Server | Purpose | Integration |
|---|---|---|
| GitHub | Repo management, PRs, issues | mcp-github |
| Slack | Messaging, channel management | mcp-slack |
| PostgreSQL | Database queries | mcp-postgres |
| Filesystem | File operations (sandboxed) | mcp-filesystem |
| Brave Search | Web search | mcp-brave |
8. Recommendations for Timmy Time Dashboard
8.1 Deployment Strategy for Hermes VPS (2GB RAM)
Given the hardware constraints, here's the recommended approach:
Option A: External API Only (Recommended)
┌─────────────────────────────────────────┐
│ Hermes VPS (2GB RAM) │
│ ┌─────────────────────────────────┐ │
│ │ OpenClaw Gateway │ │
│ │ (npm global install) │ │
│ └─────────────┬───────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────┐ │
│ │ OpenRouter API (Free Tier) │ │
│ │ google/gemma-3-4b-it:free │ │
│ └─────────────────────────────────┘ │
│ │
│ NO OLLAMA - insufficient RAM │
└─────────────────────────────────────────┘
Option B: Hybrid with External Ollama
┌──────────────────────┐ ┌──────────────────────────┐
│ Hermes VPS (2GB) │ │ Separate Ollama Host │
│ ┌────────────────┐ │ │ ┌────────────────────┐ │
│ │ OpenClaw │ │◄────►│ │ Ollama Server │ │
│ │ (external API) │ │ │ │ (8GB+ RAM required)│ │
│ └────────────────┘ │ │ └────────────────────┘ │
└──────────────────────┘ └──────────────────────────┘
8.2 Configuration Summary
{
"gateway": {
"bind": "127.0.0.1",
"port": 18789,
"auth": {
"mode": "token",
"token": "GENERATE_WITH_OPENSSL_RAND"
}
},
"models": {
"providers": {
"openrouter": {
"apiKey": "${OPENROUTER_API_KEY}",
"models": [
{
"id": "google/gemma-3-4b-it:free",
"contextWindow": 131072,
"maxTokens": 4096
}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "openrouter/google/gemma-3-4b-it:free"
},
"maxIterations": 10,
"timeout": 90,
"maxConcurrent": 2
}
},
"channels": {
"telegram": {
"enabled": true,
"dmPolicy": "pairing"
}
}
}
8.3 Migration Path (Future)
When upgrading to a larger VPS (4-8GB RAM):
- Phase 1: Enable Ollama with Llama 3.2 3B as fallback
- Phase 2: Add browser automation skills (requires 4GB+ RAM)
- Phase 3: Enable multi-agent routing with specialized agents
- Phase 4: Add MCP server integration for external tools
9. References
- OpenClaw Official Documentation: https://docs.openclaw.ai
- Ollama Integration Guide: https://docs.ollama.com/integrations/openclaw
- OpenRouter Documentation: https://openrouter.ai/docs
- MCP Specification: https://modelcontextprotocol.io
- OpenClaw Community Discord: https://discord.gg/openclaw
- GitHub Repository: https://github.com/openclaw/openclaw
10. Appendix: Quick Command Reference
# Installation
curl -fsSL https://openclaw.ai/install.sh | bash
# Configuration
openclaw onboard # Interactive setup
openclaw configure # Edit config
openclaw config set <key> <value> # Set specific value
# Gateway management
openclaw gateway # Start gateway
openclaw gateway --verbose # Start with logs
openclaw gateway status # Check status
openclaw gateway restart # Restart gateway
openclaw gateway stop # Stop gateway
# Model management
openclaw models list # List available models
openclaw models set <model> # Set default model
openclaw models status # Check model status
# Diagnostics
openclaw doctor # System health check
openclaw doctor --repair # Auto-fix issues
openclaw security audit # Security check
# Dashboard
openclaw dashboard # Open web UI
End of Research Report