乐于分享
好东西不私藏

OpenClaw 生产化:权限、安全、沙箱与长期运行治理

OpenClaw 生产化:权限、安全、沙箱与长期运行治理

AI 推荐

适合读者:准备把 OpenClaw 长期运行起来,必须处理权限与风险边界的团队。

预计阅读:6 分钟

你将看到:

OpenClaw 默认是 personal assistant trust model,不是敌对多租户边界。

生产化核心是 trust boundary、pairing、tool policy、sandbox、SSRF 和审计。

能否回答“谁能用、能做什么、出事怎么看日志”才是成熟标志。

如果你只想自己本地玩一玩 OpenClaw,前面几篇已经够了。

但只要你准备把它长期开着、接入多个通道,甚至让别人也能和它互动,系统真正危险的时候往往不是“第一次装起来”,而是“它已经看起来很好用,所以你开始默认它可以长期在线”。

这时候安全和运维就不是附加项,而是主线。

这一篇不打算从一堆风险名词开始,而是先给你一个更实用的判断:

什么时候你的 OpenClaw 还只是实验系统,什么时候它才开始接近可长期运行。

一、先定本篇起点和完成标志

你的起点状态

1. 你已经能稳定运行 OpenClaw

2. 你可能已经接了真实通道,甚至有多个 agent

3. 你开始考虑长期在线、多人触达或更高风险工具

本篇完成标志

到最后,你至少应该能回答:

1. 你的 trust boundary 画在哪里

2. 谁能触达哪个 agent

3. 每个 agent 能做什么、不能做什么

4. 出问题后去哪里看日志、怎么止损

二、先给最重要的前提:OpenClaw 不是敌对多租户边界

官方安全文档一开头就给了一个必须先接受的前提:

OpenClaw 采用的是 personal assistant trust model,而不是 hostile multi-tenant security boundary。

翻译成工程语言就是:

它适合一个可信边界内的个人或同质团队使用

它不适合让互不信任、彼此对抗的多方共享同一个 gateway 或 agent

这一点如果一开始没想明白,后面所有权限设计都会错位。

三、先收紧一个最小安全基线

如果你今天只想先做一轮最小生产化收口,优先做这 4 件事:

1. Gateway 默认只绑定 loopback

2. DM 先用 pairing 或 allowlist,群聊默认 require mention

3. 高风险 agent 开 sandbox,并收紧 tool policy

4. 确认日志和 session transcript 的位置

这 4 件事没做完之前,不建议继续放大入口。

四、最重要的安全结论:先划 trust boundary,再谈智能

官方文档里反复强调一个思想:访问控制必须先于智能。

你应该优先决定:

1. 谁能给这个 Gateway 发消息

2. 哪些群聊可以触发它

3. 哪些 agent 拥有什么工具权限

4. 哪些入口可以接触到本地文件、shell、浏览器和节点设备

如果这些边界没先画清楚,再聪明的 Agent 也会变成风险放大器。

五、生产环境的第一条建议:默认只绑定 loopback

OpenClaw 默认绑定 127.0.0.1,这是非常正确的起点。

在你真正理解远程接入、鉴权、反向代理和 Tailscale 之前,不要急着把 Gateway 暴露到公网。文档里更推荐的远程方式是:

Tailscale / VPN

SSH tunnel

而不是简单把端口直接放开。

六、DM 与群聊的安全,不是同一个问题

OpenClaw 文档把这件事拆得很细,这很专业。

1. DM

更推荐 pairing 或 allowlist,而不是 open 模式。

2. 群聊

应该尽量启用 mention gating,也就是必须显式提到 bot 才触发。

为什么?因为群聊天然更容易出现:

prompt injection

误触发

社工式诱导

意外泄露内部路径、状态和内容

如果你在群里默认全量响应,那不是智能,是裸奔。

七、Multi-Agent 时代,安全不该只靠“自觉”

OpenClaw 现在已经支持 per-agent sandbox 与 tool policy,这使得你可以给不同 agent 明确分配不同访问级别。

