SkillfulAI
  • Skillful AI
    • Welcome
    • About us
    • Ecosystem
  • Web SDK
    • Overview
    • Getting Started
      • Installation
      • Quick Start
      • Authentication
    • SDK Reference
    • Templates
      • Telegram Bot Template
      • Express Server Template
        • API Reference
      • Discord Bot Template
        • ProActive Mode
      • Kick Stream Bot
        • Getting Started
          • Installation
          • Quick Start
        • Create Commands
        • Advanced Configurations
  • Unity Gaming SDK
    • Overview
    • Getting Started
      • Installation
      • Authentication
    • Services
      • Skillful Agents
        • Overview
        • Quick Start
        • Service Reference
      • Smart NPCs
        • Overview
        • Quick Start
        • Service Reference
      • Skillful Inference
        • Overview
        • Quick Start
        • Service Reference
          • Question Answering
          • Sentence Similarity
          • Speech Recognition
          • Text Classification
          • Text Generation
          • Text Summary
          • Text-To-Image
          • Zero Shot Classification
          • Translation (Localization)
    • Audio Recorder
    • Additional Utilities
Powered by GitBook
On this page
  • Build An Interactive Discord Bot
  • Step 1: Prerequisites
  • Step 2: Installation
  • Step 3: Basic Setup
  • Step 4: Run the Bot
  • Basic Usage
  • Debug Mode
  • Error Handling
  • Best Practices
  • Troubleshooting
PreviousAPI ReferenceNextProActive Mode

Last updated 2 months ago

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

Discord Bot Setup

  1. Go to

  2. Click "New Application"

  3. Navigate to the "Bot" section

  4. Click "Add Bot"

  5. Enable Privileged Intents:

    • MESSAGE CONTENT INTENT

    • SERVER MEMBERS INTENT

    • PRESENCE INTENT

  6. Copy your bot token

Skillful AI Setup

  1. for an API key

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

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

Run your bot to start the application:

node index.js

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

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

bot.start()
    .then(() => console.log('Bot started'))
    .catch(error => {
        console.error('Startup error:', error);
        process.exit(1);
    });

Best Practices

  1. Environment Variables

    require('dotenv').config();
    
    const bot = new SkillfulDiscordBot({
        discordToken: process.env.DISCORD_TOKEN,
        skillfulApiKey: process.env.SKILLFUL_API_KEY
    });
  2. Proper Shutdown

    process.on('SIGINT', async () => {
        console.log('Shutting down...');
        await bot.stop();
        process.exit(0);
    });
  3. Error Monitoring

    process.on('unhandledRejection', error => {
        console.error('Unhandled promise rejection:', error);
    });

Troubleshooting

Common Issues

  1. Invalid Token

    • Verify token in Discord Developer Portal

    • Check for token format issues

    • Ensure intents are enabled

  2. Connection Issues

    • Check internet connection

    • Verify Discord API status

    • Check for rate limiting

  3. Permission Issues

    • Verify bot has required permissions

    • Check channel permissions

    • Verify intent settings

For more help, join our .

Discord Developer Portal
Reach out
Discord community