docs(channels): describe room events

This commit is contained in:
Ayaan Zaidi
2026-05-13 12:07:23 +05:30
committed by Peter Steinberger
parent 56cc150771
commit c2e659472a

View File

@@ -35,7 +35,8 @@ Quick flow (what happens to a group message):
groupPolicy? disabled -> drop
groupPolicy? allowlist -> group allowed? no -> drop
requireMention? yes -> mentioned? no -> store for context only
otherwise -> reply
mention/reply/command/DM -> user request
always-on group chatter -> room event
```
## Visible replies
@@ -60,7 +61,7 @@ For direct chats and any other source turn, use `messages.visibleReplies: "messa
This replaces the old pattern of forcing the model to answer `NO_REPLY` for most lurk-mode turns. In tool-only mode, doing nothing visible simply means not calling the message tool.
Typing indicators are still sent while the agent works in tool-only mode. The default group typing mode is upgraded from "message" to "instant" for these turns because there may never be normal assistant message text before the agent decides whether to call the message tool. Explicit typing-mode config still wins.
Typing indicators are still sent for direct group requests. Ambient always-on room events stay quiet unless the agent calls the message tool.
To restore legacy automatic final replies for group/channel rooms:
@@ -351,6 +352,8 @@ Replying to a bot message counts as an implicit mention when the channel support
- Allowlisting a group or sender does not disable mention gating; set that group's `requireMention` to `false` when all messages should trigger.
- Automatic group chat prompt context carries the resolved silent-reply instruction every turn; workspace files should not duplicate `NO_REPLY` mechanics.
- Groups where automatic silent replies are allowed treat clean empty or reasoning-only model turns as silent, equivalent to `NO_REPLY`. Direct chats never receive `NO_REPLY` guidance, and message-tool-only group replies stay quiet by not calling `message(action=send)`.
- Ambient always-on group chatter is a room event. The model can use it as context, but visible room speech requires the message tool.
- Room events are not stored as fake user requests, and private assistant text from no-message-tool room events is not replayed as chat history.
- Discord defaults live in `channels.discord.guilds."*"` (overridable per guild/channel).
- Group history context is wrapped uniformly across channels. Mention-gated groups keep pending skipped messages; always-on groups may also retain recent processed room messages when the channel supports it. Use `messages.groupChat.historyLimit` for the global default and `channels.<channel>.historyLimit` (or `channels.<channel>.accounts.*.historyLimit`) for overrides. Set `0` to disable.