如果你已经厌倦了将每个编程提示词都发送到云端 API,那 OpenCode + Ollama 就是你想要的组合。它确实可行,但也比演示里看起来更慢、更不稳定。

合理的预期其实很简单:本地 OpenCode 非常适合小型、私密、重复性的工作。除非你乐意全程盯着它,否则别指望它搞定一次复杂的多文件迁移。

安装 Ollama

在 macOS 上:

brew install --cask ollama-app
open -a Ollama

在 Linux 上:

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

然后拉取一个模型:

ollama pull gemma4

确认模型可用:

ollama list

请在 OpenCode 配置中使用该输出中显示的准确模型名称。

配置 OpenCode

OpenCode 可以与兼容 OpenAI 的提供商通信。Ollama 会在以下地址提供一个兼容端点:

http://localhost:11434/v1

在 OpenCode 配置中添加 Ollama 提供商:

{
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "baseURL": "http://localhost:11434/v1"
      },
      "models": {
        "gemma4:latest": {}
      }
    }
  }
}

如果 OpenCode 要求鉴权,用占位密钥即可:

{
  "ollama": {
    "type": "api",
    "key": "ollama"
  }
}

重启 OpenCode,然后从模型选择器切换到 Ollama 模型。

首选模型

Gemma 4

不错的入门选择。它擅长解释代码、做简单修改和小规模编码任务。相比更大的编程模型,对硬件要求更低。

Qwen3.5

如果你能运行更大的版本,它在代码方面的表现通常更好。27B 级别模型比小模型实用得多,但也需要足够的内存。

Llama 3.3

如果硬件条件允许,这是不错的通用模型。在配置较低的小笔记本上会有些吃力。

性能预期

最近关于本地模型的讨论终于把大家心照不宣的事挑明了:提示词能跑通,代码质量也可能不错,但一旦工具调用逐渐增多,整体体验还是可能变得很慢。

这是正常的。编程智能体不是一次性的聊天请求。它会读取文件、规划、编辑、检查输出,并不断循环。本地推理让每一轮循环的延迟都更明显。

想让体验不那么难熬:

  • 保持上下文精简
  • 简单编辑使用较小的模型
  • 让模型保持常驻
  • 关闭占用内存大的应用
  • 长时间重构时用云端模型兜底

让 Ollama 保持常驻

export OLLAMA_KEEP_ALIVE="-1"

设置后重启 Ollama。这样可以避免编码会话中反复冷启动。

何时使用云端兜底

本地 OpenCode 适合:

  • 阅读不熟悉的代码
  • 草拟小幅修改
  • 生成测试
  • 解释报错
  • 处理私密文件

云端模型适合:

  • 多文件重构
  • 复杂调试
  • 架构变更
  • 任何你不想逐行检查的工作

最佳方案不是只用本地,而是本地优先。

相关设置

如果你的目标就是 Gemma 4,请阅读 Gemma 4 Ollama 配置。如果你使用的是 OpenClaw 而不是 OpenCode,请参考 Gemma 4 搭配 OpenClaw

用 HAIMAKER 添加云端兜底