Discord

Deploy agents to Discord for community support and moderation.

The Discord integration connects any Agno agent to Discord via the Gateway API, so you don't need to set up webhooks.

Quick Start

Set DISCORD_BOT_TOKEN and OPENAI_API_KEY in the terminal, then save the code as discord_agent.py. Enable Message Content Intent in the Discord Developer Portal as well as in the client below.

discord_agent.py
import discord

from agno.db.sqlite import SqliteDb
from agno.agent import Agent
from agno.models.openai import OpenAIResponses
from agno.integrations.discord import DiscordClient

agent = Agent(
    name="Assistant",
    model=OpenAIResponses(id="gpt-5.4"),
    db=SqliteDb(db_file="tmp/discord.db"),
    add_history_to_context=True,
)

intents = discord.Intents.default()
intents.message_content = True
discord_client = DiscordClient(agent, client=discord.Client(intents=intents))

if __name__ == "__main__":
    discord_client.serve()
uv pip install agno discord.py openai sqlalchemy
python discord_agent.py

How It Works

ConceptBehavior
GatewayDirect connection to Discord, no webhooks or tunnels needed
ThreadsUses Discord thread IDs as session IDs; the configured database and history setting provide follow-up context
IntentsRequires Message Content Intent enabled in Developer Portal
PermissionsSend Messages, Read History, Create Threads, Attach Files

Setup

You need a Discord Application with a bot user. Create one in the Discord Developer Portal.

Then set your bot token as an environment variable:

export DISCORD_BOT_TOKEN="..."
export OPENAI_API_KEY="your_openai_api_key"

Next Steps