OpenClawSkills
GitHub
模型提供商 • 5 分钟阅读

Ollama

在 OpenClaw 中使用 Ollama(本地 LLM 运行时)

Ollama 是一个本地 LLM 运行时,可以让你在自己的机器上更方便地运行开源模型。OpenClaw 集成了 Ollama 的 OpenAI 兼容 API;当你通过 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'OLLAMA_API_KEY'</code>'(或某个 auth profile)选择启用,并且 '<strong>'不'</strong>' 显式配置 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'models.providers.ollama'</code>' 时,OpenClaw 可以 '<strong>'自动发现支持 tools 的模型'</strong>'。

Tutorial.step

快速开始

1. 安装 Ollama:https://ollama.ai

2. 拉取一个模型:

Bash
ollama pull llama3.3

ollama pull qwen2.5-coder:32b

ollama pull deepseek-r1:32b

3. 为 OpenClaw 启用 Ollama(任意值都可以;Ollama 不需要真实 key):

Bash
export OLLAMA_API_KEY="ollama-local"


openclaw config set models.providers.ollama.apiKey "ollama-local"

4. 使用 Ollama 模型:

Json5
{
  agents: {
    defaults: {
      model: { primary: "ollama/llama3.3" },
    },
  },
}
Tutorial.step

模型发现(隐式 provider)

当你设置了 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'OLLAMA_API_KEY'</code>'(或某个 auth profile),并且 '<strong>'没有'</strong>' 定义 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'models.providers.ollama'</code>' 时,OpenClaw 会从本机的 Ollama 实例 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'http://127.0.0.1:11434'</code>' 自动发现模型:

- - 查询 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'/api/tags'</code>' 与 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'/api/show'</code>'

- - 仅保留报告具备 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'tools'</code>' 能力的模型

- - 当模型报告 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'thinking'</code>' 时标记为 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'thinking'</code>'

- - Read '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'contextWindow'</code>' from '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'model_info[&quot;&lt;arch&gt;.context_length&quot;]'</code>' when possible

- - 将 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'maxTokens'</code>' 设置为 context window 的 10 倍

- - 将成本全部设为 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'0'</code>'

这样可以避免手动维护模型条目,同时让目录与 Ollama 的能力保持一致。

查看可用模型:

Bash
ollama list
openclaw models list

新增模型时,只需要用 Ollama 拉取即可:

Bash
ollama pull mistral

新模型会被自动发现并可直接使用。

如果你显式配置了 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'models.providers.ollama'</code>',自动发现会被跳过,你需要手动定义模型(见下文)。

Tutorial.step

配置

#

Tutorial.step

基本配置(隐式发现)

最简单的启用方式是设置环境变量:

Bash
export OLLAMA_API_KEY="ollama-local"

#

Tutorial.step

显式配置(手动模型)

适用于以下情况:

- - Ollama 跑在另一台主机/端口上

- - 你想强制指定 context window 或模型列表

- - 你想包含那些不声明 tool 支持的模型

Json5
{
  models: {
    providers: {
      ollama: {
        // OpenAI-compatible API baseUrl needs to include /v1
        baseUrl: "http://ollama-host:11434/v1",
        apiKey: "ollama-local",
        api: "openai-completions",
        models: [
          {
            id: "llama3.3",
            name: "Llama 3.3",
            reasoning: false,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 8192,
            maxTokens: 8192 * 10
          }
        ]
      }
    }
  }
}

如果设置了 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'OLLAMA_API_KEY'</code>',你可以在 provider 条目中省略 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'apiKey'</code>',OpenClaw 会在可用性检查时自动补齐。

#

Tutorial.step

自定义 base URL(显式配置)

当 Ollama 运行在不同主机或端口上时(显式配置会禁用自动发现,因此也需要手动定义 models):

Json5
{
  models: {
    providers: {
      ollama: {
        apiKey: "ollama-local",
        baseUrl: "http://ollama-host:11434/v1",
      },
    },
  },
}

#

Tutorial.step

模型选择

完成配置后,你的所有 Ollama 模型都可使用:

Json5
{
  agents: {
    defaults: {
      model: {
        primary: "ollama/llama3.3",
        fallback: ["ollama/qwen2.5-coder:32b"],
      },
    },
  },
}
Tutorial.step

高级

#

Tutorial.step

推理模型(Reasoning)

当 Ollama 在 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'/api/show'</code>' 中报告 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'/api/show'</code>' 时,OpenClaw 会将模型标记为具备推理能力:

Bash
ollama pull deepseek-r1:32b

#

Tutorial.step

模型成本

Ollama 在本机运行且免费,因此模型成本全部设为 $0。

#

Tutorial.step

上下文窗口

对于自动发现的模型,OpenClaw 会尽可能使用 Ollama 报告的 context window;否则默认为 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'8192'</code>'。你可以在显式 provider 配置中覆盖 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'contextWindow'</code>' 与 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'maxTokens'</code>'。

Tutorial.step

故障排除

#

Tutorial.step

未检测到 Ollama

确认 Ollama 正在运行,且你设置了 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'OLLAMA_API_KEY'</code>'(或某个 auth profile),并且 '<strong>'没有'</strong>' 显式定义 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'models.providers.ollama'</code>':

Bash
ollama serve

同时确认 API 可访问:

Bash
curl http://localhost:11434/api/tags

#

Tutorial.step

没有可用模型

OpenClaw 只会自动发现报告支持 tools 的模型。如果你的模型未出现在列表里:

- - 拉取支持 tools 的模型,或

- - 在 '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'models.providers.ollama'</code>' 中手动定义该模型

新增模型:

Bash
ollama list  # View installed models
ollama pull llama3.3  # Pull a model

#

Tutorial.step

连接被拒绝

检查 Ollama 是否运行在正确端口:

Bash
ps aux | grep ollama


ollama serve
Tutorial.step

另请参阅

- '<a href="/concepts/model-providers" className="text-emerald-400 hover:text-emerald-300 transition-colors">'Model Providers'</a>' - 提供商总览

- '<a href="/concepts/models" className="text-emerald-400 hover:text-emerald-300 transition-colors">'Model Selection'</a>' - 如何选择模型

- '<a href="/gateway/configuration" className="text-emerald-400 hover:text-emerald-300 transition-colors">'Configuration'</a>' - 完整配置参考