文档里给出的典型模式很值得直接借鉴:

1. Personal agent

不开 sandbox

全权限

适合自己私用

2. Family / work agent

开启 sandbox

工具只保留 read 等只读能力

workspace 设为只读

3. Public agent

sandbox 打满

不给 filesystem / shell / browser / patch 等高风险工具

只保留消息相关能力

这才是生产系统里真正该做的权限分层。

八、不要把 workspace 当安全边界,真正的边界是 sandbox + tools

这是很多人最容易犯错的地方。

workspace 只是默认工作目录,不能替代安全隔离。真正有效的边界来自:

1. sandbox.mode

2. workspaceAccess

3. tools.allow

4. tools.deny

例如一个只读 family agent,可以配置成:

sandbox.mode: "all"

scope: "agent"

workspaceAccess: "ro"

只允许 read

拒绝 writeeditapply_patchexecbrowser

这时它才算接近一个受限 agent。

九、浏览器能力默认很强,SSRF 必须明确考虑

OpenClaw 文档还特别提到浏览器 SSRF policy。默认模型偏 trusted operator 模式,允许访问私网目标;如果你希望更严谨,应显式把:

browser.ssrfPolicy.dangerouslyAllowPrivateNetwork: false

再配上 hostname allowlist。

这个配置的意义在于:如果你的 agent 具备 browser 能力,却又会处理外部输入,那它就可能被诱导去访问你原本不希望触达的内网资源。

十、长期运行一定要把审计和事故响应当作日常机制

官方安全页给了很实用的审计与处置建议。

几个关键位置要记住:

Gateway 日志:/tmp/openclaw/openclaw-YYYY-MM-DD.log

session transcripts:~/.openclaw/agents/<agentId>/sessions/*.jsonl

当出现异常行为时,最基本的处置顺序应该是:

1. 停掉 Gateway 或相关 app

2. gateway.bind 收回 loopback

3. 暂时禁用高风险 DM / group 入口

4. 轮换 gateway token、remote token、模型和 channel 密钥

5. 回看日志和 transcript

6. 重新运行:

openclaw security audit --deep

这个命令不应该等出事才想起来跑,它应该成为日常检查的一部分。

十一、生产化不只是安全,还包括版本节奏管理

从最近几个 release notes 看,OpenClaw 迭代非常快,尤其在:

context engine / compaction

插件 hooks

多 agent routing

onboarding 与 auth

Web UI 和 channel 行为

这意味着生产环境不能永远停在一个版本不动,但也不能每次无脑追最新。更合理的做法是:

1. 关注 release notes

2. 先在测试环境验证 routing、hooks、security 相关改动

3. 再滚动更新生产实例

十二、最后的判断标准

什么时候你的 OpenClaw 才算接近生产可用?

不是“它今天能回我消息”,而是你能同时回答下面几个问题:

1. 谁能触达它

2. 哪些消息会路由到哪个 agent

3. 每个 agent 能做什么、不能做什么

4. 出问题后日志和会话记录去哪里看

5. 泄露风险出现时你怎么停机、怎么轮换密钥

这五个问题答不出来,OpenClaw 还只是实验系统。

十三、一句话总结

OpenClaw 真正进入生产阶段的标志,不是接了更多通道,也不是加了更多 Skill,而是你开始把它当成一个长期运行、受权限约束、可审计、可收敛风险的系统来管理。

到这个阶段,你运营的已经不是一个“会聊天的工具”,而是一套需要边界、权限和事故响应的在线系统。

参考链接

Security:
https://docs.openclaw.ai/gateway/security

Multi-Agent Routing:
https://docs.openclaw.ai/concepts/multi-agent

Gateway Architecture:
https://docs.openclaw.ai/concepts/architecture

GitHub Releases:
https://github.com/openclaw/openclaw/releases


这一篇属于 OpenClaw 系列的「深入」阶段。

上一篇:OpenClaw 插件开发:Plugin、Hook、Skill 三层扩展怎么分工

下一篇:本系列已到最后一篇。