模型发现
模型发现(隐式提供商)¶
当设置了 OLLAMA_API_KEY(或身份验证配置文件),且未定义 models.providers.ollama 或另一个带有 api: "ollama" 的自定义提供商时,OpenClaw 会从 http://127.0.0.1:11434 发现模型:
| 行为 | 详情 |
|---|---|
| 目录查询 | /api/tags |
| 能力检测 | 尽力而为的 /api/show 会读取 contextWindow、num_ctx Modelfile 参数以及能力(vision/tools/thinking) |
| 视觉模型 | /api/show 中的 vision 能力会将模型标记为支持图像(input: ["text", "image"]) |
| 推理检测 | 在可用时使用 /api/show 中的 thinking 能力;当 Ollama 省略能力时,回退到名称启发式(r1、reason、reasoning、think)。glm-5.2:cloud 和 deepseek-v4-flash\|pro:cloud 始终被视为推理模型,无论报告的能力如何。 |
| Token 限制 | maxTokens 默认为 OpenClaw 的 Ollama 最大 Token 上限 |
| 成本 | 所有成本均为 0 |
一个非空的 models.providers.ollama.models 列表会选择手动模型并跳过发现。当 Ollama 位于代理的模型范围内时,带有 models: [] 的显式自托管端点仍符合发现条件;仅设置 models.providers.ollama.apiKey 不会为 Gateway 模型浏览选择该提供商。
发现失败会记录不可用或目录身份验证失败,并保留相同端点和凭据的最后一次成功清单。成功的空响应会清除已发现的模型。手动模型保持独立。
托管的 https://ollama.com 条目会跳过发现,因为 Ollama Cloud 模型由提供商管理。如果没有显式的 Ollama 端点,带有 api: "ollama" 且 baseUrl 为非回环地址的自定义提供商会抑制默认的 localhost 发现;请手动列出该自定义提供商的模型(参见 Configuration)。像 http://127.0.0.2:11434 这样的回环自定义提供商会保持默认本地发现符合条件。
你可以使用完整引用,例如 ollama/<pulled-model>:latest,而无需手写 models.json 条目;OpenClaw 会实时解析它。对于已登录的主机,选择一个未列出的 ollama/<model>:cloud 引用会使用 /api/show 验证该确切模型,并且只有当 Ollama 确认元数据时才会将其添加到运行时目录——拼写错误仍会作为未知模型失败。
冒烟测试¶
用于跳过完整代理工具集的窄文本探测:
OLLAMA_API_KEY=ollama-local \
openclaw infer model run \
--local \
--model ollama/llama3.2:latest \
--prompt "Reply with exactly: pong" \
--json
使用 --file 附带图像,可进行精简的视觉模型探测(接受 PNG/JPEG/WebP;非图像文件会在调用 Ollama 之前被拒绝——音频请使用 openclaw infer audio transcribe):
OLLAMA_API_KEY=ollama-local \
openclaw infer model run \
--local \
--model ollama/qwen2.5vl:7b \
--prompt "Describe this image in one sentence." \
--file ./photo.jpg \
--json
这两条路径都不会加载聊天工具、记忆或会话上下文。如果它成功而正常代理回复失败,问题很可能在于模型的工具/代理能力,而不是端点。
使用 /model ollama/<model> 选择模型是用户的精确选择:如果配置的 baseUrl 不可达,下一条回复会以提供商错误失败,而不是静默回退到另一个已配置的模型。
隔离的 cron 任务会在开始代理轮次之前添加一项本地安全检查:如果所选模型解析为本地/私有网络/.local Ollama 提供商,并且 /api/tags 不可达,OpenClaw 会将该次运行记录为 skipped,并在错误文本中包含模型。此端点检查按主机缓存 5 分钟,因此针对已停止守护进程的重复 cron 任务不会全部发起失败请求。
实时验证。这些是贡献者命令:请从已检出 openclaw/openclaw 仓库且已完成 pnpm install 的环境运行,而不是从打包的 CLI 安装运行。
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_OLLAMA=1 OPENCLAW_LIVE_OLLAMA_WEB_SEARCH=0 \
pnpm test:live -- extensions/ollama/ollama.live.test.ts
对于 Ollama Cloud,请将同一实时测试指向托管端点(默认跳过嵌入;由于云密钥可能未授权 /api/embed,可使用 OPENCLAW_LIVE_OLLAMA_EMBEDDINGS=1 强制启用):
export OLLAMA_API_KEY='<your-ollama-cloud-api-key>'
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_OLLAMA=1 \
OPENCLAW_LIVE_OLLAMA_BASE_URL=https://ollama.com \
OPENCLAW_LIVE_OLLAMA_MODEL=glm-5.1:cloud \
OPENCLAW_LIVE_OLLAMA_WEB_SEARCH=1 \
pnpm test:live -- extensions/ollama/ollama.live.test.ts
要添加模型,请拉取该模型,它会被自动发现:
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw