🖥️ OpenClaw 本地大模型部署完全指南

Ollama / vLLM / llama.cpp 三大方案,打造数据零出站的私有AI Agent

导读:不想把数据发到云端?想用免费的开源模型跑Agent?本教程手把手教你在OpenClaw中接入本地大模型,从Ollama一键部署到vLLM高性能推理,总有一款适合你。

🎯 为什么选择本地部署?

🔒 数据隐私

所有数据留在本地,不经过任何第三方服务器,满足企业合规和GDPR要求。

💰 零成本运行

开源模型免费使用,无需API费用。长期运行成本仅为电费。

⚡ 低延迟

本地推理无需网络往返,响应速度更快,适合实时交互场景。

🎛️ 完全可控

自定义模型参数、微调LoRA、控制推理行为,一切尽在掌握。

📋 方案对比一览

特性OllamavLLMllama.cpp
安装难度⭐ 极简⭐⭐⭐ 中等⭐⭐ 较简
GPU要求可选必须可选
并发性能一般极强中等
模型格式GGUFHF原版GGUF
API兼容OpenAI兼容OpenAI兼容OpenAI兼容
适合场景个人/测试生产环境边缘设备

🚀 方案一:Ollama(推荐新手)

Ollama是目前最简单的本地大模型运行方案,一行命令即可启动。

1. 安装Ollama

# Linux / macOS
curl -fsSL https://ollama.com/install.sh | sh

# macOS (Homebrew)
brew install ollama

# Windows
# 从 https://ollama.com/download 下载安装包

2. 下载并运行模型

# 下载 Llama 3 8B(推荐入门)
ollama pull llama3:8b

# 下载 Qwen2 7B(中文优秀)
ollama pull qwen2:7b

# 下载 DeepSeek Coder V2(代码专用)
ollama pull deepseek-coder-v2:16b

# 运行模型
ollama run llama3:8b

3. 配置OpenClaw连接Ollama

# ~/.openclaw/config.yaml
providers:
  ollama:
    type: openai
    baseURL: http://localhost:11434/v1
    apiKey: "ollama"  # Ollama不需要真实key
    models:
      - llama3:8b
      - qwen2:7b
      - deepseek-coder-v2:16b

agents:
  default:
    model: ollama/llama3:8b
💡 性能提示:如果有多块GPU,可以通过 OLLAMA_GPU_DEVICES=0,1 ollama serve 指定使用的GPU。Ollama也支持纯CPU运行,只是速度较慢。

4. 验证连接

# 测试API是否正常
curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama3:8b",
    "messages": [{"role": "user", "content": "你好"}]
  }'

# 在OpenClaw中测试
openclaw chat --model ollama/llama3:8b "Hello!"

⚡ 方案二:vLLM(推荐生产环境)

vLLM是高性能推理引擎,支持PagedAttention技术,吞吐量是普通方案的数倍。

1. 安装vLLM

# 推荐使用Docker(省去CUDA依赖问题)
docker pull vllm/vllm-openai:latest

# 或pip安装
pip install vllm

2. 启动推理服务

# Docker方式启动(推荐)
docker run -d --gpus all \
  -p 8000:8000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  --name vllm \
  vllm/vllm-openai:latest \
  --model Qwen/Qwen2-7B-Instruct \
  --served-model-name qwen2-7b \
  --max-model-len 8192 \
  --gpu-memory-utilization 0.85

# 直接运行
python -m vllm.entrypoints.openai.api_server \
  --model Qwen/Qwen2-7B-Instruct \
  --served-model-name qwen2-7b \
  --port 8000

3. 配置OpenClaw连接vLLM

# ~/.openclaw/config.yaml
providers:
  vllm:
    type: openai
    baseURL: http://localhost:8000/v1
    apiKey: "vllm"
    models:
      - qwen2-7b

agents:
  default:
    model: vllm/qwen2-7b
⚠️ 注意:vLLM的GPU内存需求较大。7B模型至少需要16GB显存(RTX 4090/A100),13B模型需要24GB+。可以通过 --quantization awq 启用量化降低显存需求。

🔧 方案三:llama.cpp(推荐边缘设备)

llama.cpp是纯C/C++实现的推理引擎,资源占用最低,甚至可以在树莓派上运行。

1. 编译安装

