Ollama / LMStudio 接入 Clawdbot 实战指南与常见问题排查

Ollama / LMStudio 接入 Clawdbot 实战指南与常见问题排查

为什么选择本地模型

成本对比

云端 API 计费(以 Claude Opus-4.5 为例):

输入: $3 / 百万 token
输出: $15 / 百万 token

月度开销预估(中度使用):
- 每天 50 轮对话
- 平均每轮 1000 输入 + 200 输出 token
- 月度消耗: 50 × 30 × (1000×0.000003 + 200×0.000015) = $9

重度使用可能突破 $100/月

本地模型成本:

硬件投入: RTX 4090 (~$1599) 或租用云 GPU
电费: ~$0.5/天 (24小时运行)
月度成本: $15 (纯电费)

3个月回本

隐私优势

本地模型不会将对话上传到云端,适合处理:

  • 公司内部文档
  • 个人医疗记录
  • 金融数据

Ollama 接入步骤

1. 安装 Ollama

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

# 验证安装
ollama --version

2. 下载模型

# 下载 DeepSeek-R1 7B (推荐用于测试)
ollama pull deepseek-r1:7b

# 下载 Qwen 2.5 72B (需要 48GB+ 显存)
ollama pull qwen2.5:72b

# 列出已下载模型
ollama list

输出示例:

NAME                    ID              SIZE    MODIFIED
deepseek-r1:7b          a1b2c3d4e5f6   4.1GB   2 days ago
qwen2.5:72b             f6e5d4c3b2a1   42GB    5 days ago

3. 启动 Ollama 服务

# 默认监听 localhost:11434
ollama serve

# 测试 API
curl http://localhost:11434/api/tags

响应:

{
  "models": [
    {
      "name": "deepseek-r1:7b",
      "modified_at": "2026-01-25T10:30:00Z",
      "size": 4372511744
    }
  ]
}

4. 配置 Clawdbot

编辑 ~/.clawdbot/config.json

{
  "agent": {
    "model": "ollama/deepseek-r1:7b",
    "modelConfig": {
      "temperature": 0.7,
      "maxTokens": 2000
    }
  },
  "providers": {
    "ollama": {
      "apiBase": "http://localhost:11434",
      "apiKey": "not-required"  // Ollama 不需要 key,但配置项必须存在
    }
  }
}

关键点

  • 模型名称格式:ollama/<model-name>:<tag>
  • apiKey 可以填任意值(Ollama 不验证)

5. 验证连接

clawdbot agent --message "1+1等于几?"

预期输出:

[ollama/deepseek-r1:7b] 1+1等于2。

常见问题排查

问题1:模型名称不匹配

错误信息

Error: model 'deepseek-r1' not found

原因:Clawdbot 请求的名称与 Ollama 中的名称不一致。

排查步骤

# 1. 列出 Ollama 模型
ollama list

# 2. 确认完整名称(包括 tag)
# 例如:deepseek-r1:7b (不是 deepseek-r1)

# 3. 修改配置使用完整名称
"model": "ollama/deepseek-r1:7b"

问题2:端口冲突

错误信息

Error: connect ECONNREFUSED 127.0.0.1:11434

原因:Ollama 服务未启动,或监听了其他端口。

排查

# 检查进程
ps aux | grep ollama

# 检查端口占用
lsof -i :11434

# 如果端口被占用,修改 Ollama 启动命令
OLLAMA_HOST=0.0.0.0:11435 ollama serve

# 相应修改 Clawdbot 配置
"apiBase": "http://localhost:11435"

问题3:响应超时

错误信息

Error: Request timeout after 30000ms

原因:本地模型推理速度慢(尤其是 CPU 运行)。

解决方案

增加超时时间:

{
  "providers": {
    "ollama": {
      "apiBase": "http://localhost:11434",
      "timeout": 120000  // 120 秒
    }
  }
}

优化模型性能:

# 使用量化版本(更快但精度略降)
ollama pull deepseek-r1:7b-q4_0

# 限制并发请求(避免 OOM)
export OLLAMA_MAX_LOADED_MODELS=1
ollama serve

问题4:上下文长度超限

错误信息

Error: context length exceeded (max 4096)

原因:本地模型的上下文窗口小于云端模型。

当前窗口大小

| 模型 | 上下文长度 | |-----|----------| | Claude Opus-4.5 | 200k tokens | | GPT-4 Turbo | 128k tokens | | DeepSeek-R1 7B | 4k-8k tokens | | Qwen 2.5 72B | 32k tokens |

解决方案

定期清理会话历史:

# 每 50 轮对话自动清理
clawdbot session clear whatsapp +1234567890

或修改 Agent 配置:

{
  "agent": {
    "maxContextTokens": 4000,  // 强制限制上下文
    "contextStrategy": "sliding-window"  // 只保留最近的消息
  }
}

LMStudio 接入步骤

