乐于分享
好东西不私藏

OpenClaw 安全指南(二·入口篇):谁能跟你的 AI 说话?

OpenClaw 安全指南(二·入口篇):谁能跟你的 AI 说话?

这是「OpenClaw 安全指南」系列的第 2 篇。上一篇我们锁好了 Gateway 大门,这篇解决下一个问题:门开了之后,谁能进来?进来之后能干什么?

适用版本:OpenClaw ≥ 2026.3.2(推荐 2026.3.31+)

Gateway 绑定和 token 解决的是”网络层谁能连上来”的问题。但 OpenClaw 还有一层更细的控制:谁能跟 AI 对话、对话时能用哪些工具、在群里怎么表现

1. DM 配对流程

1.1 配对流程说明

在讲配对流程之前,先分清两个概念:

📱 通道消息(Channel):

通过 Telegram、Discord、微信等聊天平台给 AI 发消息–就像给朋友发私聊。这种场景需要配对机制来控制谁能访问 AI。💻 控制面板(Dashboard):你自己登录的 Web 管理页面–这是 AI 的”家”,管理员天然拥有完全控制权,不需要配对。

接下来我们说的是通道消息场景。你可能听过”DM”这个词–DM = Direct Message(私聊),就是你和 AI 一对一的对话(类似微信私聊,不是群聊)。OpenClaw 用配对机制来控制谁能私聊你的 AI。

流程很简单:

  1. 有人第一次私聊你的 AI(比如在 Telegram 给 Bot 发消息,Bot 就是”机器人”–在聊天平台里自动运行、响应消息的 AI 程序)
  2. AI 检查 dmPolicy 配置
  3. 如果是 pairing(默认),AI 会拒绝未配对的用户
  4. 管理员(你)通过命令批准配对
  5. 配对完成,该用户可以正常私聊

为什么需要配对? 因为私聊是一对一的,AI 会把对方当成”主人”来响应。如果谁都能私聊你的 AI,那任何人都能让它执行命令、读取文件。想象一下:你的 AI 助手连接了你的邮箱和日历,陌生人发条消息就能读取你的邮件–这就是为什么需要配对这道”门禁”。

1.2 配置示例

DM 策略在各通道的配置中设置,也可以设全局默认值:

{  "channels": {    "defaults": {      "dmPolicy": "pairing"    },    "telegram": {      "dmPolicy": "pairing",      "allowFrom": ["tg:123456789"]    },    "discord": {      "dmPolicy": "pairing"    }  }}
配置项
说明
引入版本
channels.<provider>.dmPolicy pairing
需要配对码审批才能 DM(默认,推荐)
2026.1.8
channels.<provider>.dmPolicy allowlist
只有 allowFrom 名单里的人能 DM
2026.1.8
channels.<provider>.dmPolicy open
任何人都能 DM(危险,需配合 allowFrom: ["*"])
2026.1.8
channels.<provider>.dmPolicy disabled
完全禁止 DM
2026.1.8
💡 <provider> 代表具体的通道名称(如 telegramdiscord,替换掉尖括号部分)–比如 Telegram 就写成 channels.telegram.dmPolicy,Discord 就写成 channels.discord.dmPolicy。实际配置时把尖括号部分替换掉。

1.3 管理配对

# 查看待审批的配对请求openclaw pairing list <provider># 批准一个配对请求(输入对方收到的配对码)openclaw pairing approve <provider> <pairing-code>
💡 配对码 1 小时内有效,每个通道最多同时有 3 个待审批请求。

2. 会话隔离模式

2.1 main vs per-channel-peer

会话隔离决定了不同用户、不同频道的对话是否共享上下文

模式
行为
举例
适用场景
main
所有对话共享同一个会话
张三和李四的消息 AI 都能看到,上下文混在一起
个人单用户使用
per-peer
按发送者隔离,跨通道共享
张三在 Telegram 和 Discord 是同一个对话
多用户、单通道
per-channel-peer
每个频道+用户组合独立会话
张三在 #general 和 #random 是两个独立对话
多用户/多频道(推荐)
per-account-channel-peer
每个账号+频道+用户独立
适合同一平台多 Bot 账号场景
多账号部署

main 模式的风险:如果你在 DM 里让 AI 帮你处理了敏感信息,然后别人在群里 @AI,AI 可能会”记得”你的敏感信息并泄露出去。

推荐:只要有超过一个人可能跟 AI 说话,就用 per-channel-peer

2.2 配置示例

{  "session": {    "dmScope": "per-channel-peer"  }}
配置项
说明
引入版本
session.dmScope main
所有 DM 共享主会话(单用户时可用,配置文件默认值)
2026.1.15
session.dmScope per-peer
按发送者隔离,跨通道共享
2026.1.15
session.dmScope per-channel-peer
每个通道+用户组合独立会话(推荐,onboarding 向导默认设为此值)
2026.1.15
session.dmScope per-account-channel-peer
每个账号+通道+用户独立(多账号推荐)
2026.1.15
💡 openclaw security audit 会在检测到多个 DM 发送者共享主会话时发出警告,并建议切换到 per-channel-peer

3. 工具权限层级

能跟 AI 说话只是第一步。说了之后,AI 能用哪些工具来执行,才是真正的权限边界。

3.1 工具风险分级

OpenClaw 里的工具按风险分成几个等级:

风险等级
工具类型
示例
被滥用的后果
🟢 低
只读/信息查询
web_searchreadweather
信息泄露(有限)
🟡 中
有限写入
writeeditweb_fetch
文件被修改、数据被抓取
🟠 高
系统操作
execprocess、浏览器控制
系统被入侵
🔴 极高
外部通信
发送消息、发邮件                                   
社工攻击、身份冒充

3.2 预设配置 profiles

OpenClaw 内置了几套预设方案,开箱即用:

Profile
允许的工具
适用场景
安全等级
引入版本
minimal
仅 session_status
纯查询,几乎不做任何操作
🟢 最安全
2026.1.12
coding
文件读写 + 运行时 + 会话 + 记忆 + 图片
日常开发使用(2026.3.7 起本地默认)
🟡 中等
2026.1.12
messaging
消息工具 + 会话列表/历史/发送
纯通信场景
🟡 中等
2026.1.12
full
所有工具,无限制
完全信任 AI(仅限自己使用)
🔴 危险
2026.1.12

3.3 自定义 deny/allow 配置

预设不够用?自己配:

{  "tools": {    "profile": "coding",    "deny": ["exec", "process", "browser"],    "allow": ["web_search", "web_fetch"]  }}

规则优先级:deny > allow > profile

也就是说,如果你同时配了 deny 和 profile,deny 里的工具不管 profile 怎么说都会被禁用。

{  "tools": {    "profile": "full",    "deny": ["exec"]  }}

上面这个配置的意思是:用 full 预设,但是额外禁用 exec。即使 full 里允许 exec,也会被 deny 覆盖掉。

还可以针对特定 AI 提供商做更细的限制:

{  "tools": {    "profile": "coding",    "byProvider": {      "openai/gpt-4.1-mini": { "profile": "minimal" }    }  }}

4. 群组策略配置

4.1 requireMention

在群里,AI 是每条消息都响应,还是只有被 @ 才响应?

群组 requireMention 在各通道的 groups 配置里设置:

{  "channels": {    "discord": {      "groups": {        "*": { "requireMention": true }      }    },    "telegram": {      "groups": {        "*": { "requireMention": true }      }    }  }}
requireMention
行为
建议
引入版本
true
只有 @AI 才会响应
✅ 推荐,避免 AI 在群里刷屏
2026.1.8
false
每条消息都会响应
⚠️ 除非是专门的 AI 频道
2026.1.8

4.2 群组策略(allowlist vs open)

OpenClaw 默认使用 groupPolicy: "allowlist"(fail-closed),只有在 groups 里明确配置的群组才会响应:

{  "channels": {    "defaults": {      "groupPolicy": "allowlist"    },    "discord": {      "groupPolicy": "allowlist",      "groups": {        "1234567890": { "requireMention": true },        "9876543210": { "requireMention": false }      }    }  }}

不在 groups 里列出的群,AI 直接不响应。 这是最简单但最有效的方式。

如果设为 groupPolicy: "open",AI 会响应所有群组消息(但 mention-gating 仍然生效)。不推荐,除非你清楚后果。

groupPolicy
行为
推荐度
引入版本
allowlist
只响应配置中列出的群组(默认)
✅ 推荐
2026.1.8(2026.2.22 起运行时 fail-closed)
open
响应所有群组(仍需 @提及)
⚠️ 谨慎使用
2026.1.8
disabled
完全不响应任何群组
完全禁用群组
2026.1.8

4.3 获取群组 ID

配置群组白名单需要群组 ID,怎么拿?

# 列出所有已知的群组和 IDopenclaw directory groups# 查看某个平台的群组openclaw directory groups --channel discordopenclaw directory groups --channel telegram

Discord 获取频道 ID:开启开发者模式(设置 → 高级 → 开发者模式),然后右键频道 → 复制频道 ID。

Telegram 获取群组 ID:把 @RawDataBot 加入群组,它会自动发送群组信息,包含 chat ID。

5. 小结

入口控制的核心就三件事:

层面
关键问题
推荐配置
DM 配对
谁能跟 AI 一对一聊天?
dmPolicy: "pairing"(默认)               
会话隔离
不同人的对话会不会互相泄露?
session.dmScope: "per-channel-peer"
工具权限
AI 能用哪些工具?
tools.profile: "coding"  +  按需 deny 高危工具
群组策略
AI 在群里怎么表现?
requireMention:true + groupPolicy:"allowlist"

记住一个原则:最小权限。 不确定要不要开的,先别开。等真正需要了再放开,比出了事再收紧容易得多。

下一篇我们深入到最核心的安全话题–命令执行。AI 跑命令是最强大的能力,也是最危险的。怎么让它在笼子里干活?第三篇见。


系列导航:

  • OpenClaw 安全指南(一·认知篇):你的 AI 助手有多危险?
  • ✅ OpenClaw 安全指南(二·入口篇):谁能跟你的 AI 说话?
  • OpenClaw 安全指南(三·执行篇):让 AI 在笼子里干活
  • OpenClaw 安全指南(四·进阶篇):密钥、注入与应急

👋 我是路人甲甲,公众号「AI 打怪升级」,专注 AI 工具实战。

觉得有用?点个在看,分享给需要的朋友。