用 Ollama 当 AI 编程 agent

启动 Ollama,拉取一个支持工具调用的模型,运行 oharness -m ollama/<model>。ollama 厂商已内置,地址是 localhost:11434,不需要 key;你拉取过的每个模型 OHarness 都会自动发现。

三条命令

npm install -g oharness
ollama pull qwen3-coder:30b
oharness -m ollama/qwen3-coder:30b

先把上下文窗口调大

这是大多数人会踩的坑。除非另行指定,Ollama 提供的上下文远短于大多数模型实际支持的长度,而 agent 很快就会用文件内容和工具结果把它填满。服务器不报告窗口大小时,OHarness 按 128K 处理,于是服务器会在 harness 压缩之前就截断上下文。启动 Ollama 时给一个真实的窗口:

OLLAMA_CONTEXT_LENGTH=32768 ollama serve

选哪个模型

选支持工具调用的模型,真正做 agent 工作要 20–30B 参数或更大——可以是专为编程调过的模型,比如 Qwen3-Coder,也可以是通用模型,比如 gpt-oss。更小的模型回答问题还行,但多步修改时容易跟丢。你拉取的所有模型都会出现在 /models 里。

值得知道

  • Ollama 跑在另一台机器上:在 ~/.oharness/config.json 里覆盖该厂商的 baseUrl(格式见下)。
  • 本地模型和托管模型可以在同一个会话里用:先用 Ollama 读代码,遇到难的步骤再 /model 切到托管模型。
  • 完全离线运行列出了剩下的少量网络流量,以及怎么关掉它们。

常见问题

Ollama 能配合 Claude Code 这样的编程 agent 使用吗?

能。OHarness 内置了 Ollama 厂商:启动 Ollama,拉取一个支持工具调用的模型,运行 oharness -m ollama/<model>。不需要 key,也不需要配置文件。

为什么我的 Ollama 编程 agent 会忘掉之前做过的事?

Ollama 默认的上下文窗口比模型本身支持的小得多。把 OLLAMA_CONTEXT_LENGTH(或 num_ctx)设为 32K 或更多,这样决定哪些内容被总结的是 agent 的压缩,而不是服务器的截断。

哪些 Ollama 模型支持工具调用?

Ollama 在模型库里用 tools 标签标出支持工具的模型。Qwen3-Coder 和 gpt-oss 是编程 agent 常用的选择。

Ollama 参考

厂商 idollama
Base URLhttp://localhost:11434/v1
协议OpenAI 兼容的 chat completions
API key无——这是本地端点。
模型发现支持——模型列表是向端点询问得来的,不是打包在发行版里的。

接入方法

什么都不用配置,也不需要申请 key。在常用端口上启动服务器,这个厂商就会出现在模型选择器里;harness 会向它要模型列表,而不是自带一份。

指向别的地址

区域主机、网关,或者你自己的服务器。~/.oharness/config.json 里的覆盖是字段级的,所以改端点不用把这个厂商的其他配置重写一遍——下面是完整的配置块,填的是默认值,方便看清结构:

{
  "providers": {
    "ollama": {
      "baseUrl": "http://localhost:11434/v1"
    }
  }
}

无论选哪家都一样

不管底层是哪家厂商,都是同一个 agent 循环、同一套工具、同一批 MCP 服务器、同一套权限规则——会话中途在它们之间切换,什么都不用转换,因为历史记录从来不以某个厂商的格式存储。什么是 agent harness 讲了为什么这才是难点,厂商参考文档讲了目录本身。

全部 34 家厂商 · 安装 OHarness