用 Ollama 当 AI 编程 agent
启动 Ollama,拉取一个支持工具调用的模型,运行 oharness -m ollama/<model>。ollama 厂商已内置,地址是 localhost:11434,不需要 key;你拉取过的每个模型 OHarness 都会自动发现。
三条命令
npm install -g oharnessollama pull qwen3-coder:30boharness -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 参考
| 厂商 id | ollama |
| Base URL | http://localhost:11434/v1 |
| 协议 | OpenAI 兼容的 chat completions |
| API key | 无——这是本地端点。 |
| 模型发现 | 支持——模型列表是向端点询问得来的,不是打包在发行版里的。 |
接入方法
什么都不用配置,也不需要申请 key。在常用端口上启动服务器,这个厂商就会出现在模型选择器里;harness 会向它要模型列表,而不是自带一份。
指向别的地址
区域主机、网关,或者你自己的服务器。~/.oharness/config.json 里的覆盖是字段级的,所以改端点不用把这个厂商的其他配置重写一遍——下面是完整的配置块,填的是默认值,方便看清结构:
{
"providers": {
"ollama": {
"baseUrl": "http://localhost:11434/v1"
}
}
}无论选哪家都一样
不管底层是哪家厂商,都是同一个 agent 循环、同一套工具、同一批 MCP 服务器、同一套权限规则——会话中途在它们之间切换,什么都不用转换,因为历史记录从来不以某个厂商的格式存储。什么是 agent harness 讲了为什么这才是难点,厂商参考文档讲了目录本身。