出现故障时的最初六十秒
快速状态
可粘贴的报告(可安全分享)
守护进程 + 端口状态
深度探测
运行 Doctor(修复)
Gateway 快照(仅限 WS)
快速开始和首次运行设置
首次运行问答——安装、新手引导、身份验证路由、订阅、初始故障——请参阅首次运行常见问题。OpenClaw 是什么?
用一段话说明 OpenClaw 是什么?
用一段话说明 OpenClaw 是什么?
价值主张
价值主张
- 你的设备,你的数据:可在任何所需位置(Mac、Linux、VPS)运行 Gateway 网关,并将工作区和会话历史记录保留在本地。
- 真实渠道,而非 Web 沙箱:支持 Discord/iMessage/Signal/Slack/Telegram/WhatsApp 等,还可在支持的平台上使用移动端语音和 Canvas。
- 不受模型限制:使用 Anthropic、MiniMax、OpenAI、OpenRouter 等,并支持按智能体路由和故障转移。
- 仅本地选项:运行本地模型,使所有数据都能留在你的设备上。
- 多智能体路由:可按渠道、账户或任务划分不同智能体,每个智能体都有自己的工作区和默认设置。
- 开源且可定制:无需受制于供应商,即可检查、扩展和自行托管。
我刚完成设置,首先应该做什么?
我刚完成设置,首先应该做什么?
OpenClaw 最常见的五种日常用例是什么?
OpenClaw 最常见的五种日常用例是什么?
- 个人简报:汇总收件箱、日历以及你关注的新闻。
- 研究和起草:快速研究、生成摘要,以及撰写电子邮件或文档初稿。
- 提醒和跟进:由定时任务或 Heartbeat 驱动的提醒和检查清单。
- 浏览器自动化:填写表单、收集数据、重复执行 Web 任务。
- 跨设备协调:从手机发送任务,让 Gateway 网关在服务器上运行任务,然后在聊天中接收结果。
OpenClaw 能否帮助 SaaS 进行潜在客户开发、推广、广告和博客创作?
OpenClaw 能否帮助 SaaS 进行潜在客户开发、推广、广告和博客创作?
与 Claude Code 相比,OpenClaw 在 Web 开发方面有哪些优势?
与 Claude Code 相比,OpenClaw 在 Web 开发方面有哪些优势?
- 跨会话持久保留记忆和工作区。
- 多平台访问(Telegram、WhatsApp、TUI、WebChat)。
- 工具编排(浏览器、文件、调度、Hooks)。
- 始终在线的 Gateway 网关(在 VPS 上运行,可从任何位置交互)。
- 用于本地浏览器/屏幕/摄像头/Exec 的节点。
Skills 和自动化
如何在不弄脏代码仓库的情况下自定义 Skills?
如何在不弄脏代码仓库的情况下自定义 Skills?
~/.openclaw/skills/<name>/SKILL.md(或通过 ~/.openclaw/openclaw.json 中的 skills.load.extraDirs 添加文件夹)。优先级:<workspace>/skills -> <workspace>/.agents/skills -> ~/.agents/skills -> ~/.openclaw/skills -> 内置 -> skills.load.extraDirs,因此托管覆盖可以优先于内置 Skills,而无需修改 git。若要进行全局安装但只让部分智能体可见,请将共享副本保留在 ~/.openclaw/skills 中,并通过 agents.defaults.skills / agents.entries.*.skills 控制可见性。只有值得提交到上游的修改才应针对代码仓库副本发起 PR。可以从自定义文件夹加载 Skills 吗?
可以从自定义文件夹加载 Skills 吗?
~/.openclaw/openclaw.json 中的 skills.load.extraDirs 添加目录(在上述顺序中优先级最低)。clawhub 默认安装到 ./skills,OpenClaw 会在下一个会话中将其视为 <workspace>/skills。若要将可见性限制为特定智能体,请配合使用 agents.defaults.skills 或 agents.entries.*.skills。如何针对不同任务使用不同的模型或设置?
如何针对不同任务使用不同的模型或设置?
- 定时任务:隔离任务可以为每个任务设置
model覆盖。 - 智能体:将任务路由到使用不同默认模型、思考级别和流式参数的独立智能体。
- 按需切换:
/model可随时切换当前会话的模型。
agents.defaults.models["provider/model"].params,然后将智能体专属覆盖放入扁平的 agents.entries.*.params。不要在嵌套的 agents.entries.*.models["provider/model"].params 下重复添加同一模型;该路径用于按智能体配置模型目录和运行时覆盖。请参阅定时任务、多智能体路由、配置、斜杠命令。Bot 在执行繁重工作时卡住。如何卸载这类任务?
Bot 在执行繁重工作时卡住。如何卸载这类任务?
Discord 上绑定到线程的子智能体会话如何工作?
Discord 上绑定到线程的子智能体会话如何工作?
- 使用
sessions_spawn创建,并设置thread: true(也可设置mode: "session",以支持持久后续交互)。 - 或者使用
/focus <target>手动绑定。 /agents用于检查绑定状态。/session idle <duration|off>和/session max-age <duration|off>用于控制自动取消聚焦。/unfocus用于解除线程绑定。
session.threadBindings.enabled(全局开关)、session.threadBindings.idleHours(默认值为 24,0 表示禁用)、session.threadBindings.maxAgeHours(默认值为 0,即无硬性上限),以及用于创建时自动绑定的 session.threadBindings.spawnSessions(默认值为 true)。文档:子智能体、Discord、配置参考、斜杠命令。子智能体已完成,但完成更新发送到了错误的位置或从未发布。我应该检查什么?
子智能体已完成,但完成更新发送到了错误的位置或从未发布。我应该检查什么?
- 在存在绑定线程或对话路由时,完成模式的子智能体交付会优先使用该路由。
- 如果完成来源只携带渠道信息,OpenClaw 会回退到请求方会话中存储的路由(
lastChannel/lastTo/lastAccountId),因此仍可能成功直接交付。 - 既没有绑定路由,也没有可用的已存储路由:直接交付可能失败,结果会回退到排队的会话交付,而不是立即发布。
- 无效或过时的目标也可能导致回退到队列或最终交付失败。
- 如果子智能体最后一条可见的助手回复恰好是
NO_REPLY/no_reply或ANNOUNCE_SKIP,OpenClaw 会有意抑制通知,以免发布此前已过时的进度。
openclaw tasks show <lookup>,其中 <lookup> 是任务 ID、运行 ID 或会话键。文档:子智能体、后台任务、会话工具。定时任务或提醒未触发。我应该检查什么?
定时任务或提醒未触发。我应该检查什么?
定时任务已触发,但未向渠道发送任何内容。为什么?
定时任务已触发,但未向渠道发送任何内容。为什么?
--no-deliver/delivery.mode: "none":预期不会由运行器进行后备发送。- 通知目标缺失或无效(
channel/to):运行器跳过了出站投递。 - 渠道身份验证失败(
unauthorized、Forbidden):运行器尝试了投递,但凭据阻止了投递。 - 静默的隔离结果(仅含
NO_REPLY/no_reply)会被视为有意不投递,因此排队的后备投递也会被抑制。
message 工具直接发送。--announce 仅控制运行器对智能体尚未自行发送的最终文本进行后备投递。调试:为什么隔离的定时任务运行会切换模型或重试一次?
为什么隔离的定时任务运行会切换模型或重试一次?
如何在 Linux 上安装 Skills?
如何在 Linux 上安装 Skills?
openclaw skills 命令,或将 Skills 放入工作区;macOS Skills UI 在 Linux 上不可用。可在 https://clawhub.ai 浏览 Skills。openclaw skills install 会写入活动工作区的 skills/ 目录。添加 --global 可将其安装到共享的托管 Skills 目录,供所有本地智能体使用。仅在发布或同步你自己的 Skills 时,才安装单独的 clawhub CLI。使用 agents.defaults.skills 或 agents.entries.*.skills 可限定哪些智能体能看到共享 Skills。OpenClaw 能否按计划运行任务,或持续在后台运行任务?
OpenClaw 能否按计划运行任务,或持续在后台运行任务?
能否从 Linux 运行仅限 Apple macOS 的 Skills?
能否从 Linux 运行仅限 Apple macOS 的 Skills?
metadata.openclaw.os 和所需二进制文件限制,并且只有在 Gateway 网关主机上符合条件时才会加载。在 Linux 上,除非覆盖此限制,否则仅限 darwin 的 Skills(apple-notes、apple-reminders、things-mac)不会加载。支持以下三种模式:选项 A - 在 Mac 上运行 Gateway 网关(最简单)。在存在 macOS 二进制文件的主机上运行 Gateway 网关,然后从 Linux 以远程模式或通过 Tailscale 连接。由于 Gateway 网关主机是 macOS,Skills 会正常加载。选项 B - 使用 macOS 节点(无需 SSH)。在 Linux 上运行 Gateway 网关,配对一个 macOS 节点(菜单栏应用),并在 Mac 上将 Node Run Commands 设置为 “Always Ask” 或 “Always Allow”。当节点上存在所需二进制文件时,OpenClaw 会将仅限 macOS 的 Skills 视为符合条件;智能体通过 nodes 工具运行它们。使用 “Always Ask” 时,在提示中批准 “Always Allow” 会将该命令添加到允许列表。选项 C - 通过 SSH 代理 macOS 二进制文件(高级)。继续在 Linux 上运行 Gateway 网关,但让所需 CLI 二进制文件解析为在 Mac 上运行的 SSH 包装脚本,然后覆盖 Skill 以允许 Linux,使其保持符合条件。- 为二进制文件创建 SSH 包装脚本(示例:用于 Apple Notes 的
memo): - 将包装脚本放入 Linux 主机上的
PATH(例如~/bin/memo)。 - 覆盖 Skill 元数据(在工作区或
~/.openclaw/skills中)以允许 Linux: - 启动新会话,以刷新 Skills 快照。
你们是否提供 Notion 或 HeyGen 集成?
你们是否提供 Notion 或 HeyGen 集成?
- 自定义 Skill / 插件:最适合可靠的 API 访问(两者均提供 API)。
- 浏览器自动化:无需编写代码即可工作,但速度较慢且更脆弱。
skills/ 目录;使用 --global 可供所有本地智能体使用,或配置 agents.defaults.skills / agents.entries.*.skills 以限制可见性。某些 Skills 需要通过 Homebrew 安装的二进制文件;在 Linux 上,这意味着 Linuxbrew。请参阅 Skills、Skills 配置、ClawHub。如何让 OpenClaw 使用我现有的已登录 Chrome?
如何让 OpenClaw 使用我现有的已登录 Chrome?
user 浏览器配置文件,它通过 Chrome DevTools MCP 附加:openclaw 配置文件相比,existing-session / user 配置文件当前存在以下限制:click、type、hover、scrollIntoView、drag和select需要快照引用,而不是 CSS 选择器。- 上传钩子需要
ref或inputRef,每次一个文件,不支持 CSSelement。 responsebody、PDF 导出、下载拦截和批量操作仍需要托管浏览器路径。
沙箱隔离和记忆
Docker 功能似乎受限——如何启用完整功能?
Docker 功能似乎受限——如何启用完整功能?
能否使用一个智能体让私信保持私密,同时让群组公开并进行沙箱隔离?
能否使用一个智能体让私信保持私密,同时让群组公开并进行沙箱隔离?
agents.defaults.sandbox.mode: "non-main",使群组/渠道会话(非主键)在配置的沙箱后端中运行,而主私信会话仍在主机上运行。启用沙箱隔离后,Docker 是默认后端。通过 tools.sandbox.tools 限制沙箱隔离会话中可用的工具。设置演练:群组:个人私信 + 公开群组。关键参考:Gateway 配置。如何将主机文件夹绑定到沙箱中?
如何将主机文件夹绑定到沙箱中?
agents.defaults.sandbox.docker.binds 设置为 ["host:container:mode"](例如 "/home/user/src:/src:ro")。全局绑定和每智能体绑定会合并;当 scope: "shared" 时,会忽略每智能体绑定。任何敏感内容都应使用 :ro;绑定会绕过沙箱文件系统边界。OpenClaw 会同时根据规范化路径以及通过最深层现有祖先解析出的规范路径验证绑定源,因此即使最终路径段尚不存在,通过符号链接父目录逃逸的尝试也会以关闭方式失败。请参阅沙箱隔离和沙箱、工具策略和提升权限。记忆如何工作?
记忆如何工作?
memory/YYYY-MM-DD.md,整理后的长期笔记位于 MEMORY.md(仅限主会话/私密会话)。OpenClaw 还会在压缩对话摘要之前静默执行压缩前记忆刷新,提醒模型先写入持久笔记。仅当工作区可写时才会运行(只读沙箱会跳过);可使用 agents.defaults.compaction.memoryFlush.enabled: false 禁用。请参阅记忆。记忆总是忘记内容。如何让它记牢?
记忆总是忘记内容。如何让它记牢?
记忆会永久保留吗?有哪些限制?
记忆会永久保留吗?有哪些限制?
语义记忆搜索需要 OpenAI API key 吗?
语义记忆搜索需要 OpenAI API key 吗?
OPENAI_API_KEY 或 models.providers.openai.apiKey)。若要保持本地运行,请设置 memory.search.provider: "local"(GGUF/llama.cpp)。其他受支持的提供商包括:Bedrock、DeepInfra、Gemini(GEMINI_API_KEY 或 memory.search.remote.apiKey)、GitHub Copilot、LM Studio、Mistral、Ollama、OpenAI-compatible 和 Voyage。设置详情请参阅记忆和记忆搜索。数据在磁盘上的存储位置
与 OpenClaw 一起使用的所有数据都会保存在本地吗?
与 OpenClaw 一起使用的所有数据都会保存在本地吗?
OpenClaw 将数据存储在哪里?
OpenClaw 将数据存储在哪里?
$OPENCLAW_STATE_DIR 下(默认:~/.openclaw):~/.openclaw/agent/* 由 openclaw doctor 迁移。你的工作区(AGENTS.md、记忆文件、Skills 等)单独存放,通过 agents.defaults.workspace 配置(默认:~/.openclaw/workspace)。AGENTS.md / SOUL.md / USER.md / MEMORY.md 应该存放在哪里?
AGENTS.md / SOUL.md / USER.md / MEMORY.md 应该存放在哪里?
~/.openclaw。- 工作区(每个智能体):
AGENTS.md、SOUL.md、IDENTITY.md、USER.md、MEMORY.md、memory/YYYY-MM-DD.md,以及可选的HEARTBEAT.md。根目录下的小写memory.md仅作为旧版修复输入;当两者都存在时,openclaw doctor --fix可以将其合并到MEMORY.md中。 - 状态目录(
~/.openclaw):配置、渠道/提供商状态、身份验证配置文件、会话、日志、共享 Skills(~/.openclaw/skills)。
~/.openclaw/workspace,可进行配置:可以增大 SOUL.md 吗?
可以增大 SOUL.md 吗?
推荐的备份策略
推荐的备份策略
~/.openclaw 下的任何内容(凭据、会话、令牌、加密的机密载荷)。如需完整恢复,请分别备份工作区和状态目录。文档:Agent 工作区。如何彻底卸载 OpenClaw?
如何彻底卸载 OpenClaw?
智能体可以在工作区之外工作吗?
智能体可以在工作区之外工作吗?
agents.defaults.sandbox 或按智能体设置沙箱。若要将某个仓库设为默认工作目录,请将该智能体的 workspace 指向仓库根目录——OpenClaw 仓库本身只是源代码,因此除非你有意让智能体在其中工作,否则请将工作区与其分开。远程模式:会话存储在哪里?
远程模式:会话存储在哪里?
配置基础知识
配置采用什么格式?位于哪里?
配置采用什么格式?位于哪里?
$OPENCLAW_CONFIG_PATH(默认:~/.openclaw/openclaw.json)读取可选的 JSON5 配置。如果文件不存在,它会使用较为安全的默认值,其中默认工作区为 ~/.openclaw/workspace。我设置了 gateway.bind: "lan"(或 "tailnet"),但现在没有任何监听 / UI 显示未经授权
我设置了 gateway.bind: "lan"(或 "tailnet"),但现在没有任何监听 / UI 显示未经授权
gateway.auth.mode: "trusted-proxy"。gateway.remote.token/.password本身不会启用本地 Gateway 网关身份验证;只有当gateway.auth.*未设置时,本地调用路径才能使用gateway.remote.*作为回退。- 对于密码身份验证,请设置
gateway.auth.mode: "password"以及gateway.auth.password(或OPENCLAW_GATEWAY_PASSWORD)。 - 如果通过 SecretRef 显式配置的
gateway.auth.token/.password无法解析,则解析会以关闭方式失败(不会用远程回退掩盖问题)。 - 使用共享机密的 Control UI 设置通过
connect.params.auth.token或connect.params.auth.password进行身份验证(存储在应用/UI 设置中)。Tailscale Serve 或trusted-proxy等携带身份的模式改用请求标头——避免将共享机密放入 URL。 - 使用
gateway.auth.mode: "trusted-proxy"时,同主机回环反向代理需要显式设置gateway.auth.trustedProxy.allowLoopback = true,并在gateway.trustedProxies中添加回环条目。
为什么现在 localhost 上也需要令牌?
为什么现在 localhost 上也需要令牌?
gateway.auth.token、gateway.auth.password、OPENCLAW_GATEWAY_TOKEN 或 OPENCLAW_GATEWAY_PASSWORD。你也可以选择密码模式,或为身份感知反向代理选择 trusted-proxy。若要开放回环访问,请显式设置 gateway.auth.mode: "none"。openclaw doctor --generate-gateway-token 可随时生成令牌。更改配置后必须重启吗?
更改配置后必须重启吗?
gateway.reload.mode: "hybrid"(默认)会热应用安全更改,并在遇到关键更改时重启。也支持 hot、restart 和 off。大多数 tools.*、agents.* 策略、session.* 和 messages.* 更改会立即生效,完全不需要执行重载操作;gateway.* 绑定/端口更改需要重启。如何启用 Web 搜索(和 Web 获取)?
如何启用 Web 搜索(和 Web 获取)?
web_fetch 无需 API key 即可工作。web_search 取决于你选择的提供商:openclaw onboard --auth-choice xai-oauth)。推荐:openclaw configure --section web,然后选择一个提供商。plugins.entries.<plugin>.config.webSearch.* 下。旧版 tools.web.search.* 提供商路径仍会加载以保持兼容,但不应在新配置中使用。Firecrawl Web 获取回退配置位于 plugins.entries.firecrawl.config.webFetch.* 下。- 允许列表:添加
web_search/web_fetch/x_search,或使用group:web同时添加三者。 web_fetch默认启用。- 如果省略
tools.web.fetch.provider,OpenClaw 会根据可用凭据自动检测第一个就绪的获取回退提供商;官方 Firecrawl 插件提供该回退。 - 守护进程从
~/.openclaw/.env(或服务环境)读取环境变量。
config.apply 清空了我的配置。如何恢复并避免再次发生?
config.apply 清空了我的配置。如何恢复并避免再次发生?
config.apply 会替换整个配置;使用部分对象会删除其他所有内容。当前版本的 OpenClaw 可防止大多数意外覆盖:- OpenClaw 自身执行的配置写入会在写入前验证变更后的完整配置。
- 无效或具有破坏性的 OpenClaw 自身写入会被拒绝,并保存为
openclaw.json.rejected.*。 - 如果直接编辑导致启动或热重载失败,Gateway 网关会以关闭方式失败或跳过重载;它不会重写
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并重新配置渠道/模型。 - 如果发生意外丢失:使用上次已知的配置或备份提交错误报告。本地编码智能体通常可以根据日志或历史记录重建可用配置。
openclaw config set,交互式编辑使用 openclaw configure,检查不熟悉的路径时使用 config.schema.lookup(返回浅层 schema 节点和直接子项摘要),部分 RPC 编辑使用 config.patch;仅将 config.apply 用于完整配置替换。面向智能体的 gateway 运行时工具即使通过旧版 tools.bash.* 别名,也会拒绝重写 tools.exec.ask / tools.exec.security。文档:配置、配置设置、Gateway 网关故障排查、Doctor。如何运行一个中央 Gateway 网关,并在多台设备上使用专用工作节点?
如何运行一个中央 Gateway 网关,并在多台设备上使用专用工作节点?
OpenClaw 浏览器能以无头模式运行吗?
OpenClaw 浏览器能以无头模式运行吗?
false(有界面模式)。在某些网站上,无头模式更容易触发反机器人检查(X/Twitter 经常阻止无头会话)。它使用相同的 Chromium 引擎,适用于大多数自动化任务;主要区别是没有可见的浏览器窗口(使用截图查看视觉内容)。请参阅浏览器。如何使用 Brave 进行浏览器控制?
如何使用 Brave 进行浏览器控制?
browser.executablePath 设置为 Brave 二进制文件(或任何基于 Chromium 的浏览器)的路径,然后重启 Gateway 网关。请参阅浏览器。远程 Gateway 网关和节点
命令如何在 Telegram、Gateway 网关和节点之间传递?
命令如何在 Telegram、Gateway 网关和节点之间传递?
node.* -> 节点 -> Gateway 网关 -> Telegram节点看不到入站提供商流量;它们只接收节点 RPC 调用。如果 Gateway 网关托管在远程位置,我的智能体如何访问我的计算机?
如果 Gateway 网关托管在远程位置,我的智能体如何访问我的计算机?
node.* 工具(屏幕、摄像头、系统)。- 在始终在线的主机(VPS/家庭服务器)上运行 Gateway 网关。
- 将 Gateway 网关主机和你的计算机加入同一个 tailnet。
- 确保 Gateway WS 可访问(绑定到 tailnet 或使用 SSH 隧道)。
- 在本地打开 macOS 应用,并使用 Remote over SSH 模式(或直接使用 tailnet)连接,使其注册为节点。
- 批准节点:
system.run。仅配对你信任的设备;请查看安全。文档:节点、Gateway 网关协议、macOS 远程模式、安全。Tailscale 已连接,但我收不到回复。该怎么办?
Tailscale 已连接,但我收不到回复。该怎么办?
两个 OpenClaw 实例可以互相通信吗(本地 + VPS)?
两个 OpenClaw 实例可以互相通信吗(本地 + VPS)?
openclaw agent --message ... --deliver 调用另一个 Gateway 网关,并将消息发送到另一个 Bot 正在监听的聊天。如果其中一个 Bot 位于远程 VPS 上,请通过 SSH/Tailscale 将 CLI 指向该远程 Gateway 网关(请参阅远程访问):多个智能体需要使用独立的 VPS 吗?
多个智能体需要使用独立的 VPS 吗?
在个人笔记本电脑上使用节点,而不是从 VPS 通过 SSH 访问,有什么优势?
在个人笔记本电脑上使用节点,而不是从 VPS 通过 SSH 访问,有什么优势?
- 无需入站 SSH——节点通过设备配对主动连接到 Gateway WebSocket。
- 更安全的执行控制——
system.run受该笔记本电脑上的节点允许列表/审批限制。 - 更多设备工具——除
system.run外,节点还会公开canvas、camera和screen。 - 本地浏览器自动化——将 Gateway 网关保留在 VPS 上,但通过节点主机在本地运行 Chrome,或通过 Chrome MCP 连接本地 Chrome。
节点会运行 Gateway 网关服务吗?
节点会运行 Gateway 网关服务吗?
gateway、discovery 和托管插件表面后,需要完全重启。是否可以通过 API / RPC 应用配置?
是否可以通过 API / RPC 应用配置?
config.schema.lookup:在写入前检查一个配置子树及其浅层 schema 节点、匹配的 UI 提示和直接子项摘要。config.get:获取当前快照及哈希值。config.patch:安全的部分更新(大多数 RPC 编辑的首选方式);可行时热重载,必要时重启。config.apply:验证并替换完整配置;可行时热重载,必要时重启。- 面向智能体的
gateway运行时工具仍会拒绝重写tools.exec.ask/tools.exec.security;旧版tools.bash.*别名会规范化为相同的受保护路径。
首次安装所需的最小合理配置
首次安装所需的最小合理配置
如何在 VPS 上设置 Tailscale 并从我的 Mac 连接?
如何在 VPS 上设置 Tailscale 并从我的 Mac 连接?
- 在 VPS 上安装并登录:
- 使用 Tailscale 应用在你的 Mac 上安装并登录,加入同一 tailnet。
- 在 Tailscale 管理控制台中启用 MagicDNS,以便 VPS 拥有稳定的名称。
- 使用 tailnet 主机名:SSH
ssh user@your-vps.tailnet-xxxx.ts.net;Gateway 网关 WSws://your-vps.tailnet-xxxx.ts.net:18789。
如何将 Mac 节点连接到远程 Gateway 网关(Tailscale Serve)?
如何将 Mac 节点连接到远程 Gateway 网关(Tailscale Serve)?
- 确保 VPS 和 Mac 位于同一个 tailnet 中。
- 以远程模式使用 macOS 应用(SSH 目标可以是 tailnet 主机名)——它会通过隧道转发 Gateway 网关端口,并作为节点连接。
- 批准节点:
我应该在第二台笔记本电脑上安装,还是只添加一个节点?
我应该在第二台笔记本电脑上安装,还是只添加一个节点?
环境变量和 .env 加载
OpenClaw 如何加载环境变量?
OpenClaw 如何加载环境变量?
- 当前工作目录中的
.env。 - 来自
~/.openclaw/.env的全局回退文件.env($OPENCLAW_STATE_DIR/.env)。
.env 文件都不会覆盖现有环境变量。对于工作区 .env,提供商凭据和端点路由键属于例外:诸如 GEMINI_API_KEY、XAI_API_KEY、MISTRAL_API_KEY、任何以 _ENDPOINT 结尾的键(以及其他内置提供商的身份验证或端点环境变量)都会在工作区 .env 中被忽略,应放在进程环境、~/.openclaw/.env 或配置 env 中。配置中的内联环境变量仅在进程环境中缺失时应用:我通过服务启动了 Gateway 网关,但环境变量消失了。现在该怎么办?
我通过服务启动了 Gateway 网关,但环境变量消失了。现在该怎么办?
- 将缺失的键放入
~/.openclaw/.env,这样即使服务未继承你的 shell 环境,也能加载这些键。 - 启用 shell 导入(可选的便利功能):
这会运行你的登录 shell,并仅导入缺失的预期键(绝不覆盖)。对应的环境变量:
OPENCLAW_LOAD_SHELL_ENV=1、OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000。
我设置了 COPILOT_GITHUB_TOKEN,但模型状态显示“Shell env: off.”。为什么?
我设置了 COPILOT_GITHUB_TOKEN,但模型状态显示“Shell env: off.”。为什么?
openclaw models status 报告 shell 环境导入是否已启用。“Shell env: off”并不意味着你的环境变量缺失——它只表示 OpenClaw 不会自动加载你的登录 shell。如果 Gateway 网关作为服务(launchd/systemd)运行,它不会继承你的 shell 环境。解决方法是将令牌放入 ~/.openclaw/.env、启用 env.shellEnv.enabled: true,或将其添加到配置 env 中(仅在缺失时应用),然后重启 Gateway 网关并重新检查:OPENCLAW_GITHUB_TOKEN,然后是 COPILOT_GITHUB_TOKEN,再然后是 GH_TOKEN,最后是 GITHUB_TOKEN。请参阅 /concepts/model-providers 和 /environment。会话和多个聊天
如何开始全新的对话?
如何开始全新的对话?
/new 或 /reset 作为独立消息发送。请参阅会话管理。如果我从不发送 /new,会话会自动重置吗?
如果我从不发送 /new,会话会自动重置吗?
sessionId,并且随着对话增长,压缩会限制活跃模型上下文的大小。/new 和 /reset 仍然可用,或者你可以使用 mode: "daily" 或 mode: "idle" 选择启用自动重置。每日模式会在 Gateway 网关主机上的 session.reset.atHour(默认 4,0-23)切换;空闲模式使用自上次实际交互以来的 session.reset.idleMinutes,不包括 heartbeat/cron/exec 系统事件。resetByType 支持 direct、group 和 thread。Doctor 会将旧版 dm 条目迁移到 direct;该架构会拒绝 dm。当未设置 session.reset/resetByType 块时,旧版顶层 session.idleMinutes 仍可作为空闲模式默认值的兼容别名使用。有关完整生命周期,请参阅会话管理。有没有办法组建一支 OpenClaw 实例团队(一个 CEO 和多个智能体)?
有没有办法组建一支 OpenClaw 实例团队(一个 CEO 和多个智能体)?
为什么任务执行到一半时上下文被截断?如何防止这种情况?
为什么任务执行到一半时上下文被截断?如何防止这种情况?
- 让机器人汇总当前状态并将其写入文件。
- 在长任务开始前使用
/compact,切换主题时使用/new。 - 将重要上下文保存在工作区中,并让机器人重新读取。
- 对于耗时较长或并行进行的工作,使用子智能体,以减小主聊天的上下文。
- 如果经常发生这种情况,请选择上下文窗口更大的模型。
如何完全重置 OpenClaw 但保留其安装?
如何完全重置 OpenClaw 但保留其安装?
--profile / OPENCLAW_PROFILE),请重置每个状态目录(默认值为 ~/.openclaw-<profile>)。仅限开发环境的重置:openclaw gateway --dev --reset 会清除开发配置、凭据、会话和工作区。出现“context too large”错误时,如何重置或压缩?
出现“context too large”错误时,如何重置或压缩?
为什么会看到“LLM request rejected: messages.content.tool_use.input field required”?
为什么会看到“LLM request rejected: messages.content.tool_use.input field required”?
tool_use 块,但缺少必需的 input。这通常意味着会话历史记录已过期或损坏(常见于长对话之后,或工具/架构发生更改之后)。修复方法:使用 /new 开始一个新会话(作为独立消息发送)。为什么每隔 30 分钟就会收到 Heartbeat 消息?
为什么每隔 30 分钟就会收到 Heartbeat 消息?
heartbeat.every,则每 1h 运行一次。可以调整或禁用:HEARTBEAT.md 存在但实际上为空(仅包含空行、Markdown/HTML 注释、ATX 标题、代码围栏标记或空列表项占位符),OpenClaw 会跳过本次 Heartbeat 运行,以节省 API 调用。如果文件不存在,Heartbeat 仍会运行,由模型决定如何处理。每个智能体的覆盖配置使用 agents.entries.*.heartbeat。文档:Heartbeat。是否需要向 WhatsApp 群组添加“机器人账号”?
是否需要向 WhatsApp 群组添加“机器人账号”?
groupPolicy: "allowlist")之前,群组回复会被阻止。要将群组回复限制为仅你本人:如何获取 WhatsApp 群组的 JID?
如何获取 WhatsApp 群组的 JID?
为什么 OpenClaw 不在群组中回复?
为什么 OpenClaw 不在群组中回复?
可以创建多少个工作区和智能体?
可以创建多少个工作区和智能体?
- 磁盘增长:活跃会话和转录记录存储在每个 Agent 的 SQLite 数据库中;旧版/归档工件仍可能在
~/.openclaw/agents/<agentId>/sessions/下不断累积。 - Token 成本:Agent 越多,并发模型使用量越大。
- 运维开销:每个 Agent 都有各自的身份验证配置文件、工作区和频道路由。
agents.defaults.workspace);如果磁盘占用增长,请使用 openclaw sessions cleanup 清理旧会话(不要手动编辑活跃的 SQLite 状态);使用 openclaw doctor 查找遗留工作区和配置文件不匹配问题。我能否同时运行多个 Bot 或聊天(Slack),应该如何设置?
我能否同时运行多个 Bot 或聊天(Slack),应该如何设置?
模型、故障转移和身份验证配置文件
有关模型的问答(默认值、选择、别名、切换、故障转移和身份验证配置文件)请参阅模型常见问题。Gateway 网关:端口、“已在运行”和远程模式
Gateway 网关使用哪个端口?
Gateway 网关使用哪个端口?
gateway.port 控制 WebSocket + HTTP(Control UI、Hooks 等)共用的单个多路复用端口。优先级:为什么 openclaw gateway status 显示“Runtime: running”,但“Connectivity probe: failed”?
为什么 openclaw gateway status 显示“Runtime: running”,但“Connectivity probe: failed”?
openclaw gateway status 中的以下几行为准:Probe target:(探测使用的 URL)、Listening:(端口上实际绑定的内容)、Last gateway error:(进程仍在运行但端口未监听时的常见根本原因)。为什么 openclaw gateway status 显示的“Config (cli)”和“Config (service)”不同?
为什么 openclaw gateway status 显示的“Config (cli)”和“Config (service)”不同?
--profile / OPENCLAW_STATE_DIR 不匹配)。修复方法:从你希望服务使用的同一 --profile / 环境中运行:“another gateway instance is already listening”是什么意思?
“another gateway instance is already listening”是什么意思?
ws://127.0.0.1:18789),以此实施运行时锁。如果绑定因 EADDRINUSE 失败,就会抛出 GatewayLockError(“another gateway instance is already listening”)。修复方法:停止另一个实例、释放端口,或使用 openclaw gateway --port <port> 运行。如何以远程模式运行 OpenClaw(客户端连接到其他位置的 Gateway 网关)?
如何以远程模式运行 OpenClaw(客户端连接到其他位置的 Gateway 网关)?
gateway.mode: "remote" 并指向远程 WebSocket URL,也可以选择配置共享密钥远程凭据:openclaw gateway仅在gateway.mode为local时启动(或者你传入覆盖标志)。- macOS 应用会监视配置文件,并在这些值发生变化时实时切换模式。
gateway.remote.token/.password仅是客户端远程凭据;它们本身不会启用本地 Gateway 网关身份验证。
我设置了 gateway.bind tailnet,但它只监听环回接口
我设置了 gateway.bind tailnet,但它只监听环回接口
tailnet 绑定会从你的网络接口中选择一个 Tailscale IP(100.64.0.0/10)。如果计算机未连接到 Tailscale(或接口已关闭),Gateway 网关会回退到环回接口,而不会暴露其他网络接口。修复方法:在该主机上启动 Tailscale 并重启 Gateway 网关,或显式切换到 gateway.bind: "loopback" / "lan"。tailnet 是显式设置;auto 优先使用环回接口。使用 gateway.bind: "tailnet" 可将非环回暴露限制在 Tailnet 内,同时保留必需的同一主机 127.0.0.1 监听器。能否在同一主机上运行多个 Gateway 网关?
能否在同一主机上运行多个 Gateway 网关?
OPENCLAW_CONFIG_PATH、OPENCLAW_STATE_DIR、agents.defaults.workspace 和唯一的 gateway.port。建议:每个实例使用 openclaw --profile <name> ...(自动创建 ~/.openclaw-<name>);每个配置文件的配置使用唯一的 gateway.port(手动运行时可使用 --port);并通过 openclaw --profile <name> gateway install 为每个配置文件创建服务。配置文件还会为服务名称添加后缀:launchd ai.openclaw.<profile>、systemd openclaw-gateway-<profile>.service、Windows OpenClaw Gateway (<profile>)。不带限定符的 openclaw-gateway systemd 单元仅用于默认配置文件;重命名前的旧版 systemd 单元名称 clawdbot-gateway 会自动迁移。完整指南:多个 Gateway 网关。“invalid handshake”/代码 1008 是什么意思?
“invalid handshake”/代码 1008 是什么意思?
connect 帧。任何其他消息都会导致连接以代码 1008(违反策略)关闭。常见原因:你在浏览器中打开了 HTTP URL,而不是使用 WS 客户端;使用了错误的端口/路径;或者代理/隧道移除了身份验证标头或发送了非 Gateway 网关请求。修复方法:使用 WS URL(ws://<host>:18789,或通过 HTTPS 使用 wss://...);不要在普通浏览器标签页中打开 WS 端口;启用身份验证时,在 connect 帧中包含 Token/密码。CLI/TUI 示例:日志和调试
日志在哪里?
日志在哪里?
/tmp/openclaw/openclaw-YYYY-MM-DD.log,命名配置文件使用 /tmp/openclaw/openclaw-<profile>-YYYY-MM-DD.log。通过 logging.file 设置稳定路径;通过 logging.level 设置文件日志级别;通过 --verbose 和 logging.consoleLevel 设置控制台详细程度。最快的实时查看方式:- macOS launchd 标准输出:
~/Library/Logs/openclaw/gateway.log(配置文件使用gateway-<profile>.log;标准错误输出会被抑制)。 - Linux:
journalctl --user -u openclaw-gateway[-<profile>].service -n 200 --no-pager。 - Windows:
schtasks /Query /TN "OpenClaw Gateway (<profile>)" /V /FO LIST。
如何启动/停止/重启 Gateway 网关服务?
如何启动/停止/重启 Gateway 网关服务?
openclaw gateway --force 可以重新占用该端口。参阅 Gateway 网关。我在 Windows 上关闭了终端——如何重启 OpenClaw?
我在 Windows 上关闭了终端——如何重启 OpenClaw?
openclaw gateway run。3) 原生 Windows CLI/Gateway 网关:直接在 Windows 中运行。openclaw gateway run。文档:Windows、Gateway 网关服务运行手册。Gateway 网关已启动,但始终收不到回复。应该检查什么?
Gateway 网关已启动,但始终收不到回复。应该检查什么?
"已断开与 Gateway 网关的连接:无原因"——现在该怎么办?
"已断开与 Gateway 网关的连接:无原因"——现在该怎么办?
Telegram setMyCommands 失败。我应该检查什么?
Telegram setMyCommands 失败。我应该检查什么?
BOT_COMMANDS_TOO_MUCH:Telegram 菜单中的条目过多。OpenClaw 已经会将条目裁剪到 Telegram 的限制以内,并使用更少的命令重试,但仍可能丢弃一些菜单条目。请减少插件/技能/自定义命令,或者在不需要菜单时禁用channels.telegram.commands.native。TypeError: fetch failed、Network request for 'setMyCommands' failed!或类似网络错误:如果在 VPS 上或代理之后,请确认允许出站 HTTPS,并且api.telegram.org的 DNS 解析正常。
如何彻底停止再启动 Gateway 网关?
如何彻底停止再启动 Gateway 网关?
openclaw gateway run。文档:Gateway 网关服务运行手册。简单解释:openclaw gateway restart 与 openclaw gateway 的区别
简单解释:openclaw gateway restart 与 openclaw gateway 的区别
openclaw gateway restart 重启后台服务(launchd/systemd)。openclaw gateway 在当前终端会话中以前台方式运行 Gateway 网关。如果你安装了服务,请使用 gateway 子命令;如果只需临时运行一次,请直接以前台方式运行。出现故障时获取更多详细信息的最快方法
出现故障时获取更多详细信息的最快方法
--verbose 启动 Gateway 网关,以便在控制台中查看更多详细信息,然后检查日志文件中的渠道身份验证、模型路由和 RPC 错误。媒体和附件
我的技能生成了图像/PDF,但没有发送任何内容
我的技能生成了图像/PDF,但没有发送任何内容
media、mediaUrl、path 或 filePath 等结构化媒体字段。请参阅 OpenClaw 助手设置和智能体发送。tools.fs.workspaceOnly=true 将本地路径发送限制为工作区、临时/媒体存储区和经沙箱验证的文件;tools.fs.workspaceOnly=false(默认)允许结构化本地媒体发送使用智能体已经能够读取的主机本地文件,适用于媒体和安全的文档类型(图像、音频、视频、PDF、Office 文档,以及经过验证的文本文件,如 Markdown/MD、TXT、JSON、YAML/YML)。这并不是秘密扫描器——只要扩展名和内容验证匹配,就可以附加智能体可读取的 secret.txt 或 config.json。请将敏感文件放在智能体可读路径之外,或者保留 tools.fs.workspaceOnly=true,以便对本地路径发送进行更严格的限制。请参阅图像。安全和访问控制
允许 OpenClaw 接收入站私信是否安全?
允许 OpenClaw 接收入站私信是否安全?
- 支持私信的渠道默认采用配对行为:未知发送者会收到配对码,其消息不会被处理。使用
openclaw pairing approve --channel <channel> [--account <id>] <code>批准。待处理请求上限为每个渠道 3 个;如果未收到配对码,请检查openclaw pairing list --channel <channel> [--account <id>]。 - 公开开放私信需要明确选择启用(
dmPolicy: "open"和允许列表"*")。
openclaw doctor 以发现有风险的私信策略。提示词注入只是公共机器人需要担心的问题吗?
提示词注入只是公共机器人需要担心的问题吗?
- 使用只读或禁用工具的“阅读器”智能体来总结不可信内容
- 对于启用了工具的智能体,保持关闭
web_search/web_fetch/browser - 也要将解码后的文件/文档文本视为不可信内容:OpenResponses
input_file和媒体附件提取都会使用明确的外部内容边界标记包裹提取的文本,而不是直接传递原始文件文本 - 启用沙箱隔离,并使用严格的工具允许列表
OpenClaw 使用 TypeScript/Node 而非 Rust/WASM,是否因此更不安全?
OpenClaw 使用 TypeScript/Node 而非 Rust/WASM,是否因此更不安全?
openclaw security audit --deep。详情:安全、沙箱隔离。我看到有关 OpenClaw 实例暴露的报告。应该检查什么?
我看到有关 OpenClaw 实例暴露的报告。应该检查什么?
loopback,或仅通过经过身份验证的私有访问方式暴露(tailnet、SSH 隧道、token/密码身份验证,或正确配置的可信代理);私信采用 pairing 或 allowlist 模式;群组使用允许列表,并要求提及后才响应,除非每位成员都可信;对于会读取不可信内容的智能体,拒绝使用高风险工具(exec、browser、gateway、cron)或严格限制其权限范围;在执行工具时如需缩小影响范围,则启用沙箱隔离。应优先修复的问题包括:未经身份验证的公开绑定、启用了工具的开放私信/群组,以及暴露的浏览器控制。详情:openclaw security audit。安装 ClawHub 技能和第三方插件安全吗?
安装 ClawHub 技能和第三方插件安全吗?
我的机器人是否应该使用独立的电子邮件、GitHub 账户或电话号码?
我的机器人是否应该使用独立的电子邮件、GitHub 账户或电话号码?
我可以让它自主处理我的短信吗?这样安全吗?
我可以让它自主处理我的短信吗?这样安全吗?
我可以使用更便宜的模型来执行个人助手任务吗?
我可以使用更便宜的模型来执行个人助手任务吗?
我在 Telegram 中运行了 /start,但没有收到配对码
我在 Telegram 中运行了 /start,但没有收到配对码
dmPolicy: "pairing" 时,才会发送配对码;仅执行 /start 不会生成配对码。检查待处理请求:dmPolicy: "open"。WhatsApp:它会向我的联系人发送消息吗?配对如何运作?
WhatsApp:它会向我的联系人发送消息吗?配对如何运作?
channels.whatsapp.selfChatMode。聊天命令、中止任务和“它停不下来”
如何停止在聊天中显示内部系统消息?
如何停止在聊天中显示内部系统消息?
如何停止/取消正在运行的任务?
如何停止/取消正在运行的任务?
stop、stop action、stop current action、stop run、stop current run、stop agent、stop the agent、stop openclaw、openclaw stop、stop don't do anything、stop do not do anything、stop doing anything、do not do that、please stop、stop please、abort、esc、exit、interrupt、halt。常见的非英语触发词(法语、德语、西班牙语、中文、日语、印地语、阿拉伯语、俄语)也有效。对于由 Exec 工具启动的后台进程,让智能体运行:/ 开头的独立消息发送,但少数快捷方式(如 /status)也可由允许列表中的发送者在消息内使用。请参阅斜杠命令。如何从 Telegram 发送 Discord 消息?(“Cross-context messaging denied”)
如何从 Telegram 发送 Discord 消息?(“Cross-context messaging denied”)
为什么感觉 Bot 会“忽略”快速连续发送的消息?
为什么感觉 Bot 会“忽略”快速连续发送的消息?
/queue 选择活动运行的行为:steer(默认)- 在下一个模型边界引导活动运行。followup- 将消息加入队列,并在当前运行结束后逐条运行。collect- 将兼容的消息加入队列,并在当前运行结束后统一回复一次。interrupt- 中止当前运行并重新开始。
debounce:0.5s cap:25 drop:summarize。请参阅命令队列和Steering queue。其他
使用 API 密钥时,Anthropic 的默认模型是什么?
使用 API 密钥时,Anthropic 的默认模型是什么?
ANTHROPIC_API_KEY(或在身份验证配置文件中存储 Anthropic API 密钥)会启用身份验证,但实际的默认模型取决于你在 agents.defaults.model.primary 中的配置(例如 anthropic/claude-sonnet-4-6 或 anthropic/claude-opus-4-6)。No credentials found for profile "anthropic:default" 表示 Gateway 网关无法在运行中智能体的预期 auth-profiles.json 中找到 Anthropic 凭据。仍未解决?请在 Discord 中提问,或发起 GitHub 讨论。