群聊高级配置实战:openclaw-lark 按群白名单、技能绑定与自定义系统提示词设置指南
【免费下载链接】openclaw-lark飞书官方出品的 OpenClaw 飞书/Lark Channel 插件项目地址: https://gitcode.com/gh_mirrors/op/openclaw-lark
openclaw-lark 是飞书/Lark 官方出品的 OpenClaw 渠道插件,可把你的 AI Agent 接入飞书工作区,读写消息、文档、多维表格、日历与任务。当你把机器人拉进群聊后,是否遇到这些问题:谁都能 @ 它、所有群的机器人"一模一样"?通过 openclaw-lark 的按群白名单、技能绑定与自定义系统提示词配置,你可以精细控制:谁能和机器人说话、每个群允许它用哪些技能、机器人在不同群里的行为方式。本文带你用 3 步完成群聊高级配置。
先了解:配置在哪里、优先级如何
所有群聊配置都写在 OpenClaw 的飞书渠道配置里,按"账号级全局 →*默认群 → 具体群 ID"逐层覆盖。优先级规则为:
具体群配置 >
"*"默认群配置 > 账号全局配置 > 内置默认值
这套查找逻辑的实现在 src/messaging/inbound/gate.ts 与 src/messaging/inbound/policy.ts(群配置按群 ID 不区分大小写匹配)。每个群支持的完整字段定义在 src/core/config-schema.ts 的FeishuGroupSchema中。
💡 建议习惯:把"所有群通用的设置"放在"*"条目里,只对个别群做差异覆盖,配置最省。
第一步:设置按群白名单,控制谁能和机器人说话
群聊访问控制由groupPolicy字段驱动,共 3 种模式,判定逻辑见 src/messaging/inbound/policy.ts 的isFeishuGroupAllowed:
| 取值 | 效果 | 适用场景 |
|---|---|---|
open | 所有群/所有发送者放行 | 内部小群、完全信任的环境 |
allowlist | 仅白名单中的发送者可触发 | 团队群、需要管控的共享群 |
disabled | 完全屏蔽群聊 | 临时关闭群聊能力 |
白名单的两种写法
- 账号级:
groupAllowFrom列出允许的发送者 ID;以oc_开头的旧式群会话 ID 会被自动识别为"允许的群",实现兼容拆分(见 src/messaging/inbound/policy.ts)。 - 群级:在
groups.<群ID>.allowFrom中列出该群内允许触发的发送者,可与群内其他限制叠加。
典型配置示例:
{ "groupPolicy": "allowlist", "groupAllowFrom": ["ou_xxxxxxxx", "ou_yyyyyyyy"], "groups": { "*": { "requireMention": true }, "oc_11112222": { "allowFrom": ["ou_zzzzzzzz"] } } }⚠️ 白名单按**发送者 open_id(ou_开头)**匹配,且为空时默认"全部拒绝";想对所有人放行请用open模式,而不是留空列表。
另外两个常用配合项:
requireMention:群内必须 @ 机器人才响应(默认开启,可按群覆盖,判定在 src/messaging/inbound/gate.ts);respondToMentionAll:@所有人时是否也触发机器人。
第二步:按群绑定技能,让不同群拥有不同能力
skills字段是一个技能名数组,用于限定"这个群里的机器人可以调用哪些技能"。解析发生在消息分发阶段(src/messaging/inbound/dispatch.ts),并与 Agent 级技能白名单取交集——两边都配置时,技能必须同时出现在两个列表才生效,合并规则见 src/core/agent-config.ts 的mergeSkillFilters:
{ "groups": { "oc_88889999": { "skills": ["feishu-calendar", "feishu-task"] }, "oc_77778888": { "skills": ["feishu-bitable"] } } }场景举例:项目管理群只开放日历与任务技能,数据群只开放多维表格技能。这样即使机器人被拉进多个群,每个群的能力边界都清晰可控。
🔧 群内工具(Tools)还可以用tools.allow/tools.deny做更细粒度的开关,支持feishu_calendar_*这类前缀通配符(匹配逻辑见 src/core/agent-config.ts),提取链路在 src/messaging/inbound/policy.ts。
第三步:为每个群写自定义系统提示词
systemPrompt字段可以为群注入一段专属"人设说明"。机器人收到群消息时,插件会把这段提示词与内置的群聊协作指引合并后一起注入(src/messaging/inbound/dispatch.ts,合并函数在 src/messaging/inbound/dispatch-builders.ts),从而改变模型在该群的回答风格与行为约束:
{ "groups": { "oc_66667777": { "systemPrompt": "你是在客服群里的助手:回答简洁,先给结论再给步骤,不确定的信息请明确说明,不要调用写文档类技能。" }, "oc_55556666": { "systemPrompt": "你是在开发群里的助手:输出面向工程师,多给命令与代码位置,可直接引用仓库路径。" } } }写提示词的小技巧:说清角色定位 + 输出风格 + 能力边界三件事即可,无需长篇大论;未配置systemPrompt的群会自动回落到"*"默认群的提示词。
群配置字段速查表
| 字段 | 作用 | 备注 |
|---|---|---|
groupPolicy | 群聊访问总开关:open/allowlist/disabled | 可全局或按群设置 |
allowFrom/groupAllowFrom | 发送者白名单(ou_ID) | 空列表 = 全部拒绝 |
requireMention | 群内是否必须 @ 机器人 | 默认开启 |
skills | 该群可用的技能白名单 | 与 Agent 级取交集 |
tools.allow/tools.deny | 群内工具级开关 | 支持*前缀通配 |
systemPrompt | 群级自定义系统提示词 | 与内置群聊指引合并注入 |
enabled | 按群启用/停用 | 快速下线单个群 |
allowBots | 是否响应其他机器人消息 | true/'mentions'/false |
replyInThread | 机器人回复是否留在话题内 | 按群覆盖账号级默认值 |
常见排查:机器人为什么在群里不响应?
- 模式不对:确认
groupPolicy是否为disabled,或allowlist模式下发送者 ID 不在白名单中(匹配是精确的 ID 匹配,见 src/messaging/inbound/policy.ts)。 - 没 @ 机器人:群内默认要求
@触发,且@所有人默认不触发。 - 技能"消失":检查群
skills与 Agent 级技能配置是否取交集后为空。 - 群 ID 写错:
groups的 key 是飞书群会话 ID(oc_开头),支持不区分大小写匹配,但拼错前缀就不会命中。
🔒 安全提示:官方建议将接入 OpenClaw 的飞书机器人作为私聊助手使用。把机器人放进群聊并放开白名单,意味着更多用户可间接驱动 AI 执行操作,请只对你信任的群和成员开放。
小结
openclaw-lark 的群聊高级配置只有三件事:用groupPolicy+allowFrom管住"谁能说话",用skills管住"每个群能用哪些技能",用systemPrompt管住"机器人在每个群怎么说话"。借助"具体群 >*默认群 > 全局"的优先级模型,几行配置就能让同一个机器人在不同群里表现出完全不同的行为。完整字段定义可参考 src/core/config-schema.ts。
【免费下载链接】openclaw-lark飞书官方出品的 OpenClaw 飞书/Lark Channel 插件项目地址: https://gitcode.com/gh_mirrors/op/openclaw-lark
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考