# 克隆仓库
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp

# 编译(启用CUDA加速)
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release -j$(nproc)

# 或使用Metal加速(macOS)
cmake -B build -DGGML_METAL=ON
cmake --build build --config Release

2. 下载GGUF模型

# 从Hugging Face下载量化模型
# 推荐来源:TheBloke, bartowski, unsloth
wget https://huggingface.co/bartowski/Qwen2-7B-Instruct-GGUF/resolve/main/Qwen2-7B-Instruct-Q4_K_M.gguf

# 启动OpenAI兼容服务
./build/bin/llama-server \
  -m Qwen2-7B-Instruct-Q4_K_M.gguf \
  --host 0.0.0.0 \
  --port 8080 \
  -ngl 99 \
  -c 4096

3. 配置OpenClaw

# ~/.openclaw/config.yaml
providers:
  llamacpp:
    type: openai
    baseURL: http://localhost:8080/v1
    apiKey: "llamacpp"
    models:
      - qwen2-7b-gguf

agents:
  default:
    model: llamacpp/qwen2-7b-gguf

🤖 推荐开源模型清单

模型参数量擅长领域最低显存
Llama 3.1 8B8B通用对话、英文6GB
Qwen2 7B7B中文、多语言6GB
DeepSeek Coder V216B (MoE)代码生成12GB
Mistral 7B7B推理、指令遵循6GB
Yi 1.5 34B34B复杂推理、中文24GB
Phi-3 Mini3.8B轻量级、边缘设备4GB
Gemma 2 9B9B多语言、安全8GB

🏗️ OpenClaw Agent配置示例

完整配置文件

# ~/.openclaw/config.yaml - 完整示例
name: my-local-agent
default_model: ollama/qwen2:7b

providers:
  ollama:
    type: openai
    baseURL: http://localhost:11434/v1
    apiKey: "ollama"
    models:
      - qwen2:7b
      - llama3:8b

agents:
  default:
    model: ollama/qwen2:7b
    systemPrompt: |
      你是一个专业的AI助手,擅长中文对话和技术问题解答。
      使用简洁专业的语言回答问题。
    temperature: 0.7
    maxTokens: 4096

  coder:
    model: ollama/deepseek-coder-v2:16b
    systemPrompt: |
      你是一个专业的编程助手。
      优先使用Python和TypeScript。
      代码要简洁、有注释、符合最佳实践。

channels:
  telegram:
    enabled: true
    token: "your-bot-token"
  discord:
    enabled: true
    token: "your-bot-token"

多模型路由策略

# 简单问题用小模型,复杂问题用大模型
routing:
  strategy: complexity-based
  rules:
    - match: "代码|编程|debug"
      model: ollama/deepseek-coder-v2:16b
    - match: "翻译|写文章"
      model: ollama/qwen2:7b
    - default:
      model: ollama/llama3:8b

📊 性能优化技巧

1. 量化策略选择

2. 上下文窗口优化

# Ollama设置上下文长度
OLLAMA_NUM_CTX=4096 ollama serve

# vLLM设置最大序列长度
--max-model-len 8192

# llama.cpp设置上下文
-c 4096  # 4K上下文
-c 8192  # 8K上下文(需要更多内存)

3. 批处理与并发

# vLLM并发设置(生产环境推荐)
--tensor-parallel-size 2        # 多GPU并行
--max-num-seqs 64               # 最大并发请求数
--max-num-batched-tokens 8192   # 批处理token上限
💰 成本对比:以Llama 3 8B为例,本地运行RTX 4090的推理速度约30-50 tokens/s,等效于GPT-4 API约$0.03/1K tokens的成本。如果每天使用100K tokens,一个月可节省约$90的API费用。

🔒 安全最佳实践

🆘 常见问题

Q: Ollama连接被拒绝?
A: 检查Ollama是否正在运行(ollama list),确认端口11434未被占用。Linux可能需要sudo systemctl start ollama
Q: 推理速度很慢?
A: 确认GPU是否被正确识别(nvidia-smi)。Ollama可通过OLLAMA_GPU_DEVICES=0指定GPU。考虑使用更小的量化版本。
Q: 内存不足(OOM)?
A: 使用更小的量化版本(Q4_K_M),减小上下文长度(-c 2048),或使用--mlock控制内存映射。