-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
[Feature]: Support for multiple Azure/Teams bots on a single Openclaw Gateway #71058
Copy link
Copy link
Open
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.enhancementNew feature or requestNew feature or requestimpact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.Auth, provider routing, model choice, or SecretRef resolution may break.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Description
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.enhancementNew feature or requestNew feature or requestimpact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.Auth, provider routing, model choice, or SecretRef resolution may break.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Type
Fields
Priority
None yet
Summary
Add support for mutliple Teams bots for single Openclaw gateway.
Problem to solve
Currently channels.msteams is a single object (additionalProperties: false). One Azure App Registration, one Teams bot identity for the entire OpenClaw instance.
For organizations running multiple agents (e.g. one agent per team member), this means all agents share a single bot identity — users DM "Bot"
regardless of which agent they're actually talking to. The routing works, but the identity layer is invisible and the UX feels like a generic chatbot rather than a named agent.
Proposed solution
Allow channels.msteams to accept either the current single-object form (fully backward compatible) or an array of bot configurations, each bound
to a specific agent:
"channels": {
"msteams": [
{
"appId": "aaa-111",
"appPassword": "...",
"tenantId": "...",
"agentBinding": "main",
"dmPolicy": "allowlist",
"allowFrom": ["[email protected]"]
},
{
"appId": "bbb-222",
"appPassword": "...",
"tenantId": "...",
"agentBinding": "john",
"dmPolicy": "allowlist",
"allowFrom": ["[email protected]", "[email protected]"]
}
]
}
Alternatives considered
No response
Impact
Affected: users / systems / channels
Severity: Workflow limitation — not a blocker, but a meaningful UX ceiling
The current single-bot setup works functionally. Routing is correct. But it creates a permanent identity gap: every agent speaks as the same
bot, regardless of who the user thinks they're talking to. For orgs where agents are meant to be named colleagues (Axis, Forge, Grid, Pulse),
this undermines the entire model. The more agents you add, the worse it gets — the single bot identity becomes a lie that grows more obvious
over time.
Frequency: Always — by design
This is not an intermittent bug. Every single Teams message, every DM, every reply is affected. There is no workaround within the current config
schema that provides per-agent identity — the constraint is structural.
Practical consequences:
No agent identity in
Teams
Can't leverage Teams
directory
Onboarding friction
Multi-instance workaround
is costly
Scales poorly
Evidence/examples
No response
Additional information
No response