最初的六十秒:如果出现故障
深度探测
运行 Doctor(修复)
Gateway 网关快照(仅 WS)
快速开始和首次运行设置
首次运行问答 - 安装、引导设置、凭证路由、订阅、初始失败 - 位于 首次运行常见问题。什么是 OpenClaw?
用一段话说明 OpenClaw 是什么?
用一段话说明 OpenClaw 是什么?
价值主张
价值主张
- 你的设备,你的数据:在任何你想要的位置运行 Gateway 网关(Mac、Linux、VPS),并让工作区和会话历史保留在本地。
- 真实渠道,而不是 Web 沙箱:Discord/iMessage/Signal/Slack/Telegram/WhatsApp/等等,加上受支持平台上的移动语音和 Canvas。
- 模型无关:使用 Anthropic、MiniMax、OpenAI、OpenRouter 等,并支持按智能体路由和故障转移。
- 仅本地选项:运行本地模型,让所有数据都能留在你的设备上。
- 多 Agent 路由:按渠道、账号或任务拆分独立智能体,每个都有自己的工作区和默认值。
- 开源且可改造:无需供应商锁定即可检查、扩展和自托管。
我刚设置好,第一步应该做什么?
我刚设置好,第一步应该做什么?
OpenClaw 最常见的五个日常用例是什么?
OpenClaw 最常见的五个日常用例是什么?
- 个人简报:汇总你关心的收件箱、日历和新闻。
- 研究和起草:快速研究、摘要,以及邮件或文档的初稿。
- 提醒和后续跟进:由 cron 或 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.list[].skills 控制可见性。只有值得上游合并的编辑才应作为 PR 提交到仓库副本。我可以从自定义文件夹加载 Skills 吗?
我可以从自定义文件夹加载 Skills 吗?
~/.openclaw/openclaw.json 中的 skills.load.extraDirs 添加目录(在上述顺序中优先级最低)。clawhub 默认安装到 ./skills,OpenClaw 会在下一个会话中将其视为 <workspace>/skills。若要限制某些智能体的可见性,请搭配 agents.defaults.skills 或 agents.list[].skills。如何为不同任务使用不同模型或设置?
如何为不同任务使用不同模型或设置?
- Cron 作业:隔离作业可以按作业设置
model覆盖。 - 智能体:将任务路由到不同的智能体,这些智能体具有不同的默认模型、思考级别和流参数。
- 按需切换:
/model可随时切换当前会话模型。
agents.defaults.models["provider/model"].params 中,然后将特定智能体覆盖放在扁平的 agents.list[].params 中。不要在嵌套的 agents.list[].models["provider/model"].params 下重复相同模型;该路径用于按智能体的模型目录和运行时覆盖。见 Cron 作业、多 Agent 路由、配置、斜杠命令。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 = 无硬上限),以及按渠道覆盖 channels.discord.threadBindings.{enabled,idleHours,maxAgeHours}。channels.discord.threadBindings.spawnSessions 控制生成时自动绑定(默认 true)。文档:子智能体、Discord、配置参考、斜杠命令。子智能体已完成,但完成更新发到了错误位置或从未发布。我应该检查什么?
子智能体已完成,但完成更新发到了错误位置或从未发布。我应该检查什么?
- 完成模式的子智能体交付会优先使用已绑定线程或会话路由(如果存在)。
- 如果完成来源只携带渠道,OpenClaw 会回退到请求者会话的已存储路由(
lastChannel/lastTo/lastAccountId),因此直接交付仍可成功。 - 没有绑定路由且没有可用的已存储路由:直接交付可能失败,结果会回退到排队会话交付,而不是立即发布。
- 无效或过期目标也可能强制队列回退或导致最终交付失败。
- 如果子会话最后一条可见助手回复正好是
NO_REPLY/no_reply或ANNOUNCE_SKIP,OpenClaw 会有意抑制公告,而不是发布过期的早期进度。
openclaw tasks show <lookup>,其中 <lookup> 是任务 id、运行 id 或会话键。文档:子智能体、后台任务、会话工具。Cron 或提醒没有触发。我应该检查什么?
Cron 或提醒没有触发。我应该检查什么?
Cron 已触发,但没有向渠道发送任何内容。为什么?
Cron 已触发,但没有向渠道发送任何内容。为什么?
--no-deliver/delivery.mode: "none":预期不会有运行器回退发送。- 缺失或无效的公告目标(
channel/to):运行器跳过了出站投递。 - 渠道认证失败(
unauthorized、Forbidden):运行器尝试投递,但凭证阻止了它。 - 静默的隔离结果(仅
NO_REPLY/no_reply)会被视为有意不可投递,因此排队的回退投递也会被抑制。
message 工具直接发送。--announce 只控制运行器对智能体尚未自行发送的最终文本进行回退投递。调试:为什么隔离的 Cron 运行会切换模型或重试一次?
为什么隔离的 Cron 运行会切换模型或重试一次?
如何在 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.list[].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 上将 节点运行命令设为“始终询问”或“始终允许”。当节点上存在必需二进制文件时,OpenClaw 会将仅限 macOS 的 Skills 视为符合条件;智能体会通过 nodes 工具运行它们。使用“始终询问”时,在提示中批准“始终允许”会将该命令添加到允许列表。选项 C - 通过 SSH 代理 macOS 二进制文件(高级)。将 Gateway 网关保留在 Linux 上,但让必需的 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.list[].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 配置。记忆如何工作?
记忆如何工作?
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)。若要保持本地运行,请设置 agents.defaults.memorySearch.provider: "local"(GGUF/llama.cpp)。其他受支持的提供商:Bedrock、DeepInfra、Gemini(GEMINI_API_KEY 或 memorySearch.remote.apiKey)、GitHub Copilot、LM Studio、Mistral、Ollama、OpenAI 兼容接口和 Voyage。设置详情见 记忆 和 记忆搜索。这些内容在磁盘上的位置
与 OpenClaw 一起使用的所有数据都会保存在本地吗?
与 OpenClaw 一起使用的所有数据都会保存在本地吗?
OpenClaw 将数据存储在哪里?
OpenClaw 将数据存储在哪里?
$OPENCLAW_STATE_DIR 下(默认:~/.openclaw):| 路径 | 用途 |
|---|---|
$OPENCLAW_STATE_DIR/openclaw.json | 主配置(JSON5) |
$OPENCLAW_STATE_DIR/credentials/oauth.json | 旧版 OAuth 导入(首次使用时复制到认证配置文件) |
$OPENCLAW_STATE_DIR/agents/<agentId>/agent/auth-profiles.json | 认证配置文件(OAuth、API key、可选 keyRef/tokenRef) |
$OPENCLAW_STATE_DIR/secrets.json | file SecretRef 提供商的可选文件后端密钥载荷 |
$OPENCLAW_STATE_DIR/agents/<agentId>/agent/auth.json | 旧版兼容文件(静态 api_key 条目已清理) |
$OPENCLAW_STATE_DIR/credentials/ | 提供商状态(例如 whatsapp/<accountId>/creds.json) |
$OPENCLAW_STATE_DIR/agents/ | 每个智能体的状态(agentDir + 会话) |
$OPENCLAW_STATE_DIR/agents/<agentId>/sessions/ | 对话历史和状态(每个智能体) |
$OPENCLAW_STATE_DIR/agents/<agentId>/sessions/sessions.json | 会话元数据(每个智能体) |
~/.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"时,同主机 loopback 反向代理需要显式设置gateway.auth.trustedProxy.allowLoopback = true,并在gateway.trustedProxies中加入 loopback 条目。
为什么现在 localhost 也需要令牌?
为什么现在 localhost 也需要令牌?
gateway.auth.token、gateway.auth.password、OPENCLAW_GATEWAY_TOKEN 或 OPENCLAW_GATEWAY_PASSWORD。你也可以选择密码模式,或为身份感知反向代理选择 trusted-proxy。如需开放 loopback,请显式设置 gateway.auth.mode: "none"。openclaw doctor --generate-gateway-token 可随时生成令牌。更改配置后必须重启吗?
更改配置后必须重启吗?
gateway.reload.mode: "hybrid"(默认)会热应用安全更改,并针对关键更改重启。也支持 hot、restart 和 off。大多数 tools.*、agents.* 策略、session.* 和 messages.* 更改会立即生效,无需任何重载操作;gateway.* 绑定/端口更改需要重启。如何禁用有趣的 CLI 标语?
如何禁用有趣的 CLI 标语?
cli.banner.taglineMode:off:隐藏标语文本,但保留横幅标题/版本行。default:始终使用All your chats, one OpenClaw.。random:轮换有趣/季节性标语(默认行为)。- 如需完全不显示横幅,请设置环境变量
OPENCLAW_HIDE_BANNER=1。
如何启用 Web 搜索(和 Web 抓取)?
如何启用 Web 搜索(和 Web 抓取)?
web_fetch 无需 API key 即可工作。web_search 取决于你选择的提供商:| 提供商 | 无需 key | 环境变量 |
|---|---|---|
| Brave | 否 | BRAVE_API_KEY |
| DuckDuckGo | 是(非官方 HTML 方式) | - |
| Exa | 否 | EXA_API_KEY |
| Firecrawl | 否 | FIRECRAWL_API_KEY |
| Gemini | 否 | GEMINI_API_KEY |
| Grok | 否(xAI OAuth 或 key) | XAI_API_KEY |
| Kimi | 否 | KIMI_API_KEY 或 MOONSHOT_API_KEY |
| MiniMax Search | 否 | MINIMAX_CODE_PLAN_KEY、MINIMAX_CODING_API_KEY 或 MINIMAX_API_KEY |
| Ollama Web 搜索 | 是(需要 ollama signin) | - |
| Perplexity | 否 | PERPLEXITY_API_KEY 或 OPENROUTER_API_KEY |
| SearXNG | 是(自托管) | SEARXNG_BASE_URL |
| Tavily | 否 | TAVILY_API_KEY |
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并重新配置渠道/模型。 - 意外丢失:使用你的最近已知配置或备份提交 bug。本地编码智能体通常可以从日志或历史记录重建可用配置。
openclaw config set,交互式编辑使用 openclaw configure,检查不熟悉路径时使用 config.schema.lookup(返回浅层 schema 节点和直接子项摘要),部分 RPC 编辑使用 config.patch,仅将 config.apply 用于完整配置替换。面向智能体的 gateway 运行时工具即使通过旧版 tools.bash.* 别名,也会拒绝重写 tools.exec.ask / tools.exec.security。文档:配置、Configure、Gateway 故障排查、Doctor。如何跨设备运行一个带专用工作节点的中央 Gateway 网关?
如何跨设备运行一个带专用工作节点的中央 Gateway 网关?
- Gateway 网关(中央):拥有渠道(Signal/WhatsApp)、路由、会话。
- 节点(设备):Mac/iOS/Android 作为外设连接,并暴露本地工具(
system.run、canvas、camera)。 - 智能体(工作节点):为特殊角色提供独立大脑/工作区(例如运维与个人数据)。
- 子智能体:从主智能体派生后台工作以实现并行。
- TUI:连接到 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 上安装 + 登录:
- 在你的 Mac 上安装 + 登录,使用同一个 tailnet。
- 启用 MagicDNS,在 Tailscale 管理控制台中启用,让 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($OPENCLAW_STATE_DIR/.env)中的全局后备.env。
.env 文件都不会覆盖现有环境变量。提供商凭据键是工作区 .env 的例外:GEMINI_API_KEY、XAI_API_KEY 或 MISTRAL_API_KEY 等键(以及其他内置提供商认证环境变量)会从工作区 .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 环境。修复方法是将 token 放入 ~/.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,会话会自动重置吗?
session.reset.atHour,默认 4,0-23)滚动更新,基于当前会话的开始时间。也可以改用基于空闲时间的重置,设置 mode: "idle" 和 session.reset.idleMinutes,它会在一段不活动时间后使会话过期(基于最后一次真实交互,而不是 heartbeat/cron/exec 系统事件)。resetByType 支持 direct(旧版别名 dm)、group 和 thread。当未设置 session.reset/resetByType 块时,旧版顶层 session.idleMinutes 仍可作为空闲模式默认值的兼容别名使用。具有活跃的提供商所拥有 CLI 会话的会话,不会被隐式每日默认值截断。请参阅会话管理了解完整生命周期。有没有办法组成一个 OpenClaw 实例团队(一个 CEO 和许多智能体)?
有没有办法组成一个 OpenClaw 实例团队(一个 CEO 和许多智能体)?
为什么上下文会在任务中途被截断?如何防止?
为什么上下文会在任务中途被截断?如何防止?
- 让 bot 总结当前状态并写入文件。
- 在长任务前使用
/compact,切换主题时使用/new。 - 将重要上下文保存在工作区中,并让 bot 读回。
- 对长时间或并行工作使用子智能体,让主聊天保持更小。
- 如果这种情况经常发生,请选择上下文窗口更大的模型。
如何在保留安装的情况下完全重置 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”?
input 的 tool_use 块。通常意味着会话历史已过期或损坏(常见于长线程后,或工具/架构变更后)。修复:使用 /new(独立消息)开始一个新会话。为什么我每 30 分钟都会收到 heartbeat 消息?
为什么我每 30 分钟都会收到 heartbeat 消息?
heartbeat.every 时,默认每 1h 运行一次。可调优或禁用:HEARTBEAT.md 存在但实际上为空(只有空行、Markdown/HTML 注释、ATX 标题、围栏标记或空列表项占位),OpenClaw 会跳过 heartbeat 运行以节省 API 调用。如果文件缺失,heartbeat 仍会运行,由模型决定要做什么。每智能体覆盖使用 agents.list[].heartbeat。文档:Heartbeat。我需要向 WhatsApp 群组添加一个 “bot account” 吗?
我需要向 WhatsApp 群组添加一个 “bot account” 吗?
groupPolicy: "allowlist")。要将群组回复限制为只回复你:如何获取 WhatsApp 群组的 JID?
如何获取 WhatsApp 群组的 JID?
为什么 OpenClaw 在群组里不回复?
为什么 OpenClaw 在群组里不回复?
我可以创建多少个工作区和智能体?
我可以创建多少个工作区和智能体?
- 磁盘增长:会话和转录记录位于
~/.openclaw/agents/<agentId>/sessions/下。 - Token 成本:更多智能体意味着更多并发模型使用。
- 运维开销:每智能体认证 profiles、工作区和渠道路由。
agents.defaults.workspace),如果磁盘增长就修剪旧会话,并使用 openclaw doctor 发现零散工作区和 profile 不匹配。我可以同时运行多个 bot 或聊天(Slack)吗?应该如何设置?
我可以同时运行多个 bot 或聊天(Slack)吗?应该如何设置?
Models、故障转移和认证配置文件
模型问答 - 默认值、选择、别名、切换、故障转移、认证配置文件 - 位于 Models 常见问题。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 上(或接口已关闭),就没有可绑定的地址。修复:在该主机上启动 Tailscale,或切换到 gateway.bind: "loopback" / "lan"。tailnet 是显式设置;auto 会优先选择 loopback。使用 gateway.bind: "tailnet" 可进行仅 tailnet 绑定。我可以在同一主机上运行多个 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” / code 1008 是什么意思?
“invalid handshake” / code 1008 是什么意思?
connect 帧。其他任何内容都会以 code 1008(策略违规)关闭连接。常见原因:你在浏览器中打开了 HTTP URL,而不是使用 WS 客户端;使用了错误的端口/路径;或代理/隧道剥离了认证标头,或发送了非 Gateway 网关请求。修复:使用 WS URL(ws://<host>:18789,或通过 HTTPS 使用 wss://...),不要在普通浏览器标签页中打开 WS 端口,并在启用认证时在 connect 帧中包含令牌/密码。CLI/TUI 示例:日志和调试
日志在哪里?
日志在哪里?
/tmp/openclaw/openclaw-YYYY-MM-DD.log。通过 logging.file 设置稳定路径;通过 logging.level 设置文件日志级别;通过 --verbose 和 logging.consoleLevel 设置控制台详细程度。最快 tail:- macOS launchd stdout:
~/Library/Logs/openclaw/gateway.log(配置文件使用gateway-<profile>.log;stderr 会被抑制)。 - 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 网关已启动,但回复始终没有到达。我应该检查什么?
“Disconnected from gateway: no reason” - 现在怎么办?
“Disconnected from gateway: no reason” - 现在怎么办?
Telegram setMyCommands 失败。我应该检查什么?
Telegram setMyCommands 失败。我应该检查什么?
BOT_COMMANDS_TOO_MUCH:Telegram 菜单条目太多。OpenClaw 已经会裁剪到 Telegram 限制并使用更少命令重试,但某些菜单条目仍可能被丢弃。减少插件/skill/自定义命令,或在不需要菜单时禁用channels.telegram.commands.native。TypeError: fetch failed、Network request for 'setMyCommands' failed!或类似网络错误:在 VPS 上或位于代理之后时,请确认允许出站 HTTPS,并且api.telegram.org的 DNS 可用。
如何彻底停止然后启动 Gateway 网关?
如何彻底停止然后启动 Gateway 网关?
openclaw gateway run。文档:Gateway 网关服务运行手册。ELI5:openclaw gateway restart 与 openclaw gateway
ELI5:openclaw gateway restart 与 openclaw gateway
openclaw gateway restart 会重启后台服务(launchd/systemd)。openclaw gateway 会在此终端会话中前台运行 Gateway 网关。如果你已安装服务,请使用 gateway 子命令;一次性运行则使用裸前台命令。某些内容失败时最快获取更多详细信息的方式
某些内容失败时最快获取更多详细信息的方式
--verbose 启动 Gateway 网关以获得更多控制台详细信息,然后检查日志文件中的渠道认证、模型路由和 RPC 错误。媒体和附件
我的 skill 生成了图片/PDF,但没有发送任何内容
我的 skill 生成了图片/PDF,但没有发送任何内容
media、mediaUrl、path 或 filePath。请参阅 OpenClaw 助手设置 和 Agent 发送。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 以显示有风险的私信策略。提示注入是否只是公共 Bot 需要担心的问题?
提示注入是否只是公共 Bot 需要担心的问题?
- 使用只读或禁用工具的“阅读器”智能体来总结不受信任的内容
- 对启用工具的智能体关闭
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 隧道、令牌/密码认证,或配置正确的受信任代理);私信处于 pairing 或 allowlist 模式;群组加入允许列表,并且除非每个成员都受信任,否则需要提及触发;对读取不受信任内容的智能体拒绝或严格限定高风险工具(exec、browser、gateway、cron);在工具执行需要更小影响范围时启用沙箱隔离。没有认证的公共绑定、开启工具的开放私信/群组,以及暴露的浏览器控制,是需要优先修复的问题。详情:openclaw security audit。ClawHub Skills 和第三方插件安装安全吗?
ClawHub Skills 和第三方插件安装安全吗?
我的 Bot 应该拥有自己的电子邮件、GitHub 账户或电话号码吗?
我的 Bot 应该拥有自己的电子邮件、GitHub 账户或电话号码吗?
我可以让它自主处理我的短信吗?这样安全吗?
我可以让它自主处理我的短信吗?这样安全吗?
我可以为个人助手任务使用更便宜的模型吗?
我可以为个人助手任务使用更便宜的模型吗?
我在 Telegram 中运行了 /start,但没有收到配对代码
我在 Telegram 中运行了 /start,但没有收到配对代码
dmPolicy: "pairing" 时发送;/start 本身不会生成代码。检查待处理请求:dmPolicy: "open"。WhatsApp:它会给我的联系人发消息吗?配对如何工作?
WhatsApp:它会给我的联系人发消息吗?配对如何工作?
channels.whatsapp.selfChatMode。聊天命令、中止任务和“它不会停止”
如何阻止内部系统消息显示在聊天中?
如何阻止内部系统消息显示在聊天中?
verboseDefault: "on" 的 Bot 配置文件。文档:思考与 verbose,安全。如何停止/取消正在运行的任务?
如何停止/取消正在运行的任务?
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、wait、exit、interrupt、halt。常见的非英语触发词(法语、德语、西班牙语、中文、日语、印地语、阿拉伯语、俄语)也可用。对于由 exec 工具启动的后台进程,请让智能体运行:/ 开头的独立消息发送,但少数快捷方式(例如 /status)也可由允许列表发送者在行内使用。请参阅斜杠命令。如何从 Telegram 发送 Discord 消息?(“跨上下文消息被拒绝”)
如何从 Telegram 发送 Discord 消息?(“跨上下文消息被拒绝”)
为什么感觉机器人“忽略”了快速连续消息?
为什么感觉机器人“忽略”了快速连续消息?
/queue 选择活跃运行行为:steer(默认)- 在下一个模型边界引导活跃运行。followup- 将消息加入队列,并在当前运行结束后逐条运行。collect- 将兼容消息加入队列,并在当前运行结束后统一回复一次。interrupt- 中止当前运行并重新开始。
debounce:0.5s cap:25 drop:summarize。参见 命令队列 和 Steering queue。其他
使用 API key 时 Anthropic 的默认模型是什么?
使用 API key 时 Anthropic 的默认模型是什么?
ANTHROPIC_API_KEY(或在身份验证配置文件中存储 Anthropic API key)会启用身份验证,但实际的默认模型取决于你在 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 讨论。