Skip to main content
OpenClaw 使用 Ollama 的原生 API(/api/chat),而不是兼容 OpenAI 的 /v1 端点。支持三种模式: 如需使用专用 ollama-cloud 提供商 ID 进行纯云端设置,请参阅 Ollama Cloud。如果你希望将云端路由与本地 ollama 提供商分开, 请使用 ollama-cloud/<model> 引用。
请勿使用 /v1 的 OpenAI 兼容 URL(http://host:11434/v1)。它会导致工具调用失效,并且模型可能会将原始工具调用 JSON 作为纯文本输出。请使用原生 URL:baseUrl: "http://host:11434"(不含 /v1)。
规范配置键为 baseUrl。为了兼容 OpenAI SDK 风格的示例,也接受 baseURL,但新配置应使用 baseUrl

身份验证规则

环回地址、专用网络、.local 和仅含主机名的 Ollama URL 不需要真实的持有者令牌。OpenClaw 对这些地址使用 ollama-local 标记。
公共远程主机和 https://ollama.com 需要真实凭据:OLLAMA_API_KEY、身份验证配置文件或提供商的 apiKey。对于直接托管使用,首选 ollama-cloud 提供商。
使用 api: "ollama" 的自定义提供商遵循相同规则。例如,指向专用局域网主机的 ollama-remote 提供商可以使用 apiKey: "ollama-local";子智能体会通过 Ollama 提供商钩子解析该标记,而不会将其视为缺少凭据。memory.search.provider 也可以指向自定义提供商 ID,使嵌入使用相应的 Ollama 端点。
auth-profiles.json 存储提供商 ID 的凭据;请将端点设置(baseUrlapi、模型、请求头、超时时间)放在 models.providers.<id> 中。{ "ollama-windows": { "apiKey": "ollama-local" } } 等旧版扁平文件不是运行时格式;openclaw doctor --fix 会将它们重写为规范的 ollama-windows:default API 密钥配置文件并创建备份。该旧版文件中的 baseUrl 值是无效信息,应移至提供商配置。
Ollama 记忆嵌入的持有者身份验证仅适用于声明它的主机:
  • 提供商级密钥仅发送到该提供商的主机。
  • memory.search.remote.apiKey 和每智能体覆盖项仅发送到各自的远程嵌入主机。
  • OLLAMA_API_KEY 环境变量值会被视为 Ollama Cloud 约定,默认不会发送到本地或自行托管的主机。

入门指南

1

运行新手引导

选择 Ollama,然后选择一种模式:云端 + 本地仅云端仅本地在全新的引导式设置中,OpenClaw 首先检查默认或已配置的 Ollama 主机。仅当 /api/show 确认模型支持工具且上下文窗口至少为 16K 时, 才会自动提供已安装的模型;如果缺少上下文元数据或其值更小, 则继续使用手动设置流程。共享的 CLI/macOS 设置阶梯仍会通过一次 真实补全验证所选路由,然后再保存。此自动检查绝不会拉取 模型;如果没有合适的已安装模型,新手引导会继续进入 常规 Ollama 选择器。
2

选择模型

Cloud only 会提示输入 OLLAMA_API_KEY,并建议托管云端默认值。Cloud + LocalLocal only 会提示输入 Ollama 基础 URL、发现可用模型,并在缺少所选本地模型时自动拉取。已安装的 :latest 标签(例如 gemma4:latest)只显示一次,不会与 gemma4 重复。Cloud + Local 还会检查主机是否已登录以访问云端。
3

验证

非交互模式:
--custom-base-url--custom-model-id 是可选的;省略它们将使用本地默认主机和 gemma4 建议模型。

通过本地主机使用云端模型

Cloud + Local 通过一个可访问的 Ollama 主机同时路由本地模型和 :cloud 模型——这是 Ollama 的混合流程;如果你希望同时使用两者, 应在设置期间选择此模式。 OpenClaw 会提示输入基础 URL、发现本地模型并检查 ollama signin 状态。登录后,它会建议托管默认模型 (kimi-k2.5:cloudminimax-m2.7:cloudglm-5.1:cloudglm-5.2:cloud)。如果 未登录,设置会保持仅本地模式,直到你运行 ollama signin 如需在没有本地守护进程的情况下仅访问云端,请使用 openclaw onboard --auth-choice ollama-cloud 并参阅 Ollama Cloud——此路径不需要 ollama signin 或正在运行的服务器:
openclaw onboard 期间显示的云端模型列表会从 https://ollama.com/api/tags 实时填充,最多包含 500 个条目,因此选择器会反映 当前托管目录。如果设置时无法访问 ollama.com 或其未返回任何 模型,OpenClaw 会回退到硬编码的建议列表,以便 新手引导仍能完成。

模型发现(隐式提供商)

当设置了 OLLAMA_API_KEY(或身份验证配置文件),且既未定义 models.providers.ollama,也未定义其他使用 api: "ollama" 的自定义提供商时, OpenClaw 会从 http://127.0.0.1:11434 发现模型:
设置包含显式 models 数组的 models.providers.ollama,或者设置使用 api: "ollama"baseUrl 非环回的自定义提供商,会禁用 自动发现;之后必须手动定义模型(参阅 配置)。指向托管 https://ollama.commodels.providers.ollama 条目也会跳过发现,因为 Ollama Cloud 模型 由提供商管理。http://127.0.0.2:11434 等环回自定义提供商仍视为本地提供商,并保留自动发现。 你可以使用 ollama/<pulled-model>:latest 等完整引用,而无需手写 models.json 条目;OpenClaw 会实时解析它。对于已登录的 主机,选择未列出的 ollama/<model>:cloud 引用时,会通过 /api/show 验证该 确切模型,并且仅在 Ollama 确认元数据后才将其添加到运行时目录中——输入错误的模型名称仍会因模型未知而失败。

冒烟测试

如需跳过完整智能体工具界面的精简文本探测:
添加 --file 并提供图像,可进行精简的视觉模型探测(接受 PNG/JPEG/WebP; 非图像文件会在调用 Ollama 之前被拒绝——音频请使用 openclaw infer audio transcribe):
这两种路径都不会加载聊天工具、记忆或会话上下文。如果它能成功, 而普通智能体回复失败,则问题很可能在于模型的工具/智能体能力, 而不是端点。 使用 /model ollama/<model> 选择模型是用户的明确选择:如果已配置的 baseUrl 无法访问,下一次回复会因提供商错误而失败,而不会静默回退到另一个已配置的模型。 隔离的定时任务会在启动智能体轮次前增加一项本地安全检查:如果所选模型解析到本地/专用网络/.local Ollama 提供商,而 /api/tags 无法访问,OpenClaw 会将该次运行记录为 skipped,并在错误文本中包含模型。此端点检查按主机缓存 5 分钟,因此针对已停止守护进程重复运行的定时任务不会全部发起注定失败的请求。 实时验证:
对于 Ollama Cloud,将同一实时测试指向托管端点(默认跳过嵌入;由于云端密钥可能没有 /api/embed 的授权,可使用 OPENCLAW_LIVE_OLLAMA_EMBEDDINGS=1 强制启用):
要添加模型,请拉取该模型,系统会自动发现它:

节点本地推理

智能体可以将短任务委派给已配对桌面设备或服务器节点上的 Ollama 模型。提示词和响应通过现有的已认证 Gateway 网关/节点连接传输;请求在节点自身的 local loopback Ollama 端点(http://127.0.0.1:11434)上运行。
1

在节点上启动 Ollama

2

连接节点主机

在 Gateway 网关主机上批准设备及其节点命令,然后验证:
首次连接或添加 Ollama 命令的升级可能会触发节点命令审批。如果节点连接后未公布 ollama.modelsollama.chat,请再次检查 openclaw nodes pending
3

从智能体中使用

内置 Ollama 插件提供 node_inference 工具。智能体先调用 action: "discover",然后使用该结果中的节点和模型调用 action: "run"(当恰好连接了一个具备相应能力的节点时,run 可以省略节点)。例如:“发现我的节点上的 Ollama 模型,然后使用已加载且速度最快的模型总结此文本。”
设备发现会读取 /api/tags、检查 /api/show 能力,并在可用时使用 /api/ps,以优先排列已加载的模型。它仅返回 Ollama 报告为支持聊天的本地模型(completion 能力)——Ollama Cloud 条目和仅支持嵌入的模型会被排除。每次运行都会禁用模型思考,且输出默认为 512 个令牌(硬上限为 8192),除非工具调用请求不同的 maxTokens;某些模型(例如 GPT-OSS)不支持禁用思考,因此仍可能输出推理令牌。 要让 Ollama 在节点上保持运行但不向智能体开放:
重启节点(openclaw node restart,或者对于前台会话,停止并重新运行 openclaw node run)。节点将停止公布 ollama.modelsollama.chat;Ollama 本身以及 Gateway 网关的 Ollama 提供商不受影响。将值改回 true 并重启即可重新启用;重新连接后,发生变化的命令表面可能需要再次批准 openclaw nodes pending 无需启动智能体轮次即可直接验证节点命令:
--invoke-timeout 限制节点运行命令的时长;--timeout 限制整个 Gateway 网关调用的时长,并且应设置得更大。 节点本地推理始终使用节点自身的 local loopback 端点——不会复用已配置的远程/云端 models.providers.ollama.baseUrl。节点命令默认可用于 macOS、Linux 和 Windows 节点主机,并且仍受常规节点配对/命令策略约束。

视觉和图像描述

内置 Ollama 插件会将 Ollama 注册为具备图像能力的媒体理解提供商,因此 OpenClaw 可以通过本地或托管的 Ollama 视觉模型路由明确的图像描述请求和已配置的图像模型默认值。
--model 必须是完整的 <provider/model> 引用;设置后,infer image describe 会先尝试该模型,而不是因为模型已原生支持视觉就跳过描述。如果调用失败,OpenClaw 可以继续执行 agents.defaults.imageModel.fallbacks;文件/URL 准备错误会在尝试回退前导致失败。对 OpenClaw 的图像理解流程和已配置的 imageModel 使用 infer image describe;对带自定义提示词的原始多模态探测使用 infer model run --file 要将 Ollama 设置为入站媒体的默认图像理解提供商:
优先使用完整的 ollama/<model> 引用。仅当 qwen2.5vl:7b 等裸 imageModel 引用以该确切模型列在 models.providers.ollama.models 下、带有 input: ["text", "image"],并且没有其他已配置的图像提供商公开相同裸 ID 时,才会将其规范化为 ollama/qwen2.5vl:7b;否则请显式使用提供商前缀。 与云端模型相比,较慢的本地视觉模型可能需要更长的图像理解超时;如果 Ollama 尝试分配模型所公布的完整视觉上下文,模型还可能在资源受限的硬件上崩溃。请设置能力超时并限制 num_ctx
此超时适用于入站图像理解和显式 image 工具。对于常规模型调用,models.providers.ollama.timeoutSeconds 仍控制底层 Ollama HTTP 请求保护时限。 实时验证:
如果手动定义 models.providers.ollama.models,请显式标记视觉模型:
OpenClaw 会拒绝针对未标记为具备图像能力的模型发出的图像描述请求。使用隐式设备发现时,此信息来自 /api/show 的视觉能力。

配置

如果设置了 OLLAMA_API_KEY,则可以在提供商条目中省略 apiKey;OpenClaw 会为可用性检查自动填充它。

常用方案

请使用 ollama listopenclaw models list --provider ollama 中的确切名称替换模型 ID。
Ollama 与 Gateway 网关位于同一台机器上,并自动被发现:
除非需要手动指定模型,否则不要添加 models.providers.ollama 块。
contextWindow 是 OpenClaw 的上下文预算;params.num_ctx 会发送给 Ollama。当硬件无法运行模型所公布的完整上下文时,请使两者保持一致。
无需本地守护进程,直接使用托管模型:
如需使用专用的 ollama-cloud 提供商 ID,而不是此结构,请参阅 Ollama Cloud
运行多个 Ollama 服务器时可使用自定义提供商 ID;每个提供商都有自己的 主机、模型、身份验证和超时设置。
OpenClaw 在调用 Ollama 前会移除当前提供商前缀(找不到时回退到裸 ollama/ 前缀),因此 ollama-large/qwen3.5:27b 到达 Ollama 时会变为 qwen3.5:27b
某些本地模型可以处理简单提示词,但难以应对完整的智能体 工具界面。请先限制工具和上下文,再调整全局运行时 设置:
仅当模型或服务器在处理工具架构时持续 失败,才使用 compat.supportsTools: false——它以牺牲智能体能力换取稳定性。 除非明确需要,否则 localModelLean 会从智能体的直接工具界面中移除重量级的浏览器、定时任务、消息、媒体生成、 语音和 PDF 工具, 并将较大的工具目录置于工具搜索之后。它不会改变 Ollama 的 运行时上下文或思考模式。对于会循环或 将预算消耗在隐藏推理上的小型 Qwen 风格思考模型,请将它与 params.num_ctxparams.thinking: false 搭配使用。

模型选择

自定义提供商 ID 的工作方式相同:对于使用当前提供商 前缀的引用(例如 ollama-spark/qwen3:32b),OpenClaw 会在 调用 Ollama 前移除该前缀,并发送 qwen3:32b 对于速度较慢的本地模型,请优先调整提供商范围的设置,而不是提高整个 智能体运行时的超时时间:
timeoutSeconds 涵盖模型 HTTP 请求的全过程:连接建立、标头、 正文流式传输以及受保护提取操作的总中止时间。原生 /api/chat 请求会将 params.keep_alive 作为顶层 keep_alive 转发;当首次轮次的加载时间成为瓶颈时,请按 模型设置它。

快速验证

对于远程主机,请将 127.0.0.1 替换为 baseUrl 主机。如果 curl 可以工作,但 OpenClaw 无法工作,请检查 Gateway 网关是否运行在其他 计算机、容器或服务账户下。

Ollama Web 搜索

OpenClaw 将 Ollama Web 搜索内置为 web_search 提供商。 openclaw onboardopenclaw configure --section web 期间选择它,或设置:
要通过 Ollama Cloud 直接执行托管搜索:
对于自行托管的主机,OpenClaw 会先尝试本地 /api/experimental/web_search 代理,然后回退到同一主机上的托管 /api/web_search 路径; 已登录的本地守护进程通常会通过本地代理响应。直接 https://ollama.com 调用始终使用托管的 /api/web_search 端点。
有关完整设置和行为,请参阅 Ollama Web 搜索

高级配置

此模式下的工具调用并不可靠。 仅当代理需要 OpenAI 格式,并且你不依赖原生工具调用时才使用此模式。
对于位于 /v1/chat/completions 后面的代理,请显式设置 api: "openai-completions"
此模式可能不支持同时进行流式传输和工具调用;你 可能需要在模型上设置 params: { streaming: false }OpenClaw 默认会在此模式下注入 options.num_ctx,以免 Ollama 静默回退到 4096 token 的上下文。如果你的代理拒绝 未知的 options 字段,请将其禁用:
对于自动发现的模型,OpenClaw 使用 /api/show 报告的上下文窗口,包括来自自定义 Modelfile 的较大 PARAMETER num_ctx 值;否则会回退到 OpenClaw 的默认 Ollama 上下文 窗口。提供商级别的 contextWindowcontextTokensmaxTokens 会为 该提供商下的每个模型设置默认值,并可按 模型覆盖。contextWindow 是 OpenClaw 自身的提示词/压缩预算。除非你显式设置 params.num_ctx,否则原生 /api/chat 请求不会设置 options.num_ctx,因此 Ollama 会应用自己的模型、 OLLAMA_CONTEXT_LENGTH 或基于 VRAM 的默认值;无效、零值、负值 或非有限的 params.num_ctx 值会被忽略。如果旧配置仅使用 contextWindow/maxTokens 强制设置原生请求上下文,请运行 openclaw doctor --fix 将它们复制到 params.num_ctx。OpenAI 兼容适配器仍会默认根据已配置的 params.num_ctxcontextWindow 注入 options.num_ctx;如果上游拒绝 options,请使用 injectNumCtxForOpenAICompat: false 禁用此行为。原生模型条目还接受 params 下的常用 Ollama 运行时选项, 并将其作为原生 /api/chat options 转发:num_keepseednum_predicttop_ktop_pmin_ptypical_prepeat_last_ntemperaturerepeat_penaltypresence_penaltyfrequency_penaltystopnum_batchnum_gpumain_gpuuse_mmapnum_thread。 少数键(formatkeep_alivetruncateshift)会作为 顶层请求字段转发,而不是嵌套在 options 中。OpenClaw 仅 转发这些 Ollama 请求键,因此 streaming 等仅限运行时的参数 永远不会发送给 Ollama。使用 params.think(或 params.thinking)设置顶层 thinkfalse 会为 Qwen 风格的思考模型禁用 API 级 思考。
每个模型的 agents.defaults.models["ollama/<model>"].params.num_ctx 也 有效;如果两者都已设置,则显式的提供商模型条目优先。
OpenClaw 会按 Ollama 预期的方式传递思考设置:使用顶层 think,而不是 options.think。自动发现的模型中,如果其 /api/show 报告具有 thinking 能力,则会提供 /think low/think medium/think high/think max;非思考模型仅提供 /think off
或设置模型默认值:
每个模型的 params.think/params.thinking 可以为特定模型禁用或强制启用 API 思考。仅当当前运行使用隐式的 off 默认值时,OpenClaw 才会保留该显式配置; 非关闭状态的运行时命令(如 /think medium)仍会覆盖它。对于明确标记为 reasoning: false 的模型,绝不会发送真值思考请求;无论如何都会发送 think: false 请求。
名为 deepseek-r1reasoningreasonthink 的模型默认被视为 具备推理能力,无需额外配置:
Ollama 在本地运行且免费,因此自动发现和手动定义的模型费用均为 0
内置的 Ollama 插件为 记忆搜索注册了记忆嵌入提供商。它使用已配置的 Ollama 基础 URL 和 API key,调用 /api/embed,并在可能的情况下将多个记忆块合并到 一个 input 请求中。proxy.enabled=true 时,向根据已配置的 baseUrl 得出的精确主机本地 loopback 源发送的嵌入请求,会使用 OpenClaw 的受保护直连路径,而不是托管转发代理。 配置的主机名本身必须是 localhost 或 loopback IP 字面量——仅通过 DNS 解析到 loopback 的名称仍会使用托管代理路径。局域网、tailnet、专用网络和公共 Ollama 主机始终使用托管代理路径,并且重定向到其他主机或端口时不会继承信任。 proxy.loopbackMode: "proxy" 仍会通过代理路由 loopback 流量;proxy.loopbackMode: "block" 会在连接前拒绝该流量——参见托管代理对需要或建议使用检索前缀的模型,查询时嵌入会使用这些前缀: nomic-embed-textqwen3-embeddingmxbai-embed-large。文档批次保持原始格式,因此现有索引 无需格式迁移。
对于远程嵌入主机,请将身份验证限定在该主机范围内:
Ollama 默认使用原生 API/api/chat),它同时支持 流式传输和工具调用,无需特殊配置。对于原生请求,思考控制会直接传递:除非配置了显式的 params.think/params.thinking,否则 /think offopenclaw agent --thinking off 会发送顶层 think: false/think low|medium|high 会发送匹配的强度字符串;/think max 映射到 Ollama 的最高强度 think: "high"
如果要改用 OpenAI 兼容端点,请参阅上文“旧版 OpenAI 兼容模式”——在该模式下,流式传输和工具调用可能无法同时工作。

故障排查

在使用 NVIDIA/CUDA 的 WSL2 上,官方 Ollama Linux 安装程序会创建一个 带有 Restart=alwaysollama.service systemd 单元。如果该服务 自动启动并在 WSL2 启动期间加载由 GPU 支持的模型,Ollama 可能会在加载时锁定 主机内存;Hyper-V 内存回收并不总能回收这些页面,因此 Windows 可能会终止 WSL2 虚拟机,systemd 随后重启 Ollama,从而不断循环。迹象包括:WSL2 反复重启或终止、WSL2 启动后 app.sliceollama.service 的 CPU 占用率很高,以及 SIGTERM 来自 systemd 而不是 Linux OOM killer。当 OpenClaw 检测到 WSL2、已使用 Restart=always 启用 ollama.service 且存在可见的 CUDA 标记时,会记录启动警告。缓解方法:
在 Windows 端,将以下内容添加到 %USERPROFILE%\.wslconfig,然后运行 wsl --shutdown
或缩短保活时间,并仅在需要时手动启动 Ollama:
参见 ollama/ollama#11317
确认 Ollama 正在运行,已设置 OLLAMA_API_KEY(或身份验证配置文件), 并且未显式定义 models.providers.ollama
在本地拉取模型,或在 models.providers.ollama 中显式定义模型:
在运行 Gateway 网关的同一台机器和运行时中验证:
常见原因:
  • baseUrl 指向 localhost,但 Gateway 网关在 Docker 中或其他主机上运行。
  • URL 使用 /v1,因此选择了 OpenAI 兼容行为,而不是原生 Ollama。
  • 远程主机需要更改防火墙或局域网绑定设置。
  • 模型位于你的笔记本电脑守护进程上,而不在远程守护进程上。
通常是因为提供商处于 OpenAI 兼容模式,或模型无法 处理工具 schema。应优先使用原生模式:
如果小型本地模型仍无法处理工具 schema,请在该模型条目上设置 compat.supportsTools: false,然后重新测试。
如果托管的 Kimi/GLM 响应是长串非语言符号,则会被视为 提供商调用失败,而不是成功回复,因此系统会执行正常的 重试、回退或错误处理,而不会将损坏的文本持久化到会话中。如果问题再次出现,请记录模型名称、当前会话文件,以及 此次运行使用的是 Cloud + Local 还是 Cloud only,然后尝试新 会话和回退模型:
大型本地模型首次加载可能需要很长时间。将超时范围限定到 Ollama 提供商,并可选择让模型在轮次之间保持加载状态:
如果主机本身接受连接的速度较慢,timeoutSeconds 还会 延长此提供商的受保护连接超时时间。
许多模型声明的上下文大小超出了硬件能够舒适运行的范围。 除非设置了 params.num_ctx,否则原生 Ollama 会使用其自身的运行时默认值。 同时限制 OpenClaw 的预算和 Ollama 的请求上下文,可获得可预测的首 token 延迟:
如果 OpenClaw 发送的提示词过多,请降低 contextWindow。 如果 Ollama 的运行时上下文对该机器而言过大,请降低 params.num_ctx。如果生成运行时间过长,请降低 maxTokens
更多帮助:故障排查常见问题

相关内容

Ollama Cloud

使用专用 ollama-cloud 提供商的纯云端设置。

模型提供商

所有提供商、模型引用和故障转移行为的概览。

模型选择

如何选择和配置模型。

Ollama Web 搜索

由 Ollama 提供支持的 Web 搜索的完整设置和行为详情。

配置

完整的配置参考。