#⚠️ API rate limit reached. Please try again later.

1 messages · Page 1 of 1 (latest)

junior zealot
#

• Telegram group with forum topics enabled (5 topics)
• requireMention: false for the group (I want the bot to see every message)
• maxConcurrent: 1
• contextPruning: cache-ttl, 30m
• Model: GLM (ZhipuAI)

The problem: When someone sends 1 message in any topic, ALL topic sessions trigger simultaneously. Each one makes an API call with its own context (some are 100KB+). Even with maxConcurrent: 1, they queue up and hit the GLM API rate limit, causing timeout errors.

What I've tried:

• requireMention: true → fixes it but I don't want mentions
• maxConcurrent: 1 → they still queue up one by one
• Manual session cleanup → works temporarily but sessions rebuild

Questions:

  1. Is there a way to make only the topic where the message was sent respond (not all topics)?
  2. Is there an ignoreNonTargeted or similar config for topics?
  3. Any other workaround for forum groups without requiring mentions?

Config:

channels.telegram.groups.-1003852106439.requireMention: false
agents.defaults.maxConcurrent: 1
agents.defaults.contextPruning: cache-ttl, ttl: 30m

sinful shadowBOT
true brambleBOT
#

I found one possibly useful knob you hadn’t mentioned: Telegram groups/topics have ingest?: boolean.

In code it only applies to mention-skipped messages. So the pattern is:

  • requireMention: true
  • ingest: true

That lets OpenClaw still emit internal message:received hooks for messages it does not reply to.

Important caveat: that is not the same as “reply normally but only in the current topic”. It’s more of a “watch/listen without auto-replying” workaround.

#

First, can you paste openclaw --version? Topic routing changed a bunch recently, so version matters here.

I checked the current docs/source, and this behavior looks wrong, not like a missing normal config knob.

  1. Only the current topic should respond

    • Telegram forum topics are supposed to get their own session key: ...:group:<chatId>:topic:<threadId>
    • The docs say topics are isolated, and the Telegram tests explicitly assert that behavior.
    • So if one topic message wakes all 5 topic sessions, that looks like a bug/regression.
  2. ignoreNonTargeted or similar

    • I did not find any ignoreNonTargeted-style Telegram topic config in docs or source.
    • agents.defaults.maxConcurrent: 1 only serializes the bad fanout, it does not prevent it.
  3. Best workaround without mentions

    • If your real goal is “the bot should still see everything, but not auto-reply to every non-mentioned message”, the closest workaround I found is:
      • keep requireMention: true
      • add ingest: true
#
  • ingest exists in src/config/types.telegram.ts for groups/topics, and in extensions/telegram/src/bot-message-context.body.ts it fires internal hooks for mention-skipped messages.
    • That means: observe/listen without normal auto-reply fanout.

Example:

{
  channels: {
    telegram: {
      groups: {
        "-1003852106439": {
          requireMention: true,
          ingest: true
        }
      }
    }