很多 OpenClaw 用户装好之后发现一个问题:一旦关掉终端窗口,或者服务器断开 SSH,OpenClaw 就不再响应消息了——Telegram 机器人沉默,定时任务停止,一切都像断了电。

这个问题的根源就在 Gateway(网关进程)。搞懂 Gateway 是什么、怎么让它稳定运行,是从”能用”到”真正好用”的关键一步。

什么是 OpenClaw Gateway?

Gateway 是 OpenClaw 的核心调度进程,所有功能都依赖它运行:

  • 监听来自 Telegram、WhatsApp、Discord 等通讯平台的消息,将其转发给 AI 模型处理
  • 将 AI 模型的回复路由回对应的通讯平台
  • 驱动 Heartbeat 心跳机制按时执行定时任务
  • 管理所有 Skill 技能模块的调用
  • 维护各 Agent 会话的上下文状态

Gateway 默认监听本地端口 18789,控制面板(Control UI)和 CLI 工具都通过这个端口与它通信。

用一个类比来说:Gateway 就是 OpenClaw 的心脏。心脏停跳,一切停止;心脏跳动,一切运转。

Gateway 的两种运行模式

前台模式(调试用)

直接在终端运行 Gateway,进程日志实时输出到屏幕,关闭终端进程终止:

openclaw gateway --port 18789

这种模式只适合调试和测试,不适合生产使用。

守护进程模式(生产用)

将 Gateway 注册为系统后台服务,开机自启、崩溃自动重启、SSH 断开后继续运行。这是所有正式部署都应该采用的模式,在运行引导向导时加上 --install-daemon 参数即可完成注册:

openclaw onboard --install-daemon

在不同操作系统上,守护进程的实现机制不同:

  • macOS:注册为 launchd LaunchAgent,用户登录后自动启动
  • Linux:注册为 systemd 用户服务,配合 loginctl enable-linger 实现全天候运行

Gateway 的日常管理命令

掌握这几条命令,足以应对 Gateway 的所有日常操作:

# 查看运行状态(最常用的诊断命令)
openclaw gateway status

# 启动 Gateway
openclaw gateway start

# 停止 Gateway
openclaw gateway stop

# 重启 Gateway(修改配置后必须执行)
openclaw gateway restart

# 主动探测 Gateway 连通性
openclaw gateway probe

# 强制重新安装守护进程服务配置
openclaw gateway install --force
openclaw gateway restart

# 查看实时日志
openclaw logs --follow

openclaw gateway status 是日常最重要的命令,它会告诉你:

  • Gateway 进程是否在运行(running: true/false
  • RPC 探测是否通过(RPC probe: ok
  • 守护进程服务状态
  • 控制面板 Dashboard URL

健康状态的输出应同时显示 Runtime: runningRPC probe: ok

什么是 Heartbeat 心跳机制?

Heartbeat(心跳)是 Gateway 内置的主动触发机制,让 OpenClaw 能在无人操作的情况下自主完成任务。

默认情况下,Heartbeat 每 30分钟 触发一次。每次触发时,Gateway 会让 AI 读取工作区中的 HEARTBEAT.md 文件,判断其中列出的检查项是否需要执行动作。如果不需要,AI 返回 HEARTBEAT_OK,Gateway 静默丢弃;如果需要,AI 生成内容并推送给你。

这就是为什么 OpenClaw 能在你睡觉时主动给你发天气提醒、邮件摘要或价格预警——背后全是 Heartbeat 在驱动。

Heartbeat 与定时任务(Cron)的区别

对比维度 Heartbeat 心跳 Cron 定时任务
触发频率 每30分钟(可配置) 指定时间点(如每天8:00)
适合场景 轻量级持续监控、状态检查 重要的定时执行任务
推荐模型 轻量模型(成本低) 高质量模型(如 Claude Sonnet)
Token 消耗 较低(每次2-5K) 较高(完整会话上下文)
配置文件 HEARTBEAT.md openclaw.json 或 CLI 配置

配置 Heartbeat:编辑 HEARTBEAT.md

Heartbeat 的任务清单由工作区中的 HEARTBEAT.md 文件定义,路径通常为:

~/openclaw/workspace/HEARTBEAT.md

这是一个普通的 Markdown 文本文件,你可以用任何文本编辑器打开和修改。以下是一个实用的配置示例:

# Heartbeat 任务清单

## 邮件监控
检查未读邮件数量。
如果未读邮件超过5封,列出前3封的发件人和主题。
否则回复 HEARTBEAT_OK。

## 日程提醒
查看接下来2小时内是否有日历事件。
如果有,提醒我事件名称和开始时间。
否则回复 HEARTBEAT_OK。

## 天气检查
查询今日天气。
如有降雨或极端天气,发送提醒。
否则回复 HEARTBEAT_OK。

几个关键规则:

  • 每个检查项都应该有明确的”需要行动”和”不需要行动”两种结果分支
  • 不需要行动时,让 AI 回复 HEARTBEAT_OK——Gateway 会自动丢弃这类响应,不会推送给你
  • 需要行动时,AI 直接输出提醒内容,Gateway 将其推送到你的通讯平台
  • 任务越简单越好,Heartbeat 不适合处理复杂的多步骤工作流(那是 Cron 的用武之地)

手动触发一次 Heartbeat

配置完 HEARTBEAT.md 后,不需要等到下一个30分钟触发点,可以立即手动触发一次验证效果:

openclaw system event --text "立即执行一次心跳检查" --mode now

调整 Heartbeat 触发频率

默认的30分钟触发间隔可以在配置文件中修改。通过 CLI 设置:

# 改为每小时触发一次
openclaw config set agents.defaults.heartbeat.interval 3600

# 改为每15分钟触发一次(注意 Token 消耗会增加)
openclaw config set agents.defaults.heartbeat.interval 900

修改后重启 Gateway 使配置生效:

openclaw gateway restart

建议:频率越高,Token 消耗越多。对于大多数日常监控场景,30分钟到1小时是比较合理的间隔。如果使用轻量级模型(如 DeepSeek 或本地 Ollama 模型)执行 Heartbeat,可以适当提高频率而不担心成本。

降低 Heartbeat Token 消耗的技巧

Heartbeat 按频率持续运行,Token 成本是一个值得关注的问题。以下几个配置可以显著降低消耗:

① 使用隔离会话(isolatedSession)
让每次 Heartbeat 在独立会话中运行,不携带完整对话历史,Token 消耗可从约10万降至2000~5000:

openclaw config set agents.defaults.heartbeat.isolatedSession true

② 为 Heartbeat 单独配置轻量模型
在配置文件中为心跳任务指定比主对话更便宜的模型,如 DeepSeek 或本地 Ollama 模型:

openclaw config set agents.defaults.heartbeat.model "deepseek/deepseek-chat"

③ 设置 Heartbeat 活跃时间段
如果你只需要在工作时间接收提醒,可以配置 Heartbeat 仅在指定时间段内运行,避免深夜无效触发:

openclaw config set agents.defaults.heartbeat.activeHours "08:00-22:00"

Gateway 的高可用配置:pm2 方案

除了系统原生守护进程(launchd/systemd),pm2 是另一个广受欢迎的进程管理方案,特别适合需要更精细控制重启策略的用户:

# 安装 pm2
npm install -g pm2

# 用 pm2 启动 OpenClaw Gateway
pm2 start "openclaw gateway" --name openclaw-gateway

# 设置开机自启
pm2 startup
pm2 save

# pm2 常用管理命令
pm2 status          # 查看所有进程状态
pm2 logs openclaw-gateway  # 查看日志
pm2 restart openclaw-gateway  # 重启
pm2 stop openclaw-gateway     # 停止

pm2 的优势在于提供了更详细的进程统计信息(CPU 使用率、内存占用、重启次数、运行时长),以及更灵活的重启策略配置。

如何监控 Gateway 的健康状态?

对于长期运行的部署,建议建立定期健康检查习惯:

# 每次 SSH 登录后先检查状态
openclaw doctor

# 查看最近的日志有无异常
openclaw logs --follow

# Linux 下通过 systemd 查看服务状态
systemctl --user status openclaw-gateway

# Linux 下通过 journalctl 查看结构化日志
journalctl --user -u openclaw-gateway --since "1 hour ago"

如果 openclaw doctor 报告问题,尝试以下万能修复流程:

openclaw doctor --fix
openclaw gateway install --force
openclaw gateway restart

这个组合能解决约70%的 Gateway 问题,包括配置漂移、服务文件损坏等常见场景。

小结:Gateway 配置的核心原则

  • 始终使用守护进程模式,不要依赖前台运行
  • 网关地址绑定 127.0.0.1,绝不暴露在公网
  • Heartbeat 任务保持简洁,重任务交给 Cron
  • 为 Heartbeat 配置轻量模型,降低长期运行成本
  • 定期运行 openclaw doctor,提前发现问题
  • Linux VPS 用户记得 loginctl enable-linger,确保 SSH 断开后服务持续

想了解更多 Gateway 的高级配置选项,访问 OpenClaw官网中文版(通过浏览器翻译访问 openclaw.ai)或官方文档 docs.openclaw.ai

本文内容基于 OpenClaw 官方文档、crewclaw.com、milvus.io、yyyl.me 等公开资料整理,信息截至2026年3月28日。