前几天看到一条提示信息:OpenClaw 可以接入 Google DeepMind 的 Flash 3.7。很多人第一反应是把配置文件里的模型名改成flash-3.7,然后期待 agent 立刻变聪明。但在真实部署里,这个操作带来的常常不是惊喜,而是一句unknown model,或者一次看似成功、实际上没有调用任何工具的安静对话。
如果你正在部署 OpenClaw,或者已经在折腾它的安装教程,我建议你先停下来,把“模型接入”这件事放到整个 agent 框架里看。OpenClaw 不是一个普通的聊天客户端,它是一个有自己的工作区、执行审批、技能和记忆机制的代理运行时。你接什么模型只是给它换了一个推理核心,但手脚、记忆、工具权限这些零件还要另外配齐。
这篇文章不会只讲“怎么把 Flash 3.7 填进配置”。我想借这个提示,把 OpenClaw 从部署到配置、从单次对话到长期使用时会遇到的问题串一遍。尤其是那些安装教程里不会告诉你、但实际落地时一定会碰到的边界和坑。
1. 先搞明白:OpenClaw 到底是不是一个“聊天软件”
1.1 从配置目录反推它的工作方式
很多安装包用起来会生成一个隐藏目录,比如~/.openclaw。我建议大家装完之后别急着跑对话,先把这个目录当“黑匣子”打开看一遍。里面通常会出现几个关键部分:
workspace:agent 存放任务产物、脚本、临时文件的地方。exec-approvals.json:记录哪些命令允许执行、哪些需要审批。skills或类似目录:存放可复用的技能定义。active memory相关文件或目录:保存跨会话的长期记忆。runtime metadata相关信息:记录模型、会话、版本、调用参数。
只看这些结构就能明白,OpenClaw 的工作方式不是“用户问一句,模型答一句”。更像是一个代理拿到任务后,自主决定是否读取记忆、调用技能、读写工作区、执行命令,最终再把结果整理给你。
所以它不是一个聊天客户端,也是一个可以做事的工作流执行器。
1.2 模型接入不是“改个名字”那么简单
普通聊天软件接入 GPT、Claude、Gemini 这类模型,本质是换一个 API 入口,只要接口能通,对话就能进行。但 agent 框架要复杂得多:
- 模型需要理解工具调用的协议。
- agent 需要把模型的输出解析成可执行的技能或命令。
- 模型返回的格式稍有不同,行为就可能从“自动调用工具”退化成“给你一段建议文字”。
因此,标题里说“OpenClaw 提示可接入 Google DeepMind 的 Flash 3.7”,这里的意义并不只是模型列表里多了一行字。对于开发者来说,更值得关注的其实是:OpenClaw 已经支持把 Flash 3.7 当作一个可选的推理后端来调度,而调度背后涉及 provider、模型标识、上下文长度、工具调用能力和 API 兼容性等一系列配置。
如果忽略这些,只把模型名改掉,最可能出现的情况是:对话正常,但 agent 不会主动调用任何技能,或者直接报错告诉你这个模型不存在。模型接入,从来不是填一个名字就能完成的事。
2. 部署 OpenClaw 前,先把这三件事定下来
2.1 本地便携版、脚本安装、云端部署怎么选
从社区里的常见问题可以看到,OpenClaw 的安装方式很多:有人用本地便携包,有人在 Windows PowerShell 里跑安装脚本,也有人专门放到云服务器上部署。选择不同方案前,可以先问自己一个问题:你准备把它当玩具,还是当长期使用的工作工具?
- 本地便携包:适合第一次体验,下载解压就能跑,通常不用面对全局权限和环境变量冲突。缺点是你得自己管理升级。
- 脚本安装:适合想把命令行工具固化到系统里。但脚本会修改 shell 配置、生成目录、安装依赖,所以安装前最好先看完脚本内容。
- 云服务器部署:适合需要 24 小时在线、接微信或做定时任务等情况。但云服务器不止是“装完就行”,还涉及守护进程、日志轮转、密钥管理。
我的判断是:刚开始不要直接上云服务器,也不要一上来就配全套技能。先在本地跑通一个最小任务,确认你能看懂日志和配置结构,再决定要不要长期服务化。否则你会在一个还不熟悉的框架上,叠加一堆部署层问题。
2.2 环境前置条件别只看脚本颜色
安装教程里经常贴一段命令,看起来执行完就完事了。实际上 OpenClaw 这类 agent 运行时对运行环境有比较强的依赖。常见的坑包括:
- 用户目录是否可写。
~/.openclaw写不进去,后面所有配置都会失效。 - shell 权限是否足够。尤其安装到
/root/.openclaw或/home/xxx/.openclaw,权限不对会导致启动异常。 - 网络访问是否正常。你需要能正常访问所使用的模型 API 服务。
- 磁盘空间和日志。agent 长期运行后,工作区可能堆大量临时文件,日志也会增长。
更可靠的做法是:在安装前用最小命令确认操作系统、用户目录、依赖版本,然后按官方文档或安装脚本给出的要求逐项核对。很多人装到一半失败,不是脚本不行,而是系统里已经有一套冲突的运行时。
2.3 安装后第一次启动前的自检清单
一个可复用的习惯是:安装完成后,先不要问“怎么让它干活”,先做一轮自检。下面这张表可以作为参考:
| 检查项 | 判断标准 | 如果异常 |
|---|---|---|
| 配置文件目录 | ~/.openclaw或类似目录已生成 | 查看安装日志,检查用户权限 |
| 权限审批文件 | exec-approvals.json内容可读 | 先备份再迁移或重新初始化 |
| 默认模型配置 | 存在默认 LLM 字段且指向已支持的模型 | 先确认模型标识,不要留空白 |
| 工作区目录 | 能写入测试文件 | 检查磁盘和用户权限 |
| 启动日志 | 能输出 structured 日志或 runtime metadata | 重新检查依赖和命令路径 |
这一轮自检可以帮你把“配置问题”和“运行环境问题”分开。否则后面看到agent failed时,你会分不清是模型写错还是启动链路断了。
3. 接入 Google DeepMind Flash 3.7 的正确姿势
3.1 找到模型配置文件,而不是直接改别名
OpenClaw 的配置通常会放在用户目录下的配置文件中,但不同版本的结构可能不一样。最稳妥的方法是先查看当前版本的文档或运行配置相关命令,找到实际目录。
在配置里,你会发现 OpenClaw 并不一定直接写死模型名。它可能分两层:
- 底层定义 provider:比如 Google DeepMind、OpenAI、Anthropic 或本地方案。
- 上层定义一个默认模型:比如
default_llm: flash-3.7。 - 还会有一个“模型别名”的概念,让你可以用
main、fast、reasoning这样的名字代替真实模型名。
如果你只是想知道接 Flash 3.7 要用哪个字段,请先找到当前配置里 provider 和 model 的定义位置。不要在一个旧的配置文件里随便改模型名,因为你可能改的只是某个技能内部的一个变量。
3.2 接入前先确认三样,少一个都会让你怀疑人生
把 Flash 3.7 接进 OpenClaw,和把任意模型接进任意 agent 框架一样,至少要确认:
- 你手上的服务凭证确实有该模型的访问权限。有账号不等于所有模型都可用。
- 模型标识符要精确。模型名通常区分大小写,不同服务商还会加版本后缀。写
flash-3.7还是写google/flash-3.7,要以服务方文档为准。 - 服务端点和本地网络能通。agent 和模型服务之间是 API 调用,网络不通,配置再对也白搭。
如果 OpenClaw 支持通过环境变量注入密钥,你可以在模型配置里引用环境变量,而不是把密钥明文写进文件。下面是一个常见的“结构示意”,不代表某个具体版本:
{ "provider": "google_deepmind", "model": "flash-3.7", "api_key_env": "GOOGLE_DEEP_MIND_API_KEY", "base_url": "https://api.example.com/v1beta" }注意,上面只是帮助你理解字段结构。实际字段名是不是叫base_url、api_key_env,一定要以你安装的 OpenClaw 版本支持的结构为准。正确的步骤是:先打开官方文档或config示例,再看配置里已有的默认 provider,最后再改模型名。
3.3 配置多模型和默认模型切换
“接入 Flash 3.7”和“让 OpenClaw 默认使用 Flash 3.7”是两回事。当一个 agent 框架接入了多模型时,通常会有一张“路由表”:默认任务走哪一个模型、需要调用工具的任务走哪一个、轻量任务走哪一个。Flash 3.7 可以成为默认模型,也可以只是其中一个选项。
我建议按任务类型配置,而不是单一模型打天下:
- 默认聊天/总结:可以用响应更快的模型。
- 复杂指令拆解:可能需要工具调用更强的模型。
- 成本敏感任务:可以走便宜模型或本地模型。
- 固定技能内部调用:可以在技能定义里指定模型,不受全局默认影响。
在多个模型之间切换时,模型别名很有用。比如把某个模型统一命名为fast,后续模型升级时你只需要改映射关系,不需要把所有技能里的名字都改一遍。但这样做的代价是:当 agent 出现异常时,你很难从日志里一眼看出它到底用了哪个具体模型。所以别名叫得越抽象,运行时越要记录详细 metadata。
3.4 验证接入是否成功的三个信号
很多人在配置文件里改完,就默认接入成功了。实际上接入成功的最低标准不是“能聊天”,而是下面三个信号都正常:
- 返回正常回复。这是第一关。
- 工具调用能生效。如果 agent 需要执行命令或读取文件,观察它有没有真的调用。
- runtime metadata 里有这次请求的模型名、耗时、tokens。这能证明请求确实走了你配置的那个模型,而不是某个默认兜底。
如果你发现对话正常、工具没动作,问题不一定在 Flash 3.7,更可能在“tools 参数没有传对”或者“技能没有注册”。如果你发现工具也调用了,但结果很傻,再回来看模型配置和提示词都来得及。先把链路打通,再优化效果。
4. 接入之后,先别急着批量跑任务
4.1 工作区:模型再聪明也离不开输入输出目录
很多 agent 默认会把生成的文件放在 workspace 里。表面看这只是存储位置,实际上它直接影响长期记忆和项目管理。
比如你想用 OpenClaw 管理一个项目,每次任务都让它“去 workspace 里找上一个文件继续做”。如果 workspace 里文件命名是a.txt、b.txt、1、2,几轮之后 agent 自己也分不清哪个是最近的成果。这就像你让一个实习生找资料,但资料堆得像垃圾场一样,人再聪明也发挥不出来。
一开始就要用目录结构约束任务。按照项目名或时间线建立子目录,每次关键输出都写入固定位置。长期记忆能存多少,取决于内容是否结构化,而不只是“记忆窗口”有多大。
4.2 exec approvals:审批文件不是摆设
安装或运行时,你可能会看到类似这样的提示:
legacy exec approvals exist at /root/.openclaw/exec-approvals.json这通常表示系统检测到了旧版本的命令执行审批记录。看到这种提示,不要随手把文件删掉,也不要为了方便把所有命令都自动批准。先打开文件看里面记录了哪些允许执行的操作。
exec-approvals.json的价值是让 agent 不能随意执行任意命令,而是只能在白名单范围内操作。实际落地中,我建议把审批范围控制在三档:
- 第一档:只读操作。比如读取文件、查看目录。
- 第二档:工作区内写操作。比如在 workspace 里创建文件、修改文件。
- 第三档:工作区外操作。比如系统级安装命令、任意目录删除,这类最好保留人工审批,或者直接禁止。
很多人为了省事,安装完就把所有命令都加入自动执行名单。短期看确实少了弹窗,但长期用一定会遇到一次意外动作,到时再后悔就晚了。
4.3 接微信/Obsidian 之前先画清楚权限边界
社区里很多人想把 OpenClaw 接入微信或 Obsidian 做项目管理,这个方向很实际,但接入前要先把“边界”画清楚。否则会出现非常尴尬的场景:你只是想让 agent 帮你总结一篇笔记,它在不理解上下文的情况下把一个文件删掉,或者把一段内部文字格式化后发出去了。
接入外部工具时,至少做三件事:
- 明确 agent 能读哪些目录或会话。
- 明确 agent 能自动执行哪些动作。
- 明确不可触发的命令和路径黑名单。
比如接微信后,agent 能自动回复的指令集合,应该与它能操作本地文件的权限分离。你可以在大部分场景下只给它“阅读+总结”的权限,单独在某个技能或指令前缀下授予“写入”权限。这样即便指令理解出错,造成的损失也可控。
一句话总结:接入工具不是越多越好,每多一个入口,都要多一分权限约束。
5. 最常见的失败不是模型不行,而是配置没有过“四关”
5.1 真实报错:unknown model 可能发生在安装后的第一次启动
有同学反馈过这样一个现象:刚装完 OpenClaw,启动后 agent 直接失败,报错里写着:
agent failed before reply: unknown model: deepsee...这类报错通常会让人误以为安装没成功。但拆开看,原因很可能是配置里默认引用了一个不存在的模型名。模型名被截断或写错是常见原因,但也可能来自:
- 安装时填了一个旧版本模型标识。
- Windows 和 Linux 环境变量不一致。
- 某个技能配置内部硬编码了一个模型名。
.openclaw目录从别处拷贝过来,旧配置和新版本不兼容。
出现 unknown model 时,不要急着重装。先检查运行时读取的配置文件是不是你正在编辑的那一份,再查模型名是否完整、是否存在。很多“安装失败”其实是“配置不匹配”。
5.2 四关排查法:输入、模型名、环境权限、参数日志
我给这类问题整理了一个排查顺序,和常见的“看日志”不太一样。它先分层,再动手:
第一关:输入。你启动时的命令是什么?模型名是从哪里读出来的?命令行参数、环境变量、配置文件三者的优先级是否清楚?有时你改了配置,但启动命令里指定了另一个配置目录,结果永远跑的是老配置。
第二关:模型名。拿报错里的模型名去服务方文档里搜,确认格式是否完全一致。不要凭印象拼写。版本号、大小写、斜杠分隔符都可能是陷阱。
第三关:环境权限。API Key 是否注入?用户目录是否有写权限?网络是否通?证书过期也会导致请求失败,但报错可能显示成连接超时或模型不存在。
第四关:参数和日志。查看 OpenClaw 输出的 runtime metadata。多数框架会记录本次请求用了哪一个 provider、哪一个模型、上下文长度、耗时。如果这里显示“默认兜底模型”,说明你配置里的 Flash 3.7 没有被真正取用。
这个顺序不是随便排的。因为你最常遇到的模型问题,大概率不是模型本身坏掉,而是输入层读错了、模型名写偏了、环境变量没注入或参数里用了旧值。
5.3 几个典型场景的排查表
| 现象 | 要查的层 | 常见原因 |
|---|---|---|
启动就报unknown model | 模型名/配置来源 | 默认模型标识写错或拷贝了旧配置 |
| 启动正常,但一问就挂 | 环境权限/API 凭证 | Key 没注入、环境变量名不一致 |
| 能对话,但不会调用工具 | 参数/技能注册 | 当前模型不支持工具调用,或请求里没有 tools 字段 |
| 工具调用了,但结果很怪 | 记忆与工作区 | 上下文太长、记忆混乱、任务目录不清晰 |
| 响应非常慢,甚至超时 | 网络/模型服务 | 网络不稳或配置了超大上下文 |
表里的最后一列只是常见原因,不代表全部。排查时永远把“最可能的”和“最容易验证的”放在最前面。
6. 一个可持续使用 OpenClaw 的落地路线
6.1 先跑通一个最小业务场景
如果你想长期用 OpenClaw,而不是玩两天就删,我建议你从“最小业务场景”开始。所谓最小,不是“让它调用全部技能”,而是“让它每天帮你做一件可验证的小事”。
例如:
- 每天读取一个指定目录下的工作笔记。
- 生成一条 100 字以内的进展摘要。
- 写入另一个固定文件,作为日志。
这个场景足够小,但覆盖了读取文件、调用模型、写工作区三个核心动作。等你连续观察几天,确认输出稳定,再逐步加新能力。
不要一上来就接微信,也不要一开始就做多模型动态路由。先把一条链路跑得又直又稳,它才具备成为工作工具的基础。
6.2 再逐步加技能和记忆
技能有点像给 agent 提供的手册。每加一个新技能,最好先用单条指令验证,再做成可复用技能。
加技能时,要注意“技能不是提示词堆砌”。一个可用的技能至少包含:
- 明确的触发条件。
- 明确的输入要求。
- 明确的输出路径。
- 失败时的处理方式。
如果只是把一段提示词写进配置文件,不可控,也无法被后续任务引用。只有把动作、输入输出和错误处理都定义好,技能才有长期价值。
active memory 也一样。它不是无限聊天记录,而是你希望 agent 跨会话记住的结构化信息。使用时要克制,只保存真正影响长期行为的少量关键记忆,比如用户偏好、项目路径、常用命令。记忆太多无价值的碎碎念,只会让 agent 在处理任务时检索到一堆噪声。
6.3 最后按需服务化或上云
如果你使用频率很低,本地命令行启动就够了。如果你希望它定时执行任务、被手机访问或接入微信,再考虑服务化部署。
云服务器部署 OpenClaw 要额外处理四件事:
- 进程守护:agent 崩溃后能否自动重启。
- 日志轮转:长期运行日志会不会把磁盘占满。
- 密钥管理:API Key 不能直接写在配置文件里,应该用独立环境变量文件或密钥服务。
- 版本升级:OpenClaw 版本更新后,配置结构可能变化,需要同步调整。
云端部署的复杂度比本地高一个量级。可它的收益也很明显:你不再需要每次开着电脑才能用 agent,定时任务和外部消息接入会稳定很多。
所以在“上云”之前,先确认你已经把本地版本用熟了,知道哪些命令需要审批、哪些目录需要备份、哪些技能可以复用。否则云服务器只是把你本地的混乱,复制到一台永远在线的机器上。
OpenClaw 提示可接入 Google DeepMind 的 Flash 3.7,这件事本身只是整个 agent 工程化的一个小节点。真正值得关注的,是你怎么把模型接进来之后的路走通:先部署,再配置,然后验证工具调用,最后用权限和记忆让它长期稳定运行。
如果你想尝鲜,从一次简单对话开始就好。如果你想把它变成每天用的工具,那就先别急着让 agent 替你决定一切。把一个最小任务做稳,把权限边界划清楚,把日志看懂,这比追逐最新模型名更重要。