Back to Nanobot

Build a Discord AI Agent with nanobot

docs/guides/discord-ai-agent.md

0.3.02.6 KB
Original Source

Build a Discord AI Agent with nanobot

This guide connects nanobot to Discord so a Discord user or server channel can talk to your self-hosted AI agent through the nanobot gateway.

What this guide builds

  • a Discord bot application
  • Message Content intent enabled
  • the discord channel enabled in nanobot
  • one direct message or mention test

Prerequisites

  • A working local nanobot reply:
bash
nanobot agent -m "Hello!"
  • Access to the Discord Developer Portal.
  • A Discord server where you can invite a bot.

Install nanobot

bash
python -m pip install nanobot-ai
nanobot onboard --wizard

Enable the Discord channel

Install the optional channel dependency:

bash
nanobot plugins enable discord

Create a Discord application, add a bot, copy the token, and enable MESSAGE CONTENT INTENT in the bot settings.

Merge this snippet into ~/.nanobot/config.json:

json
{
  "channels": {
    "discord": {
      "enabled": true,
      "token": "YOUR_BOT_TOKEN",
      "allowChannels": [],
      "groupPolicy": "mention",
      "streaming": true
    }
  }
}

Omitting allowFrom enables pairing-only mode. A new user should DM the bot first, get a pairing code, and be approved before using the bot in servers.

Invite the bot with permissions to read history and send messages.

Run nanobot gateway

bash
nanobot channels status
nanobot gateway

Test a message

Send the bot a DM first. It should return a pairing code. Approve it from a trusted local surface:

bash
nanobot agent -m "/pairing approve ABCD-EFGH"

After approval, mention it in an allowed server channel:

text
@your-bot Hello from Discord

Security notes

  • Keep groupPolicy as mention for first deployment.
  • Use allowChannels for server channels where the bot should operate.
  • Prefer pairing-only mode for user access; add allowFrom only when you want a static allowlist.
  • Avoid open group behavior in busy channels until session routing is clear.
  • Review tool access before inviting the bot into shared servers.

Troubleshooting

  • If no messages arrive, confirm Message Content intent is enabled.
  • If a DM returns a pairing code, approve it before testing normal replies.
  • If server messages are ignored, check pairing approval, allowChannels, and whether the bot was mentioned.
  • If the bot cannot reply, confirm the invite permissions and channel overrides.

Next: memory, automations, MCP tools