This release is a pre-release and may not be stable for production use.
Microsoft Agents Hosting - Slack
Build Slack agents with the Microsoft 365 Agents SDK using typed message and event handlers, direct Slack Web API calls, and streaming responses.
Release Notes
| Version | Date | Release Notes |
|---|---|---|
| 1.9.0 | 2026-10-19 | 1.9.0 Release Notes |
Packages Overview
We offer the following PyPI packages to create conversational experiences based on Agents:
Installation
pip install microsoft-agents-hosting-slack
Usage
Given configured application options (including storage) and a connection manager:
from microsoft_agents.hosting.core.app import AgentApplication
from microsoft_agents.hosting.core.app.state import TurnState
from microsoft_agents.hosting.slack import SlackAgentExtension, SlackTurnContext
app = AgentApplication[TurnState](options, connection_manager=connections)
slack = SlackAgentExtension(app)
@slack.message()
async def on_slack_message(context: SlackTurnContext, state: TurnState) -> None:
channel_data = context.activity.slack_channel_data
await slack.call(
context,
"chat.postMessage",
{
"channel": channel_data.channel,
"text": f"You said: {context.activity.text}",
},
token=channel_data.api_token or "",
)
Use @slack.message("hello") for a specific message or @slack.event("reaction_added")
for a specific event. Both accept a string, a compiled regular expression, or a list of
either, and match only Slack activities. When called without a selector, they match every
Slack message or event and register at RouteRank.LAST, so more specific routes win.
on_message() and on_event() are deprecated aliases.
@slack.conversation_update(...), @slack.members_added(), @slack.members_removed(),
and @slack.installation_update() mirror the corresponding AgentApplication route
hooks, but match only Slack activities and pass a SlackTurnContext to the handler.
Handlers receive a SlackTurnContext with typed activity.slack_channel_data and
access to the per-turn Slack API client through context.client. Envelope, payload,
and response models support nested lookups such as envelope.get("event.channel")
and typed lookups such as response.get("count", type_=int).
Use slack.create_stream(context, thread_ts=...) to start a SlackStream, then
append content and stop the stream. See the API docstrings for routing options,
client configuration, streaming requirements, and lookup behavior.
Quick Links
Metadata
Release files for microsoft-agents-hosting-slack 1.10.0.dev0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| microsoft_agents_hosting_slack-1.10.0.dev0.tar.gz | 18.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| microsoft_agents_hosting_slack-1.10.0.dev0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 43.8 kB
Release files / microsoft_agents_hosting_slack-1.10.0.dev0.tar.gz
| Download URL | microsoft_agents_hosting_slack-1.10.0.dev0.tar.gz |
|---|---|
| Size | 18.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
681801ddb39bd652368df7fe9ed447df739d57221f22ce656bba168c29356d8c
|
|
BLAKE2b-256 checksum How to use checksums |
56eca23a8118930f98bd71a141d8ff4ba5cf731e4e39953319e2f33d11089644
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
RestSharp/106.13.0.0
|
Release files / microsoft_agents_hosting_slack-1.10.0.dev0-py3-none-any.whl
| Download URL | microsoft_agents_hosting_slack-1.10.0.dev0-py3-none-any.whl |
|---|---|
| Size | 24.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5c76236c11518b3f326c7e15cbccfcbec2587108ff478168ce36639d5f88b136
|
|
BLAKE2b-256 checksum How to use checksums |
0c6a94feec975075f9fc920600a14e68d13703aa753af546fa89106d6978ee0f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
RestSharp/106.13.0.0
|
Security for microsoft-agents-hosting-slack 1.10.0.dev0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.