-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Summary
- add a
slack.group.messagetool that opens a Slack multiparty DM (conversations_open) when users request messaging several people - ensure the tool reuses
slack.user.resolveto translate spoken names to user IDs before opening the group DM - document the decision to prefer group conversations over sequential individual DMs
Acceptance Criteria
- tool accepts name list, resolves to unique Slack user IDs, and opens/uses a multiparty DM channel
- handles existing group DMs by reusing the returned channel ID when appropriate
- prompt guidance instructs agents to call this tool whenever multiple recipients are requested
Notes
- Slack MPIM supports up to 8 participants (including the bot); handle or surface errors when exceeding limits
- consider storing channel IDs in the response so follow-up messages can reuse the same group conversation
- update voice-agent planning docs to reflect this default behavior
Example
@slack_toolset.tool(name='slack.group.message')
def send_group_message(ctx: RunContext[Deps], params: SlackGroupMessageParams) -> SlackGroupDelivery:
matches = ctx.deps.tools.call('slack.user.resolve', {'names': params.users})
user_ids = [m.user_id for m in matches]
response = ctx.deps.client.conversations_open(users=user_ids)
channel_id = response['channel']['id']
post = ctx.deps.client.chat_postMessage(channel=channel_id, text=params.text)
return SlackGroupDelivery(channel_id=channel_id, ts=post['ts'], members=user_ids)Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request