OpenClaw 的免费 AI 大模型及其配置方法

OpenClaw 中的“自由模型”可能意味着两种不同的东西,而混淆这两种模型正是大多数人浪费时间的地方。

有一种“免费”是真正意义上的免费,因为模型运行在本地,你只需要支付 CPU、内存、GPU 和电力费用。例如 Ollama 或你自行托管的 OpenAI 兼容运行时环境。

另一种是“免费套餐”,即托管服务提供商提供一定的配额、积分或 OAuth 访问权限。这种套餐虽然不错,但通常会有速率限制、策略限制,而且偶尔还会出现意外中断或流量突然上限的情况。

本指南篇幅较长,因为模型配置看似简单,但一旦遇到问题,例如工具调用速度变慢、出现 429 错误,或者某个代理使用的身份验证配置文件与预期不符等,就会发现其中的奥妙。我们将力求实用。

如果您是 OpenClaw 新手,想先了解基础知识,可以阅读 OpenClaw 简介及其工作原理。如果您已经运行了 OpenClaw,接下来我们来正确地连接模型。

OpenClaw 模型引用的工作原理

OpenClaw 模型引用使用provider/model格式。例如:openai/gpt-5.1-codexollama/llama3.3

如果你设置了此项,agents.defaults.models实际上就创建了一个允许列表。只有列表中列出的模型才符合条件。这在你想防止不同环境下的模型选择出现随机偏差时非常有用。

在实际应用中非常重要的命令行助手:

  • openclaw onboard用于初始身份验证和提供商设置
  • openclaw models list看看 OpenClaw 能看到什么
  • openclaw models set provider/model无需编辑配置即可快速切换

这些内容在提供商文档中都有明确说明,可以避免配置错误。

在粘贴随机按键之前,请先制定好策略。

策略A:本地优先,托管备用

这是我给大多数自托管用户的默认建议。本地模型可以处理繁琐的日常任务,而备用方案则可以应对“我需要更强大的处理器来处理这个问题”或“我的本地服务器繁忙”的情况。此外,由于大部分流量都停留在本地,因此成本也更可预测。

策略B:仅提供免费托管服务

如果你不需要进行任何本地推理,并且使用量很轻,那么这种方法可行。缺点是免费套餐的额度会变化,你会遇到限制,所以你需要一些备用方案。

策略C:仅限本地

从隐私和成本角度来看,这是最简洁的方案。但它也最依赖硬件。在小型机器上运行的 3B 模型在快速自动化方面表现出色,但在长时间的推理任务中则会崩溃。

真正免费的本地模型

奥拉玛

Ollama 是最常见的“我想要免费且本地化的服务”方案。OpenClaw 支持 Ollama 作为服务提供商,并且可以自动检测本地 Ollama 服务器http://127.0.0.1:11434/v1

最简配置如下所示:

ollama pull llama3.3 openclaw models list

然后设置您的默认模型openclaw.json

{ "agents": { "defaults": { "model": { "primary": "ollama/llama3.3" } } } }

如果你想要一套合理的“入门”模型,可以保留一个通用模型作为主模型,再添加一个编码模型作为备用。一开始规模要小,以后可以随时扩展。

Ollama 关于流媒体的警告

由于 SDK 和流格式的特殊性,某些 Ollama 配置的构建版本会禁用流式传输。如果您发现文本输出中泄露了奇怪的工具标记,通常就是这个原因。请将流式传输视为可选而非必需。

LM Studio vLLM LiteLLM llama.cpp 和其他 OpenAI 兼容运行时

OpenClaw 可以通过 . 使用几乎任何 OpenAI 兼容的基本 URL models.providers。文档甚至展示了带有显式提供程序配置的 LM Studio 风格端点的模式。

示例模式:

