Setup Steps
Follow the Slack setup guide in the cookbook. You will need:SLACK_TOKEN
(Bot User OAuth Token)SLACK_SIGNING_SECRET
(App Signing Secret)- An ngrok tunnel (for local development) and event subscriptions pointing to
/slack/events
Example Usage
Create an agent, expose it with theSlack
interface, and serve via AgentOS
:
basic.py
cookbook/agent_os/interfaces/slack/basic.py
.
Core Components
Slack
(interface): Wraps an AgnoAgent
orTeam
for Slack integration via FastAPI.AgentOS.serve
: Serves the FastAPI app using Uvicorn.
Slack
Interface
Main entry point for Agno Slack applications.
Initialization Parameters
Parameter | Type | Default | Description |
---|---|---|---|
agent | Optional[Agent] | None | Agno Agent instance. |
team | Optional[Team] | None | Agno Team instance. |
agent
or team
.
Key Method
Method | Parameters | Return Type | Description |
---|---|---|---|
get_router | use_async: bool = True | APIRouter | Returns the FastAPI router and attaches endpoints. |
Endpoints
Mounted under the/slack
prefix:
POST /slack/events
- Handles all Slack events (URL verification, messages, app mentions)
- Verifies Slack signature on each request
- Uses thread timestamps as session IDs for per-thread context
- Streams responses back into the originating thread (splits long messages)
Testing the Integration
- Run your app locally:
python <my-app>.py
(ensure ngrok is running) - Invite the bot to a channel:
/invite @YourAppName
- Mention the bot in a channel:
@YourAppName hello
- Open a DM with the bot and send a message
Troubleshooting
- Verify
SLACK_TOKEN
andSLACK_SIGNING_SECRET
are set - Confirm the bot is installed and invited to the channel
- Check ngrok URL and event subscription path (
/slack/events
) - Review application logs for signature failures or permission errors