feat(gateway): per-channel enabled_toolsets on channel_overrides - #88550
Open
sene1337 wants to merge 1 commit into
Open
feat(gateway): per-channel enabled_toolsets on channel_overrides#88550sene1337 wants to merge 1 commit into
sene1337 wants to merge 1 commit into
Conversation
Allow platforms.<name>.channel_overrides.<chat_id>.enabled_toolsets to replace platform_toolsets for that chat only (same validation path as webhook route toolsets). Enables multi-mode BlueBubbles/Discord/etc: restricted capture groups vs full-tool private desk chats without widening every conversation on the platform. Related to NousResearch#63990 (chat GUID admission) as the next layer of multi-mode messaging isolation.
Author
|
Cross-link: builds on multi-mode messaging isolation from #63990 (chat GUID admission). This PR is the per-chat tool surface layer. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Family / multi-mode messaging needs different tool surfaces on different chats of the same platform.
Example (BlueBubbles / iMessage):
skills,todo,kanban,no_mcp) so multiparty traffic cannot drive terminal/files/wikiterminal,file,web, …) so the agent can actually look things upToday
platform_toolsets.<platform>is all-or-nothing for every chat on that platform.channel_overridesalready support per-chatmodel/provider/system_prompt, but not toolsets.This PR adds:
Behavior
enabled_toolsetsplatform_toolsets.<platform>)_get_platform_toolspath as platform config and webhook route toolsets (unknown / platform-restricted names dropped)toolsets_for_source(webhooks) → channel override → platform defaultsWorks for any platform that uses
channel_overrides(BlueBubbles, Discord, Telegram, …), not only BlueBubbles.Related
Builds on the multi-mode messaging story in:
allowed_chat_guidsingress gate (which chats may enter the agent at all)#63990 answers "which conversations are admitted."
This PR answers "once admitted, which tools does this conversation get."
They are complementary; neither replaces the other.
Tests
uv run --with pytest --extra dev pytest \ tests/gateway/test_channel_override_toolsets.py \ tests/gateway/test_channel_overrides.py \ tests/gateway/test_webhook_route_toolsets.py -q # 26 passedDocs
website/docs/user-guide/messaging/index.md— channel override section extended withenabled_toolsets+ BlueBubbles example