diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index d131aad33..419198c2d 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "e388f289bf6e1fa6d8095929ffb62285669ded0d", - "syncedAt": "2026-04-28T06:37:26.091Z" + "sha": "3c636208b0a00ff325e4f48d048d1fd9820f3ea0", + "syncedAt": "2026-04-28T06:37:48.244Z" } diff --git a/docs/.generated/config-baseline.sha256 b/docs/.generated/config-baseline.sha256 index adcc46899..203865d7b 100644 --- a/docs/.generated/config-baseline.sha256 +++ b/docs/.generated/config-baseline.sha256 @@ -1,4 +1,4 @@ -9caccd04afca25d18cfcc4a66bdc30c995f5ec51eaa764c076ce58c9af11a7bf config-baseline.json -8530c8fd54e04a2ab7f6704195f9959311e289ae122ebd8e27af236de435fef9 config-baseline.core.json +4fd357ae137b920586ce5760d461be586f4f9a94e49b73cad1f81110167cd9da config-baseline.json +f874cddd0744be277af58ef14261af7994aba669c642f613be10f92b095998ba config-baseline.core.json a9f058ee9616e189dab7fc223e1207a49ae52b8490b8028935c9d0a2b16f81b2 config-baseline.channel.json 1f5592bfd141ba1e982ce31763a253c10afb080ab4ea2b6538299b114e29cee1 config-baseline.plugin.json diff --git a/docs/channels/discord.md b/docs/channels/discord.md index 25b5c153c..7d397c9ea 100644 --- a/docs/channels/discord.md +++ b/docs/channels/discord.md @@ -216,6 +216,8 @@ Once DMs are working, you can set up your Discord server as a full workspace whe By default, your agent only responds in guild channels when @mentioned. For a private server, you probably want it to respond to every message. + In guild channels, normal assistant final replies stay private by default. Visible Discord output must be sent explicitly with the `message` tool, so the agent can lurk by default and only post when it decides a channel reply is useful. + > "Allow my agent to respond on this server without having to be @mentioned" @@ -237,6 +239,8 @@ Once DMs are working, you can set up your Discord server as a full workspace whe } ``` + To restore legacy automatic final replies for group/channel rooms, set `messages.groupChat.visibleReplies: "automatic"`. + diff --git a/docs/channels/groups.md b/docs/channels/groups.md index 5022f94f4..595885225 100644 --- a/docs/channels/groups.md +++ b/docs/channels/groups.md @@ -16,6 +16,7 @@ Default behavior: - Groups are restricted (`groupPolicy: "allowlist"`). - Replies require a mention unless you explicitly disable mention gating. +- Normal final replies in groups/channels are private by default. Visible room output uses the `message` tool. Translation: allowlisted senders can trigger OpenClaw by mentioning it. @@ -36,6 +37,25 @@ requireMention? yes -> mentioned? no -> store for context only otherwise -> reply ``` +## Visible replies + +For group/channel rooms, OpenClaw defaults to `messages.groupChat.visibleReplies: "message_tool"`. +That means the agent still processes the turn and can update memory/session state, but its normal final answer is not automatically posted back into the room. To speak visibly, the agent uses `message(action=send)`. + +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. + +To restore legacy automatic final replies for group/channel rooms: + +```json5 +{ + messages: { + groupChat: { + visibleReplies: "automatic", + }, + }, +} +``` + ## Context visibility and allowlists Two different controls are involved in group safety: