Discord Bot × AI で業務自動化する方法:問い合わせ対応からタスク管理まで
約10分で読めます
Discordはもはやゲーマーだけのツールではない。小規模チームの業務コミュニケーション基盤として使われるケースが急増している。そこにAIを組み込んだBotを置くことで、驚くほど多くの業務を自動化できる。
なぜDiscord × AIなのか
SlackやTeamsではなくDiscordを選ぶ理由は3つだ。
- 無料で十分使える: Bot稼働に追加費用がかからない
- API制限が緩い: 小規模チームなら制限にまず引っかからない
- 開発の自由度が高い: discord.jsの情報量が豊富で実装が速い
基本構成
Discord Bot (Node.js + discord.js)
├── メッセージ監視
├── Anthropic API 呼び出し
└── 結果をチャンネルに投稿
最小構成のセットアップ
mkdir discord-ai-bot && cd discord-ai-bot
npm init -y
npm install discord.js @anthropic-ai/sdk dotenv
// bot.js
import { Client, GatewayIntentBits } from 'discord.js';
import Anthropic from '@anthropic-ai/sdk';
import 'dotenv/config';
const discord = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent,
],
});
const anthropic = new Anthropic();
discord.on('messageCreate', async (message) => {
if (message.author.bot) return;
if (!message.content.startsWith('!ask')) return;
const question = message.content.replace('!ask ', '');
const response = await anthropic.messages.create({
model: 'claude-sonnet-4-20250514',
max_tokens: 1024,
messages: [{ role: 'user', content: question }],
});
await message.reply(response.content[0].text);
});
discord.login(process.env.DISCORD_TOKEN);
これだけで「!ask 〜」と打つとAIが回答するBotが動く。
実践的な自動化パターン
パターン1: 問い合わせ自動応答
チームのFAQチャンネルに蓄積されたナレッジをAIに読ませ、自動回答させる。
const SYSTEM_PROMPT = `あなたはチームのサポート担当です。
以下のFAQに基づいて回答してください。FAQにない質問は「担当者に確認します」と返してください。
FAQ:
- 経費精算: Slackの#keihi チャンネルでフォームを提出
- 有給申請: 社内ポータルの勤怠管理から申請
- VPN接続: IT部門のマニュアル https://example.com/vpn を参照
`;
// メッセージ処理部分
const response = await anthropic.messages.create({
model: 'claude-sonnet-4-20250514',
max_tokens: 512,
system: SYSTEM_PROMPT,
messages: [{ role: 'user', content: question }],
});
ポイントは回答範囲を制限すること。「何でも答えるBot」ではなく、FAQベースで答えられないものは人間にエスカレーションする設計にする。
パターン2: 議事録の自動要約
ミーティングチャンネルに流れたメッセージをまとめて要約する。
discord.on('messageCreate', async (message) => {
if (message.content !== '!summary') return;
// 直近50件のメッセージを取得
const messages = await message.channel.messages.fetch({ limit: 50 });
const conversation = messages
.reverse()
.filter(m => !m.author.bot)
.map(m => `${m.author.displayName}: ${m.content}`)
.join('\n');
const response = await anthropic.messages.create({
model: 'claude-sonnet-4-20250514',
max_tokens: 1024,
messages: [{
role: 'user',
content: `以下のチャット内容を議事録形式で要約してください。
決定事項・TODO・次回のアクションに分けてください。
${conversation}`,
}],
});
await message.reply(`📋 **議事録要約**\n${response.content[0].text}`);
});
パターン3: 日報の自動生成
個人の活動ログから日報を自動生成する。
// !daily コマンドで、その日の自分のメッセージから日報を生成
discord.on('messageCreate', async (message) => {
if (message.content !== '!daily') return;
const today = new Date();
today.setHours(0, 0, 0, 0);
const channels = message.guild.channels.cache.filter(c => c.isTextBased());
let allMessages = [];
for (const [, channel] of channels) {
try {
const msgs = await channel.messages.fetch({ limit: 100, after: today });
const userMsgs = msgs.filter(m => m.author.id === message.author.id);
allMessages.push(...userMsgs.values());
} catch { /* アクセス権のないチャンネルはスキップ */ }
}
const log = allMessages.map(m => `[#${m.channel.name}] ${m.content}`).join('\n');
const response = await anthropic.messages.create({
model: 'claude-sonnet-4-20250514',
max_tokens: 512,
messages: [{
role: 'user',
content: `以下の今日の活動ログから日報を生成してください。\n\n${log}`,
}],
});
await message.author.send(`**本日の日報**\n${response.content[0].text}`);
});
コスト管理のコツ
AI APIを呼ぶとコストが発生する。以下の対策が実用的だ。
- レート制限: 1ユーザーあたり1分間に3回までなどの制限を設ける
- キャッシュ: 同じ質問には前回の回答を返す
- モデル選択: 簡単な質問にはHaikuクラス、複雑な質問にはSonnetを使い分ける
const rateLimiter = new Map();
function checkRateLimit(userId) {
const now = Date.now();
const userHistory = rateLimiter.get(userId) || [];
const recent = userHistory.filter(t => now - t < 60000);
if (recent.length >= 3) return false;
recent.push(now);
rateLimiter.set(userId, recent);
return true;
}
デプロイ先の選択肢
- 自宅サーバー / Raspberry Pi: 月額0円。電気代だけ
- Railway / Render: 無料枠あり。小規模なら十分
- VPS(Vultr / Linode): 月$5程度。安定稼働が必要なら
個人開発なら、最初はRailwayの無料枠で十分だ。
まとめ
Discord Bot × AIの組み合わせは、チーム業務の自動化において最もコストパフォーマンスが高い選択肢のひとつだ。問い合わせ対応、議事録要約、日報生成など、「人がやらなくてもいい作業」をBotに任せることで、チームの生産性を確実に上げられる。
まずは簡単なQ&A Botから始めて、チームの反応を見ながら機能を増やしていくのがおすすめだ。
関連記事
A
Agentive 編集部
AIエージェントを実際に使い倒す個人開発者。サイト制作の自動化を実践しながら、その知見を発信しています。