OpenCode 安装和使用

阅读 17
标签: AI

OpenCode 是一个基于命令行(CLI)的 AI 编程 Agent,能够理解项目上下文,并自动执行开发任务。它并不是一个简单的代码生成器,而是一个具备理解 + 执行能力的智能体工具。OpenCode 运行在终端中,而不是 IDE。

安装OpenCode

这里,使用npm安装。安装命令:

npm install -g opencode-ai

安装非常耗时,我这里花费了大约半小时才完成。

然后,在终端中输入:

opencode --version

如果能正常显示版本号,就表示安装成功了。

在终端中使用

打开终端,输入:

opencode

即可启动它:

在终端中就可以使用它了。

在web中使用

除了终端外,它还提供了一个web服务器,可以在浏览器中进行使用:

opencode web

然后,会自动打开一个web页面:

它默认会提供一些免费的大模型来供用户试用。但是,我的目的是连接Ollama上运行的本地大模型。

选择大模型:qwen2.5-coder-3b

我的显卡为GTX1060,显存只有6G,我需要一个不那么占用显存大小的模型,这样,模型本身 + KV Cache 能全部放入到显存中跑,所以,我选择:

模型:
qwen2.5-coder:3b

量化:
Q4_K_M

Context:
32768

目标:
100% GPU

先下载模型。

由于ollama直接下载非常慢。所以,还是用老办法。

1. 在modelscope网站下载qwen2.5-coder-3b-instruct-q4_k_m.gguf。放入到某个文件夹中(比如:D:\models\qwen\目录下)。

2.创建一个名为 Modelfile 的文本文件(没有扩展名),内容只有一行:

FROM ./qwen2.5-coder-3b-instruct-q4_k_m.gguf

3. 在该文件夹中打开一个终端(PowerShell 或 CMD),并执行以下命令来创建模型并起个名字:

ollama create qwen2.5-coder-f ./Modelfile

4. 创建完成后,运行即可:

ollama run qwen2.5-coder

测试实际速度

最后,实际测试下速度看看:

ollama run qwen2.5-coder--verbose

启动后,输入”写一个Java快速排序“,最终,测速结果如下:

其中,主要看如下两个指标:

  • eval rate: 生成回答的速度。
  • prompt eval rate: 读取输入上下文的速度。

和Ollama本地模型互通

我的Ollama运行在局域网的另一台win10电脑上,而opencode安装在我的iMac这台主力电脑上。

win10电脑的ip为:192.168.3.16,试试看能不能访问:

curl 192.168.3.16:11434/api/tags

显示超时,再试试ping: 

 ping 192.168.3.16

居然不通。原因是防火墙,将其ICMP开启就好了。

防火墙的规则开启后,能ping通,但是curl还是不通,因为默认没有开启外部访问,在Ollama设置中:

Expose Ollama to the network打开就好了。

接下来,就是让opencode识别ollama中的大模型。

配置Ollama作为模型提供方

OpenCode的配置文件有两个位置:

  • 项目级:项目根目录下的opencode.jsonc
  • 全局级:~/.config/opencode/opencode.jsonc

我使用全局级设置,这样,以后每个项目都可以使用这个配置。

然后,编辑~/.config/opencode/opencode.jsonc文件,输入:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Ollama",
      "options": {
        "baseURL": "http://192.168.3.16:11434/v1"
      },
      "models": {
        "qwen2.5-coder": {
          "name": "qwen2.5",
          "type": "llm",
          "capabilities": ["text-generation"],
          "default": true
        }
      }
    }
  }
}

注意:qwen2.5-coder 是ollama ls中显示的名称,name中设置的qwen2.5表示在opencode中显示的模型名称。

完成后,重启opencode,在设置,提供商中就出现了 ollama,

模型中,也会出现我们配置的qwen 2.5。

第一个项目:写一个贪吃蛇网页游戏

OK,接下来,就是让这个AI模型干活了。我们第一个项目,就是让它做一个简单的游戏。

先初始化项目:

/init

但是,回复:

{
  "function": "write",
  "arguments": {
    "content": "To automatically write files, use the \"write\" function and provide the file content and path as arguments. For example, `write {\"content\": \"Hello, World!\", \"filePath\": \"/path/to/file.txt\"}`.",
    "filePath": "/Volumes/CODE/3AI_Project/snake/AGENTS.md"
  }
}

为啥?

我猜测可能是这个大模型太老了(几年前发布的),导致和新的OpenCode的工具调用不兼容。虽然,它可以用于终端补全(FIM / Auto-complete)或轻量级对话,但不适合驱动 Agent 场景。

我不死心,又尝试了qwen3.5:2b,发现能正确创建文件,但是,跑起来却报错了:

snake2.html:124 Uncaught ReferenceError: gameLoop is not defined    at startGame (snake2.html:124:13)
    at HTMLButtonElement.onclick (snake2.html:78:43)

把报错信息给它,但是一直无法修复:

毕竟只有2b参数,能力有限。没法,我的显卡只有6G显存,没法跑更大的模型了。于是,切换到免费的MiMo V2.5,一次运行成功。

这种简单的小任务,对于这种体量的大模型来说,简直就是砍瓜切菜。

毕竟,MiMo V2.5总参数量高达 1.02 Trillion(1.02 万亿),比我本地的qwen 2.5-3B的参数大了340倍!另外,qwen 2.5-3B最大的上下文才32K,而 Ollama 的 OpenCode 集成文档明确建议使用 64K+ context。

小结

相比之前的AI辅助编程(代码补全,代码解释)等,OpenCode这种Agentic Coding算是一种全新的开发方式!

最后编辑于: 2026-09-02

评论(0条)

(必填)
复制成功