I have one of my open claw agents running or as a participant in an iMessage group chat. I have the agent working as a chief of staff for our non-profit and the group chat is with the board members. I need it to participate and chime in at the right times, follow the conversation, update different things in the background, and follow up on different tasks. I also don't want it chiming in when it shouldn't. Not every message is a message to it and I also don't want to have to @mention it every time. What's the best way to configure this? What are some helpful hints, cool tricks, and best practices?
#How do I properly setup an agent to participate in a group chat with multiple human users.
1 messages · Page 1 of 1 (latest)
This is a great use case, and the best pattern is not “mention-only bot.” For a chief-of-staff group chat, you usually want:
- Let the agent receive/process the board chat
- Prevent automatic visible replies
- Teach it when it is allowed to speak
- Use standing orders + cron/background tasks for follow-up work
For iMessage specifically, I’d configure the board group as an explicit allowed group, set requireMention: false for that one group, and rely on messages.groupChat.visibleReplies: "message_tool" so the agent only posts visibly when it intentionally calls the message tool.
Rough shape:
{
messages: {
groupChat: {
visibleReplies: "message_tool"
}
},
channels: {
imessage: {
enabled: true,
groupPolicy: "allowlist",
groupAllowFrom: [
"+15551230001",
"+15551230002",
"+15551230003"
],
groups: {
"chat_id:BOARD_GROUP_CHAT_ID": {
requireMention: false,
systemPrompt: "This is the nonprofit board group chat. Act as chief of staff. Follow the discussion, capture decisions/action items, update authorized background records, and only send a visible message when you can materially help: direct questions, clear task acceptance, deadlines/decision summaries, missed action items, factual corrections, or important risks. Do not chime in just to be agreeable. Keep visible replies brief and professional."
},
"*": {
requireMention: true
}
}
}
}
}
Important iMessage nuance: iMessage has no native @mention metadata, so if you use requireMention: true, configure mention patterns like “hey chief”, “chief”, your agent name, etc. Otherwise mention-gating can’t really be enforced. Docs: https://docs.openclaw.ai/channels/imessage and https://docs.openclaw.ai/channels/groups
Best-practice setup:
- Use a dedicated agent for the nonprofit, not your personal/default agent. Separate workspace, memory, auth, docs, and tool permissions. Multi-agent docs: https://docs.openclaw.ai/concepts/multi-agent
- Put operating rules in that agent’s
AGENTS.md, especially:
- when to speak
- when to stay silent
- what it may update autonomously
- what requires approval
- who counts as board/staff
- preferred tone and message length
- Use standing orders for ongoing responsibilities: board minutes, action item tracker, donor follow-ups, grant deadlines, weekly digest, etc. Docs: https://docs.openclaw.ai/automation/standing-orders
- Use cron jobs for follow-ups instead of hoping the model remembers later: “Friday 9am: summarize open board action items and DM me,” “first Monday: prepare board packet checklist,” etc. Docs: https://docs.openclaw.ai/automation/cron-jobs
- Keep group replies short. If it needs to do a lot, have it say something like “I’ll update the tracker and report back by 3pm,” then do the work in the background.
- Add approval gates for anything sensitive: sending external emails, committing money, deleting/editing records, legal/HR language, board minutes finalization, donor-facing messages.
- Prefer a simple durable file/source of truth in the agent workspace:
BOARD_ACTIONS.md,DECISIONS.md,FOLLOWUPS.md,MEETING_NOTES.md. Fancy integrations can come later.
Cool trick: make it maintain a “silent ledger.” Every group turn can update local notes/action items without speaking. Then it only posts when there’s a useful intervention, e.g.:
“Quick catch: I have Maya owning venue outreach by Friday and Tom owning the revised budget by Tuesday. Is that correct?”
That’s the sweet spot: ambient awareness, low noise, useful at decision boundaries. 🦞
@verbal shell Wasn't there some new messaging config setting to make agents better in group settings that was introduced ealier this month? OR in april?
Yep — I think you’re remembering messages.groupChat.visibleReplies: "message_tool".
That landed at the end of April: 3c636208b0 on 2026-04-28, fix(messages): keep group replies tool-only by default. The docs were expanded again around May 9.
What it does: in group/channel rooms, the agent can still process the message, keep context, update notes/memory, run background work, etc., but its normal final answer does not automatically post into the room. To speak visibly, it has to intentionally call the messaging tool.
{
messages: {
groupChat: {
visibleReplies: "message_tool"
}
}
}
That’s the “lurk intelligently, speak only when useful” setting. It replaced the older awkward pattern of telling the model to answer NO_REPLY most of the time.
Two related knobs worth knowing:
{
messages: {
visibleReplies: "message_tool" // same behavior globally, including DMs/source chats
}
}
and the April 3 hardening setting:
{
channels: {
defaults: {