1. 安装与配置

  1. 下载 LMStudio: https://lmstudio.ai/
  2. 在 LMStudio 界面下载模型(推荐 DeepSeek-R1 7B GGUF)
  3. 切换到"Local Server"标签
  4. 点击"Start Server"(默认监听 localhost:1234

2. 启用流式输出

关键设置(容易被忽略):

LMStudio → Preferences → Server Settings
  ✓ Enable streaming responses
  ✓ Log requests and responses

不启用会导致 Clawdbot 卡死等待响应。

3. 配置 Clawdbot

{
  "agent": {
    "model": "lmstudio/deepseek-r1-7b"
  },
  "providers": {
    "lmstudio": {
      "apiBase": "http://localhost:1234",
      "apiKey": "lm-studio"
    }
  }
}

4. 兼容性问题

LMStudio 模拟 OpenAI API,但并非完全兼容。

已知问题

  • model 参数:LMStudio 忽略此参数,总是使用当前加载的模型
  • function_calling:不支持
  • logprobs:不支持

变通方案

使用 OpenAI provider 伪装:

{
  "agent": {
    "model": "openai/gpt-3.5-turbo"  // 伪装成 OpenAI
  },
  "providers": {
    "openai": {
      "apiBase": "http://localhost:1234/v1",  // 实际指向 LMStudio
      "apiKey": "not-required"
    }
  }
}

Clawdbot 以为在调用 OpenAI,实际请求被转发到 LMStudio。

使用 litellm 作为中间层

litellm 是一个"统一网关",可以将任何本地模型包装成 OpenAI API 格式。

安装

pip install litellm[proxy]

启动代理

litellm --model ollama/deepseek-r1:7b \
        --port 8000 \
        --drop_params

--drop_params 会过滤掉 Ollama 不支持的参数(如 logprobs)。

配置 Clawdbot

{
  "agent": {
    "model": "openai/gpt-3.5-turbo"
  },
  "providers": {
    "openai": {
      "apiBase": "http://localhost:8000",
      "apiKey": "sk-anything"
    }
  }
}

优势

  • 自动处理格式转换
  • 统一错误处理
  • 支持多模型负载均衡
# 配置多个模型,自动轮换
litellm --config models.yaml --port 8000

models.yaml

model_list:
  - model_name: gpt-3.5-turbo
    litellm_params:
      model: ollama/deepseek-r1:7b
  - model_name: gpt-3.5-turbo
    litellm_params:
      model: ollama/qwen2.5:14b

Clawdbot 请求"gpt-3.5-turbo"时,litellm 自动分配到可用的本地模型。

性能优化

GPU 利用率监控

# NVIDIA GPU
watch -n 1 nvidia-smi

# AMD GPU
watch -n 1 rocm-smi

关注指标:

  • GPU 利用率应接近 100%
  • 显存占用不应超过总量的 95%(否则会 OOM)

批处理请求

如果需要处理多个独立请求,使用批处理API(如果模型支持):

curl http://localhost:11434/api/generate -d '{
  "model": "deepseek-r1:7b",
  "prompt": ["问题1", "问题2", "问题3"],
  "stream": false
}'

量化选择

GGUF 量化级别对比:

| 量化 | 大小 | 速度 | 质量 | |------|------|------|------| | Q2_K | 2.6GB | 极快 | 显著下降 | | Q4_0 | 3.8GB | 快 | 轻微下降 | | Q5_K_M | 4.7GB | 中 | 接近原始 | | Q8_0 | 7.2GB | 慢 | 几乎无损 |

推荐:日常使用 Q4_0,重要任务使用 Q5_K_M。

生产环境建议

避免使用本地模型的场景

  1. 延迟敏感任务:本地推理 2-5 秒,云端 API 200-500ms
  2. 多模态需求:本地模型对图像/视频支持较差
  3. 复杂推理:本地 7B 模型能力不及 Claude/GPT-4

适合本地模型的场景

  1. 数据隐私要求:医疗、法律、金融领域
  2. 高频低复杂度:文本分类、摘要、简单问答
  3. 离线环境:无网络或网络受限

混合方案

{
  "agent": {
    "model": "ollama/deepseek-r1:7b",
    "modelFallbacks": [
      "anthropic/claude-haiku-4.5",  // 本地模型失败时切换到云端
      "openai/gpt-4-turbo"
    ]
  }
}

或根据任务类型路由:

function selectModel(task: string): string {
  if (task.includes('隐私') || task.includes('内部')) {
    return 'ollama/deepseek-r1:7b';  // 本地模型
  } else {
    return 'anthropic/claude-opus-4.5';  // 云端模型
  }
}

总结

本地模型接入 Clawdbot 的核心步骤:

  1. 安装 Ollama/LMStudio 并下载模型
  2. 确认服务监听端口(Ollama: 11434, LMStudio: 1234)
  3. 配置 Clawdbot 使用正确的模型名称和端口
  4. 处理常见问题(超时、上下文长度、流式输出)
  5. 可选:使用 litellm 作为兼容层

当前技术成熟度:可用但需要调试,不建议非技术用户直接上生产

预计 3-6 个月后,官方"统一本地模型 provider"发布,体验会大幅改善。


参考资源

  • Ollama 官网: https://ollama.com
  • LMStudio: https://lmstudio.ai
  • litellm: https://github.com/BerriAI/litellm
  • 模型下载: https://huggingface.co/models
← 返回博客列表