2.6 KiB
2.6 KiB
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
discordchannel enabled in nanobot - one direct message or mention test
Prerequisites
- A working local nanobot reply:
nanobot agent -m "Hello!"
- Access to the Discord Developer Portal.
- A Discord server where you can invite a bot.
Install nanobot
python -m pip install nanobot-ai
nanobot onboard --wizard
Enable the Discord channel
Install the optional channel dependency:
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:
{
"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
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:
nanobot agent -m "/pairing approve ABCD-EFGH"
After approval, mention it in an allowed server channel:
@your-bot Hello from Discord
Security notes
- Keep
groupPolicyasmentionfor first deployment. - Use
allowChannelsfor server channels where the bot should operate. - Prefer pairing-only mode for user access; add
allowFromonly 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.