Basic

Run a basic Agno agent as a Discord bot with conversation history.

Code

import discord

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

basic_agent = Agent(
    name="Basic Agent",
    model=OpenAIChat(id="gpt-4o"),
    db=SqliteDb(db_file="discord.db"),
    add_history_to_context=True,
    num_history_runs=3,
    add_datetime_to_context=True,
)

intents = discord.Intents.default()
intents.message_content = True
discord_agent = DiscordClient(basic_agent, client=discord.Client(intents=intents))
if __name__ == "__main__":
    discord_agent.serve()

Usage

First complete the Discord application, Message Content intent, and thread permission setup. This example uses a custom client that requests only the privileged Message Content intent.

Set up your virtual environment

uv venv --python 3.12
source .venv/bin/activate

Set your API keys

export OPENAI_API_KEY=xxx
export DISCORD_BOT_TOKEN=xxx

Install dependencies

uv pip install -U agno openai discord.py sqlalchemy

Run Agent

Save the code above as basic.py, then run:

python basic.py