#How to get "natural responses" @ always replies in discord but follow on without the @

1 messages · Page 1 of 1 (latest)

tropic vapor
#

Hi, I'm trying to figure out how to set this up properly. I want my bots to behave as close to how human works. That is.

This is what I was thinking (from the point of view of the bot)

If you @ me I'll definitely reply.
If you don't @ me I may reply (random conversations where I think I may be useful I'll join)
After a @ I should monitor "the conversation" and keep replying until I consider it "done"

As a second item I'll love to try out making a thread that way the bot will alway finish the conversation.

boreal hearthBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> ✅ Mark Solution

smoky galleonBOT
steep ore
#

@devout mirage

devout mirageBOT
#

Closest current setup is:

  1. Normal channels: mention-gated
    Use channels.discord.guilds.<guildId>.channels.<channelId>.requireMention: true
    so an @mention always wakes the bot.

  2. “May jump in” mode
    Set requireMention: false for the places where you want it to lurk and decide for itself.
    In practice, that means every message wakes the agent, and the prompt should tell it to reply only when useful, otherwise stay silent (NO_REPLY).

  3. “Keep talking until done”
    Use a thread. This is the cleanest pattern today.
    Discord threads are separate sessions in OpenClaw, so follow-ups stay contained.

Recommended config shape:

#
{
  session: {
    threadBindings: {
      enabled: true,
      idleHours: 24,
      maxAgeHours: 0,
    },
  },
  channels: {
    discord: {
      guilds: {
        "YOUR_GUILD_ID": {
          channels: {
            "MAIN_CHANNEL_ID": { allow: true, requireMention: true },
            "HELP_THREAD_OR_CHANNEL_ID": { allow: true, requireMention: false },
#
          },
        },
      },
      threadBindings: {
        enabled: true,
        idleHours: 24,
        maxAgeHours: 0,
      },
    },
  },
  agents: {
    list: [
      {
        id: "main",
        groupChat: {
#
          mentionPatterns: ["@yourbot", "yourbot"],
        },
      },
    ],
  },
}

Important caveat: there is not really a built-in “one @mention in the parent channel unlocks free follow-up there until the bot decides it’s done” mode.
If you want that feel, the best current setup is:

  • channel = mention-only
  • thread = always-on

Docs: