本页内容
本页内容
FAQ
配置基础知识
配置基础
配置是什么格式?它在哪里?
OpenClaw 会从 $OPENCLAW_CONFIG_PATH 读取一个可选的 JSON5 配置(默认:~/.openclaw/openclaw.json)。如果文件缺失,它会使用相对安全的默认值,包括默认工作区 ~/.openclaw/workspace。
为什么我现在需要本地主机上的令牌?
OpenClaw 默认强制启用 gateway 认证,包括回环。若未配置显式认证路径,启动时会解析为 token 模式,并为该次启动生成仅运行时可用的 token,因此本地 WS 客户端必须进行认证。这会阻止其他本地进程调用 Gateway。
在新的环回启动时,网关在 /readyz 之前准备标准的同一用户 CLI 设备凭证,因此正常的 openclaw CLI 调用可以进行身份验证,而无需保留生成的令牌。其他客户端仍然需要明确的共享秘密或批准的设备配对。
当客户端需要在重启之间使用稳定的密钥时,请显式配置 gateway.auth.token、gateway.auth.password、OPENCLAW_GATEWAY_TOKEN 或 OPENCLAW_GATEWAY_PASSWORD。你也可以选择密码模式,或为支持身份感知的反向代理选择 trusted-proxy。对于开放的回环访问,请显式设置 gateway.auth.mode: "none"。openclaw doctor --generate-gateway-token 可随时生成 token。
修改配置后需要重启吗?
网关监视配置并支持热重载:gateway.reload.mode: "hybrid"(默认)热应用安全更改并重新启动关键更改。 off 禁用配置重新加载;早期的 hot 和 restart 模式已停用。大多数 tools.*、agents.* 策略、session.* 和 messages.* 更改会立即应用,根本不需要重新加载操作; gateway.* binding/port 更改需要重新启动。
如何启用网络搜索(和网络获取)?
web_fetch 无需 API key 即可运行。web_search 取决于你选择的提供商:
| 提供者 | 无需 key | 环境变量 |
|---|---|---|
| Brave | No | BRAVE_API_KEY |
| DuckDuckGo | 是(基于非官方 HTML-) | - |
| Exa | No | EXA_API_KEY |
| Firecrawl | No | FIRECRAWL_API_KEY |
| Gemini | No | GEMINI_API_KEY |
| Grok | 否(xAI OAuth 或 key) | XAI_API_KEY |
| Kimi | No | KIMI_API_KEY 或 MOONSHOT_API_KEY |
| MiniMax 搜索 | No | MINIMAX_CODE_PLAN_KEY、MINIMAX_CODING_API_KEY 或 MINIMAX_API_KEY |
| Ollama 网页搜索 | 本地:是(需要ollama signin);主办:无 |
主办:OLLAMA_API_KEY |
| Perplexity | No | PERPLEXITY_API_KEY 或 OPENROUTER_API_KEY |
| SearXNG | 是(自托管) | SEARXNG_BASE_URL |
| Tavily | No | TAVILY_API_KEY |
Grok 还可以复用模型认证中的 xAI OAuth(openclaw onboard --auth-choice xai-oauth)。
推荐:运行 openclaw configure --section web 并选择一个提供商。
各提供商特定的网页搜索配置位于 plugins.entries.<plugin>.config.webSearch.* 下。为兼容旧版,tools.web.search.* 的提供商路径仍会加载,但新配置中不应再使用。Firecrawl 的网页抓取后备配置位于 plugins.entries.firecrawl.config.webFetch.* 下。
- 白名单:添加
web_search/web_fetch/x_search,或者使用group:web同时允许这三者。 web_fetch默认启用。- 如果省略
tools.web.fetch.provider,OpenClaw 会从可用凭据中自动检测第一个可用的抓取后备提供商;官方 Firecrawl 插件提供该后备。 - 守护进程会从
~/.openclaw/.env(或服务环境)读取环境变量。
文档:Web tools。
config.apply 擦除了我的配置。我该如何恢复并避免这种情况?
config.apply 会替换整个配置;只提供部分对象会删除其他所有内容。
目前 OpenClaw 已尽量防止大多数意外覆盖:
- OpenClaw- 拥有的配置写入在写入之前验证完整的更改后配置。
- 无效或破坏性的OpenClaw-拥有的写入被拒绝并保存为
openclaw.json.rejected.*。 - 当整个结果验证时,Startup 可以使用符合条件的单文件配置中的固定规则迁移旧密钥,从而将先前的配置保留在
.bak环中。其他无效编辑停止启动;热重载会跳过无效编辑,而不重写openclaw.json。 openclaw doctor --fix拥有启动迁移之外的修复功能,可以恢复最后一次已知的良好状态,并将被拒绝的文件另存为openclaw.json.clobbered.*。
恢复方法:
- 查看
openclaw logs --follow中的Invalid config at、Config write rejected:或config reload skipped (invalid config)。 - 检查活动配置旁边最新的
openclaw.json.clobbered.*或openclaw.json.rejected.*。 - 运行
openclaw config validate和openclaw doctor --fix。 - 仅使用
openclaw config set或config.patch把需要的键复制回去。 - 没有最后一次已知的有效负载或被拒绝的有效负载:从备份恢复,或重新运行
openclaw doctor并重新配置 channels/models. - 如果出现意外丢失:带上你最后已知的配置或备份提交 bug。本地编码代理通常可以根据日志或历史重建可工作的配置。
避免这种情况:使用 openclaw config set 进行小更改,使用 openclaw configure 进行交互式编辑,使用 config.schema.lookup 来检查不熟悉的路径(返回浅模式节点和直接子摘要),使用 config.patch 进行部分 RPC 编辑 - 保留 config.apply 进行完整配置替换。面向代理的 gateway 运行时工具拒绝重写 tools.exec.ask / tools.exec.security,即使通过旧版 tools.bash.* 别名也是如此。
如何跨设备运行由专门工作人员组成的中央网关?
常见模式:one Gateway(例如 Raspberry Pi)加上 nodes 和 agents。
- Gateway(中心):负责 channels(Signal/WhatsApp)、路由、会话。
- 节点(设备):Macs/iOS/Android作为外设连接并公开本地工具,例如
system.run和camera; Mac 还可以在本机面板中呈现托管小部件。 - 代理(工作人员):针对特殊角色(例如操作与个人数据)的单独 brains/workspaces。
- Agents(worker):为特殊角色(例如运维 vs 个人数据)分离出的不同“大脑/工作区”。
- TUI:连接网关并交换机agents/sessions.
OpenClaw浏览器可以无头运行吗?
是的:
默认值为 false(有头模式)。无头模式更容易在某些站点触发反机器人检测(X/Twitter 常常会阻止无头会话)。它使用相同的 Chromium 引擎,并适用于大多数自动化;主要区别是没有可见的浏览器窗口(需要视觉效果时请使用截图)。参见 Browser。
如何使用Brave进行浏览器控制?
将 browser.executablePath 设置为 Brave 二进制文件(或任何基于 Chromium- 的浏览器)并重新启动网关。请参阅 Browser。