開発ガイド 読了目安 約10分 更新 2026.07.03
AI を利用した Discord Bot 開発
AI コーディング支援を利用した Bot 開発の進め方と、LLM API を組み込んだ会話 Bot を作る際の設計・コスト・安全性の考え方を整理します。
この記事で分かること
- AI コーディング支援を Bot 開発で活かすコツ
- AI が生成した古いコードを見抜く観点
- LLM API を組み込む場合の設計ポイント
- コスト・レート制限・安全性の考え方
「AI を利用した Bot 開発」には2つの意味があります。AI に開発を手伝ってもらう(コーディング支援)と、AI を機能として組み込む(会話 Bot など)です。この記事では両方を扱います。
AI にコーディングを手伝ってもらう
有効な使い方
AI コーディング支援(チャット型 AI やエディタ組み込み型)は Bot 開発と相性が良く、特に次の場面で有効です。
- 最小構成のコードの雛形を作ってもらう
- エラー全文を貼って原因の見当をつけてもらう
- 書いたコードの改善点・セキュリティ上の問題を指摘してもらう
- 公式ドキュメントの英語を読み解く補助
注意すべき点
- 古いコードが出てくる: AI の学習データには過去のバージョンのコードが含まれます。discord.py の v1 系の書き方や、廃止された API が混ざることがあります。動かない・警告が出る場合は、公式ドキュメントの現行版と突き合わせます(古い記事・バージョン差FAQの観点がそのまま使えます)
- もっともらしい誤りがある: 存在しないメソッドやイベント名を出すことがあります。「AI が言っていた」ではなく公式ドキュメントを一次情報にします
- 秘密情報を貼らない: エラーログや設定を AI に貼る際、Token・パスワード・個人情報を含めないようにします
確認ポイント
- 生成されたコードの各行が何をしているか説明できる
- ライブラリの現行バージョンで動くことを確認した
- Token などの秘密情報が会話に含まれていない
AI を Bot に組み込む
全体の構成
LLM(大規模言語モデル)API を利用した会話 Bot の基本形は次の通りです。
- Discord でメッセージやコマンドを受け取る
- 必要な文脈(直近の会話など)を添えて LLM API へリクエストする
- 応答を Discord のメッセージとして返す
設計のポイント
- 応答時間: LLM の応答には時間がかかります。スラッシュコマンドなら defer(応答の保留)を使い、応答期限切れを避けます(Interaction応答・defer FAQ)
- 反応する範囲を絞る: 全メッセージに反応する設計は、コストもレート制限も事故率も跳ね上がります。メンションされた時・特定チャンネル・特定コマンドに限定するのが基本です
- 文脈の管理: 会話の続きに応答するには、直近のやり取りを保存して API に渡す必要があります。どこまで(件数・期間)保持するかを決めます
- メッセージの長さ制限: Discord のメッセージには文字数上限があります。長い応答は分割や Embed の利用を検討します
コストと安全性
- API 利用料: LLM API は従量課金が基本です。1日あたりの利用上限をコード側で設け、想定外の請求を防ぎます
- レート制限: Discord 側と AI サービス側の両方にレート制限があります。連投への応答制限(cooldown)を入れます
- 入力の扱い: ユーザーの入力をそのまま API へ渡すと、不適切な生成を誘導される可能性があります。システムプロンプトで役割を固定し、AI サービス側の安全機能・利用規約を確認します
- 個人情報: ユーザーの発言を外部 API に送ることになります。サーバーのメンバーに Bot の仕組みを説明できる状態にしておくのが誠実です
⚠️ AI の応答をそのまま「管理操作」(BAN、ロール付与など)に接続する設計は避けてください。AI の判断ミスがそのまま権限事故になります。管理操作は必ず人間の確認を挟みます。
確認ポイント
- API キーを環境変数で管理している(Token と同じ扱い)
- 利用上限・cooldown を実装した
- 反応する範囲(チャンネル・条件)を限定した
- AI サービスの利用規約・データの扱いを確認した
一次情報(公式ドキュメント)
- Discord Developer Documentation
- 利用する AI サービスの公式ドキュメント