{ "agents": { "defaults": { "model": { "primary": "lmstudio/minimax-m2.1-gs32" }, "models": { "lmstudio/minimax-m2.1-gs32": { "alias": "MiniMax" } } } }, "models": { "providers": { "lmstudio": { "baseUrl": "http://localhost:1234/v1", "apiKey": "LMSTUDIO_KEY", "api": "openai-completions", "models": [ { "id": "minimax-m2.1-gs32", "name": "MiniMax M2.1", "contextWindow": 200000, "maxTokens": 8192, "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 } } ] } } } }

请注意,这些cost字段的值都设置为零。这在配置中是一个很好的提示:本地模式意味着不按令牌计费。

提供免费套餐和免费访问途径的托管选项

本部分介绍一些可以让你无需立即付费即可运行 OpenClaw 的服务商。条款和配额可能会有所变动,有些“免费”服务实际上只是“促销额度用完前免费”。请将此视为一份清单,而非承诺。

Qwen OAuth

如果你想要一个不错的免费套餐,又不想费劲地“轮换12个API密钥”,我推荐你试试这个。OpenClaw通过OAuth设备代码流程和捆绑插件支持Qwen。

启用插件并登录:

openclaw plugins enable qwen-portal-auth openclaw models auth login --provider qwen-portal --set-default

模型参考格式如下:

  • qwen-portal/coder-model
  • qwen-portal/vision-model

Qwen 的文档中描述了与 OAuth 访问相关的每日免费请求配额。

我个人的看法是: Qwen 是少数几个“免费版”仍然能满足实际工作需求的软件之一,前提是你得为合适的工作选择合适的模式。我不会用它来管理整个团队的免费业务,但对于个人经纪人来说,它可能是一个不错的选择。

OpenRouter 免费模型

OpenRouter 的优势在于它将多个模型聚合到一个提供商之下。他们的文档也解释了某些模型上的`:free`后缀。

在 OpenClaw 中,通常只需设置:

{ "agents": { "defaults": { "model": { "primary": "openrouter/meta-llama/llama-3.2-3b-instruct:free" } } } }

免费模型可能会随时间变化,因此请将模型选择视为需要定期重新评估的事情。如果某个免费模型消失,您需要提前配置好备用模型。

Groq

Groq之所以受欢迎,是因为它速度快,而且通常提供充足的流量供用户进行实验。您的具体流量配额取决于Groq在您所在地区和账户级别提供的配额。尽管如此,它仍然值得作为备用方案,因为一旦成功,流量几乎是瞬间到账的。

OpenClaw 内置了 Groq 作为提供程序,它使用GROQ_API_KEY

Google Gemini

Gemini 也是一个内置的提供程序,它使用GEMINI_API_KEY

谷歌的免费使用量和速率限制取决于产品类型和套餐,因此我不会在类似这样的教程中给出具体的数值。如果您想大致了解情况,可以参考谷歌社区论坛上关于API类免费使用每日请求上限的讨论。

Mistral

Mistral 是另一个内置提供商。如果您所在地区有免费套餐,它可以作为不错的通用备选方案。OpenClaw 使用 MistralMISTRAL_API_KEY进行身份验证。

Cohere

Cohere 常用于摘要和分类类工作。根据你的路由方式,你可以使用直接提供商或与 OpenAI 兼容的代理。如果你使用的是免费套餐,除非你确定它能满足你的使用需求,否则建议将其作为备用方案而非主要方案。

Moonshot Kimi 和 Kimi Coding

Kimi 通常并非“永久免费”,但通常可以通过促销活动、积分或合作伙伴计划获得。OpenClaw 的文档介绍了如何将 Moonshot 配置为具有 OpenAI 兼容基础 URL 的自定义提供商。

文档中的示例配置框架:

{ "agents": { "defaults": { "model": { "primary": "moonshot/kimi-k2.5" } } }, "models": { "mode": "merge", "providers": { "moonshot": { "baseUrl": "https://api.moonshot.ai/v1", "apiKey": "${MOONSHOT_API_KEY}", "api": "openai-completions", "models": [{ "id": "kimi-k2.5", "name": "Kimi K2.5" }] } } } }

Kimi Coding 是文档中一个单独的提供程序路由KIMI_API_KEY

DeepSeek

DeepSeek 通常被描述为“基本免费”,但这取决于您是在本地运行还是使用托管 API。如果您通过 Ollama 或本地 OpenAI 兼容服务器运行 DeepSeek,则成本仅为硬件费用。如果您使用托管 API,则通常成本较低,而非完全免费。

如何设置回退方案,以避免免费层级破坏您的代理

OpenClaw 通过两层机制处理故障。它可以在同一提供商内轮换身份验证配置文件,然后回退到下一个模型agents.defaults.model.fallbacks

这比听起来更重要,因为免费套餐更容易达到速率限制,并且更容易出现“计费已禁用”状态。OpenClaw 会跟踪冷却时间,并在发生计费错误时延长用户配置文件的禁用时间。

身份验证配置文件的持久性以及为什么您的提供商会在周中“更改”

OpenClaw 将 API 密钥和 OAuth 令牌存储在身份验证配置文件中,并且为了缓存友好性,它会为每个会话固定一个选定的配置文件。

如果您为同一提供商设置了多个配置文件,OpenClaw 可以根据配置顺序或轮询规则轮换使用它们。

如果您感觉 OAuth 登录“消失”了,这通常只是因为登录名轮换。如果您希望登录行为可预测,请固定登录名顺序。

重要免费模型安全设置

在你的政策架构中,以下几项应该是枯燥乏味的:

  • 切勿提交 API 密钥。请将它们放在环境变量或 systemd 环境变量文件中。
  • 未经授权,请勿将您的网关暴露在公共互联网上。请使用令牌、尾网或合适的反向代理。
  • 保持工具访问权限合理。即使是免费模型,如果你的代理可以运行危险工具,它仍然有可能运行这些工具。

如果你想了解“技能层”方面的内容,其安全理念是相同的。技能是执行层面,而非内容本身。这部分内容在我们的 OpenClaw 技能指南中有详细介绍。

快速故障排除清单

OpenClaw 无法识别任何模型

  • 运行openclaw models list并确认服务提供商出现。
  • 如果使用 Ollama,请确保服务可访问并ollama list显示模型。
  • 如果使用代理,请确认其baseUrl是否与/v1OpenAI API 兼容。

我一直遇到401或403错误。

  • 请检查该提供程序对应的正确环境变量。OpenClaw 的提供程序文档列出了所需的身份验证变量。
  • 如果您有多个身份验证配置文件,则故障的配置文件可以轮换使用。请检查身份验证配置文件的顺序和冷却状态。

我一直遇到 429 速率限制。

  • 添加备用方案,以便 OpenClaw 在服务提供商限速时可以切换模型。
  • 对于像长文档摘要这样的高负载工作流程,应降低并发量。
  • 如果你使用的是免费套餐,请接受这是正常现象,并据此进行设计。

Read more

C++ 模板编程基础:泛型编程入门与实践

C++ 模板编程基础:泛型编程入门与实践

第33篇:C++ 模板编程基础:泛型编程入门与实践 一、学习目标与重点 * 掌握模板的核心概念、分类(函数模板、类模板)及基本语法 * 理解泛型编程的思想,能够独立编写函数模板和类模板 * 掌握模板的实例化、特化、偏特化等关键技术 * 解决模板使用中的常见问题(类型推导失败、编译错误等) * 结合实际场景运用模板提升代码复用性和灵活性 * 了解模板与STL的关联,为后续STL学习奠定基础 💡 核心重点:模板的语法规则、类型参数与非类型参数的使用、模板特化的应用场景、泛型编程的核心价值 二、模板与泛型编程概述 2.1 什么是泛型编程 泛型编程(Generic Programming)是一种代码复用技术,核心思想是“编写与类型无关的通用代码,在使用时再指定具体类型”,实现“一次编写,多次复用”。 🗄️ 生活中的泛型类比: * 快递盒:同一个快递盒(通用容器)可装手机、书籍、衣物(不同类型数据)

By Ne0inhk
C++迭代器全解析:从概念到实践,掌握STL的灵魂

C++迭代器全解析:从概念到实践,掌握STL的灵魂

引言:为什么需要迭代器? 在C++的世界里,数据容器千变万化——有连续存储的vector,有链式连接的list,还有树形结构的set。如果每种容器都要单独设计访问接口,那么算法的复用性将大大降低。这正是迭代器(Iterator)诞生的意义:提供一种统一的访问机制,让算法可以独立于具体容器而工作。 想象一下,如果没有迭代器,我们需要为每个容器单独实现sort()、find()、copy()等算法。而有了迭代器,一个std::sort()就能处理所有支持随机访问的容器。这就是STL(标准模板库)设计哲学的核心——泛型编程。 迭代器的本质:泛型指针 从概念上讲,迭代器是泛化的指针。普通指针能做的,迭代器基本都能做,而且更安全、更抽象。但并非所有迭代器都像指针那样强大,这正是STL将迭代器分为五种类别的原因。 // 原生指针本身也是迭代器 int arr[5] = {1, 2, 3, 4, 5}; int* ptr

By Ne0inhk
容器适配器深度解析:从STL的stack、queue到优先队列的底层实现

容器适配器深度解析:从STL的stack、queue到优先队列的底层实现

文章目录 * 容器适配器深度解析:从STL的stack、queue到优先队列的底层实现 * 1. 栈的介绍和使用 * 1.1 栈的介绍 * 1.2 栈的使用 * 最小栈实现 * 栈的弹出压入序列 * 逆波兰表达式求值 * 1.3 stack的模拟实现 * 2. 队列的介绍和使用 * 2.1 队列的介绍 * 2.2 queue的使用 * 2.3 queue的模拟实现 * 3. 优先队列的介绍和使用 * 3.1 priority_queue的介绍 * 3.2 priority_queue的使用 * 3.3 priority_queue的模拟实现 * 4. 容器适配器 * 4.1 什么是适配器 * 4.2

By Ne0inhk
【C++初阶】:C++入门相关知识(3):引用 & inline内联函数 & nullptr相关概念

【C++初阶】:C++入门相关知识(3):引用 & inline内联函数 & nullptr相关概念

🎈主页传送门:良木生香 🔥个人专栏:《C语言》 《数据结构-初阶》 《程序设计》《鼠鼠的C++学习之路》 🌟人为善,福随未至,祸已远行;人为恶,祸虽未至,福已远离 前言:在上一篇文章中,我们学习了C++的输入输出,缺省参数以及函数重载,这些都是C++入门必备的基础知识,那么在这篇文章中,我们就要来学习剩下C++其他的基础知识,那就是引用、inline、以及nullptr这些知识。 一、引用 1.1、引用的概念和定义 引用不是定义一个新变量,而是给已经存在的变量起一个别名,那么编译器就不会为别名重新开辟空间,它和引用变量共同使用同一块空间。就好比我们把土豆称为马铃薯,番茄称为西红柿一样,都是取了一个新的别名,但是东西是同一个东西,所以引用的语法如下: 类型& 别名 = 变量 使用方法如下: int a = 10; int&

By Ne0inhk