群聊场景概述
OpenClaw 支持在群聊中运行 AI 助手,但群聊环境与私聊有本质差异:消息量大、多人参与、上下文复杂。合理的配置能让 AI 在群聊中既有用又不扰民。
提及要求(requireMention)
控制 AI 是否需要被 @提及才会响应:
{
channels: {
whatsapp: {
groups: {
// 要求用户 @提及机器人才响应(推荐)
requireMention: true
}
}
}
}
启用 requireMention 后,AI 只会处理明确指向它的消息,大幅减少误触发和资源浪费。
自定义触发模式(mentionPatterns)
除了 @提及,还可以设置文本关键词触发:
{
channels: {
whatsapp: {
groups: {
requireMention: true,
// 自定义触发词
mentionPatterns: [
"小助手",
"AI帮忙",
"/ask"
]
}
}
}
}
当群消息中包含这些关键词时,AI 也会响应。支持正则表达式:
{
mentionPatterns: [
"^/ask\\s", // 以 /ask 开头的命令
"小助手[,,]" // "小助手," 或 "小助手,"
]
}
群组策略(groupPolicy)
全局控制哪些群组可以使用 AI:
{
channels: {
whatsapp: {
groups: {
// open: 所有群组均可使用
// allowlist: 仅白名单群组可使用
// disabled: 禁用群聊功能
groupPolicy: "allowlist",
// 白名单群组 ID 列表
allowlist: [
"120363001234567890@g.us",
"120363009876543210@g.us"
]
}
}
}
}
获取群组 ID
# 列出所有已加入的群组及其 ID
openclaw channels whatsapp groups list
单群组配置
针对不同群组设置不同的行为:
{
channels: {
whatsapp: {
groups: {
groupPolicy: "allowlist",
allowlist: ["120363001234567890@g.us"],
// 每个群组的独立配置
perGroup: {
"120363001234567890@g.us": {
// 使用特定 Agent
agent: "customer-service",
// 该群无需 @提及
requireMention: false,
// 自定义触发词
mentionPatterns: ["客服"]
},
"120363009876543210@g.us": {
agent: "tech-support",
requireMention: true
}
}
}
}
}
}
群聊历史限制
控制 AI 读取的群聊历史消息数量,避免上下文过长导致性能问题和成本增加:
{
channels: {
whatsapp: {
groups: {
// 最多读取最近 20 条群消息作为上下文
historyLimit: 20,
// 历史消息的时间窗口(分钟)
historyWindow: 30
}
}
}
}
群组专属 Agent 路由
根据群组类型分配不同的 AI Agent:
{
agents: {
"customer-service": {
model: { primary: "anthropic/claude-sonnet-4-20250514" },
systemPrompt: "你是一个客服助手,帮助解答产品相关问题。"
},
"tech-support": {
model: { primary: "anthropic/claude-opus-4-20250514" },
systemPrompt: "你是一个技术支持专家,帮助排查技术问题。",
tools: { allow: ["search", "fs_read"] }
}
}
}
防止机器人循环
当群中有多个机器人时,可能出现机器人互相触发的死循环。OpenClaw 提供了多重防护:
{
channels: {
whatsapp: {
groups: {
// 忽略其他机器人的消息
ignoreBots: true,
// 设置响应冷却时间(秒)
cooldown: 5,
// 单次对话最大轮次
maxTurns: 10
}
}
}
}
跨频道群组 ID
不同频道的群组 ID 格式不同:
| 频道 | 群组 ID 格式 |
|---|---|
120363001234567890@g.us |
|
| Discord | channel_1234567890 |
| Slack | C1234567890 |
wxid_group_xxxxx |
获取方式统一为:
openclaw channels <channel-name> groups list
实用配置示例
一个适合大多数场景的群聊配置:
{
channels: {
whatsapp: {
groups: {
groupPolicy: "allowlist",
requireMention: true,
mentionPatterns: ["小助手"],
historyLimit: 15,
historyWindow: 30,
ignoreBots: true,
cooldown: 3,
maxTurns: 8
}
}
}
}
常见问题排查
- AI 不回复群消息:检查
groupPolicy是否为disabled,群组 ID 是否在白名单中 - AI 回复太频繁:启用
requireMention或增加cooldown - 上下文混乱:减小
historyLimit和historyWindow - 机器人互相回复:确认
ignoreBots已启用