Description
openab currently hard-rejects all messages from other bots (msg.author.bot → return in discord.rs:41-43). This is a sensible default to prevent loops, but it blocks a legitimate and increasingly common architecture: a dispatcher bot that routes tasks to openab worker agents.
Proposed change
Add an allowed_bots_from config option that accepts a list of bot user IDs whose messages should be processed instead of ignored:
[discord]
allowed_bots_from = ["123456789012345678"]
The bot filter logic would become:
if msg.author.bot {
// Self-loop guard: never process own messages
if msg.author.id == bot_id {
return;
}
// Allow explicitly trusted bots
if !self.allowed_bots_from.contains(&msg.author.id.to_string()) {
return;
}
}
When allowed_bots_from is empty (default), behavior is identical to today — all bot messages are rejected.
Use Case
In a multi-agent setup, a central dispatcher bot creates threads, assigns tasks, and @mentions specific openab agents. Without bot-to-bot messaging, this workflow is impossible — the dispatcher's mentions are silently ignored.
An allowlist approach (rather than a blanket "accept all bots" flag) keeps the default safe:
- Only explicitly trusted bot IDs are accepted
- Self-loop guard prevents an agent from processing its own messages, even if misconfigured
- Unrelated bots in the same server cannot accidentally trigger agents
This pattern is used in production multi-agent deployments today via a fork, and upstreaming it would benefit anyone building dispatcher/worker architectures with openab.
Description
openab currently hard-rejects all messages from other bots (
msg.author.bot → returnindiscord.rs:41-43). This is a sensible default to prevent loops, but it blocks a legitimate and increasingly common architecture: a dispatcher bot that routes tasks to openab worker agents.Proposed change
Add an
allowed_bots_fromconfig option that accepts a list of bot user IDs whose messages should be processed instead of ignored:The bot filter logic would become:
When
allowed_bots_fromis empty (default), behavior is identical to today — all bot messages are rejected.Use Case
In a multi-agent setup, a central dispatcher bot creates threads, assigns tasks, and @mentions specific openab agents. Without bot-to-bot messaging, this workflow is impossible — the dispatcher's mentions are silently ignored.
An allowlist approach (rather than a blanket "accept all bots" flag) keeps the default safe:
This pattern is used in production multi-agent deployments today via a fork, and upstreaming it would benefit anyone building dispatcher/worker architectures with openab.