群组管理 - 群组配置与权限
本文详细介绍 OpenClaw 群组管理的各项配置,包括 Group Policy(群组策略)、逐群覆盖设置、工具沙箱权限等高级功能。
Group Policy(群组策略)
Group Policy(群组策略)是渠道级别的配置,决定 Agent(智能体)如何处理群组相关的交互。
三种策略详解
1. Open(开放)
channels:
telegram:
enabled: true
groupPolicy: open- Agent 可以被添加到任何群组
- 所有群组的消息都会被处理(受
requireMention约束) - 无需预先配置群组列表
- ⚠️ 风险:任何人都可以将 Agent 拉入不受控的群组
2. Disabled(禁用)
channels:
slack:
enabled: true
groupPolicy: disabled- Agent 不会响应任何群组消息
- 即使被拉入群组,也会静默忽略所有消息
- 仅通过 DM(私信)交互
- 适合纯私信场景的 Agent
3. Allowlist(白名单)
channels:
feishu:
enabled: true
groupPolicy: allowlist
groups:
- id: "oc_group_001"
- id: "oc_group_002"- Agent 仅响应白名单中的群组消息
- 未列出的群组消息会被忽略
- 最安全的群组接入方式
- 推荐用于生产环境
推荐策略
生产环境推荐使用 allowlist 策略。你可以精确控制 Agent 在哪些群组中活动,避免资源滥用和信息泄露。
Allowlist(白名单)配置
基础配置
通过群组 ID 指定允许的群组:
channels:
telegram:
enabled: true
groupPolicy: allowlist
groups:
- id: "group_12345" # Telegram 群组 ID
- id: "group_67890"
slack:
enabled: true
groupPolicy: allowlist
groups:
- id: "C04ABCDEF" # Slack Channel ID
- id: "C04GHIJKL"
feishu:
enabled: true
groupPolicy: allowlist
groups:
- id: "oc_group_a1b2" # 飞书群组 Open Chat ID
- id: "oc_group_c3d4"获取群组 ID
不同平台获取群组 ID 的方式:
| 平台 | 获取方式 |
|---|---|
| Telegram | 将 @raw_data_bot 拉入群组,发送任意消息查看群组 ID |
| Slack | 右键点击频道名 → Copy → Copy link → 链接末尾即为 Channel ID |
| Discord | 开启开发者模式 → 右键频道 → Copy Channel ID |
| 飞书 | 管理后台 → 群组管理 → 群组详情 → Open Chat ID |
| 企业微信 | 企业管理后台 → 应用管理 → 群聊 ID |
| 钉钉 | 开放平台 → 群模板 → 群组 ID |
CLI 管理白名单
# 查看当前白名单
openclaw groups list telegram
# 输出示例:
# Channel Group ID Name Status Members
# telegram group_12345 产品讨论群 active 15
# telegram group_67890 技术交流群 active 32
# 添加群组到白名单
openclaw groups add telegram group_99999
# 从白名单移除
openclaw groups remove telegram group_12345
# 批量添加
openclaw groups add telegram group_111 group_222 group_333Per-group Config(逐群覆盖配置)
每个群组可以有独立的配置,覆盖渠道级别的默认设置。
完整配置示例
channels:
telegram:
enabled: true
groupPolicy: allowlist
# 渠道级别默认值
requireMention: true
groups:
# 群组 1:产品讨论群 — 使用默认配置
- id: "group_product"
name: "产品讨论群" # 可选:群组别名(便于管理)
# 群组 2:技术交流群 — 自定义配置
- id: "group_tech"
name: "技术交流群"
requireMention: false # 覆盖:不需要 @mention
mode: "non-main" # 限制工具权限
tools:
allow:
- "search"
- "code_review"
- "explain"
# 群组 3:管理员群 — 完整权限
- id: "group_admin"
name: "管理员群"
requireMention: false
mode: "main" # 完整权限
tools:
allow: ["*"] # 允许所有工具
# 群组 4:客户支持群 — 严格限制
- id: "group_support"
name: "客户支持群"
requireMention: true
mode: "non-main"
tools:
allow:
- "search_faq"
- "create_ticket"
deny:
- "file_*"
- "system_*"
- "db_*"
rateLimit:
maxRequests: 20
windowSeconds: 60配置继承与覆盖规则
配置的优先级从高到低:
群组级别配置(Per-group)
↓ 覆盖
渠道级别配置(Channel)
↓ 覆盖
全局默认配置(Global Default)# 全局默认
defaults:
requireMention: true
mode: "non-main"
channels:
telegram:
# 渠道级别:覆盖全局默认
requireMention: true # 与全局一致,可省略
mode: "non-main" # 与全局一致,可省略
groups:
- id: "group_admin"
# 群组级别:覆盖渠道级别
requireMention: false # 仅此群组不需要 @mention
mode: "main" # 仅此群组有完整权限配置合并策略
覆盖配置使用 Shallow Merge(浅合并)策略。群组级别的 tools 配置会完全替换渠道级别的 tools 配置,而不是合并。
工具沙箱(Tool Sandboxing)
按群组配置工具权限
channels:
feishu:
groups:
# 研发群:允许代码相关工具
- id: "oc_dev_team"
tools:
allow:
- "code_*" # 所有 code_ 前缀的工具
- "git_*" # 所有 git_ 前缀的工具
- "search"
- "explain"
deny:
- "code_delete" # deny 优先级高于 allow
# 市场群:允许内容创作工具
- id: "oc_marketing"
tools:
allow:
- "write_*"
- "translate"
- "summarize"
- "image_generate"
# 财务群:仅允许查询
- id: "oc_finance"
tools:
allow:
- "query_finance"
- "report_generate"
deny:
- "*_write"
- "*_delete"
- "*_update"按发送者配置工具权限
channels:
slack:
groups:
- id: "C04GENERAL"
toolsBySender:
# 特定用户:完整权限
"U_ADMIN_01":
allow: ["*"]
"U_ADMIN_02":
allow: ["*"]
# 另一个用户:部分权限
"U_DEV_01":
allow:
- "code_*"
- "search"
# 默认规则:适用于未单独配置的用户
default:
allow:
- "search"
- "summarize"
deny:
- "file_*"
- "system_*"工具权限冲突
当 tools 和 toolsBySender 同时配置时,两者取交集。也就是说,一个工具必须同时被 tools 和 toolsBySender 允许,才能在群组中使用。
requireMention 逐群覆盖
channels:
telegram:
requireMention: true # 渠道默认:需要 @mention
groups:
# 小型团队群:不需要 @mention,Agent 参与所有讨论
- id: "group_core_team"
requireMention: false
# 大型讨论群:需要 @mention,避免刷屏
- id: "group_all_hands"
requireMention: true # 与渠道默认一致,可省略群组状态管理
查看群组状态
# 查看所有渠道的群组状态
openclaw groups status
# 输出示例:
# Channel Group ID Name Policy Mention Mode Messages
# telegram group_product 产品讨论群 allowlist yes non-main 1,234
# telegram group_tech 技术交流群 allowlist no non-main 5,678
# slack C04GENERAL #general allowlist yes non-main 890
# feishu oc_dev_team 研发团队群 allowlist no main 12,345
# 查看特定群组的详细配置
openclaw groups info telegram group_product动态管理
# 暂停群组的 Agent 响应
openclaw groups pause telegram group_12345
# 恢复群组的 Agent 响应
openclaw groups resume telegram group_12345
# 清除群组会话历史
openclaw groups clear-history telegram group_12345
# 重新加载群组配置(无需重启)
openclaw groups reload完整配置示例
以下是一个多渠道、多群组的完整配置示例:
# openclaw.yaml — 完整群组管理配置
channels:
telegram:
enabled: true
dmPolicy: pairing
groupPolicy: allowlist
requireMention: true
groups:
- id: "group_core"
name: "核心团队"
requireMention: false
mode: "main"
tools:
allow: ["*"]
- id: "group_community"
name: "社区交流"
requireMention: true
mode: "non-main"
tools:
allow: ["search", "explain", "translate"]
rateLimit:
maxRequests: 15
windowSeconds: 60
feishu:
enabled: true
dmPolicy: allowlist
groupPolicy: allowlist
requireMention: true
groups:
- id: "oc_engineering"
name: "工程团队"
requireMention: false
mode: "main"
tools:
allow: ["code_*", "git_*", "search", "file_read"]
toolsBySender:
"ou_tech_lead":
allow: ["*"]
default:
allow: ["code_review", "search", "explain"]
- id: "oc_product"
name: "产品团队"
requireMention: true
mode: "non-main"
tools:
allow: ["search", "summarize", "translate", "write_doc"]
wecom:
enabled: true
dmPolicy: pairing
groupPolicy: allowlist
requireMention: true
groups:
- id: "wc_support"
name: "客户支持"
requireMention: true
mode: "non-main"
tools:
allow: ["search_faq", "create_ticket", "query_order"]最佳实践
- 最小权限原则:每个群组只开放必要的工具,使用
deny明确禁止高危操作 - 分层管理:核心团队群给予更多权限,公开群严格限制
- 定期审计:通过
openclaw groups status定期审查群组配置 - 使用别名:在配置中为群组添加
name字段,便于管理和识别 - 渐进开放:先用
allowlist+requireMention: true启动,根据实际需求逐步放开
🇨🇳 中国用户须知
飞书群组管理: 飞书支持通过管理后台批量获取群组 Open Chat ID。如果你的企业有大量飞书群组需要接入,可以通过飞书开放平台 API 批量查询群组列表,然后导入到 OpenClaw 配置中。
企业微信群聊: 企业微信的群聊机器人有消息频率限制(默认每分钟 20 条)。建议在 rateLimit 中配置与企业微信限制一致的参数,避免消息被平台丢弃。
钉钉群组: 钉钉群机器人分为「自定义机器人」(仅发送)和「企业内部应用机器人」(可接收)。OpenClaw 使用后者,请确保在钉钉开放平台中正确配置消息接收地址(Webhook URL)。
多渠道群组同步: 如果同一个团队同时使用飞书和企业微信,可以通过 渠道路由 将不同渠道的群组路由到同一个 Agent,实现跨平台统一管理。
