Build An Interactive Discord Bot
Build An Interactive Discord Bot
This guide will walk you through setting up and using the Skillful AI Discord bot integration. Our Discord integration allows you to create AI-powered Discord bots that can interact with users, generate images, and leverage all of Skillful AI's capabilities.
Step 1: Prerequisites
Step 1: Prerequisites
Discord Bot Setup
Go to Discord Developer Portal
Click "New Application"
Navigate to the "Bot" section
Click "Add Bot"
Enable Privileged Intents:
MESSAGE CONTENT INTENT
SERVER MEMBERS INTENT
PRESENCE INTENT
Copy your bot token
Skillful AI Setup
Reach out for an API key
Step 2: Installation
Step 2: Installation
Using a code editor like Visual Studio Code, we can create a new project with:
# Create new project directory
mkdir my-skillful-bot
cd my-skillful-bot
# Initialize our project
npm init -y
# Install the Discord bot template
npm install @skillfulai/discord-template
Step 3: Basic Setup
Step 3: Basic Setup
Create an index.js
script and copy the below into it. The basic setup will disable ProActive Mode by default, but enable everything else you need to interact with your AI Agent.
const SkillfulDiscordBot = require('@skillfulai/discord-template');
// Initialize bot
const bot = new SkillfulDiscordBot({
discordToken: 'your_discord_token',
skillfulApiKey: 'your_skillful_api_key'
// Optional
agentName: 'Wojak', // Your Agent Name
debug: false, // Default: false
proactive: false, // Default: false
proactiveThreshold: 50 // Default: 50
});
// Start bot
bot.start()
.then(() => console.log('Bot started'))
.catch(console.error);
// Handle shutdown
process.on('SIGINT', async () => {
await bot.stop();
process.exit(0);
});
Step 4: Run the Bot
Step 4: Run the Bot
Run your bot to start the application:
node index.js
Basic Usage
Basic Usage
You can interact with your agent in a few different ways:
Direct Mentions
The bot responds to direct mentions:
@YourBot Hello there!
Replies
The bot will respond to direct replies.
ProActive Mode
If ProActive Mode has been enabled in the constructor, your bot will dynamically jump into conversations and reply to users.
Debug Mode
Debug Mode
Enable debug logging:
const bot = new SkillfulDiscordBot({
discordToken: 'token',
skillfulApiKey: 'key',
debug: true
});
Debug mode shows:
Message processing
Engagement decisions
Error details
Connection status
Error Handling
Error Handling
bot.start()
.then(() => console.log('Bot started'))
.catch(error => {
console.error('Startup error:', error);
process.exit(1);
});
Best Practices
Best Practices
Environment Variables
require('dotenv').config(); const bot = new SkillfulDiscordBot({ discordToken: process.env.DISCORD_TOKEN, skillfulApiKey: process.env.SKILLFUL_API_KEY });
Proper Shutdown
process.on('SIGINT', async () => { console.log('Shutting down...'); await bot.stop(); process.exit(0); });
Error Monitoring
process.on('unhandledRejection', error => { console.error('Unhandled promise rejection:', error); });
Troubleshooting
Troubleshooting
Common Issues
Invalid Token
Verify token in Discord Developer Portal
Check for token format issues
Ensure intents are enabled
Connection Issues
Check internet connection
Verify Discord API status
Check for rate limiting
Permission Issues
Verify bot has required permissions
Check channel permissions
Verify intent settings
For more help, join our Discord community.
Last updated