feat(channel): add Discord channel

This commit is contained in:
zhayujie
2026-05-30 18:20:27 +08:00
parent 54a20bca92
commit c5b8e06891
18 changed files with 1055 additions and 186 deletions

View File

@@ -129,6 +129,7 @@ CowAgent は主要な LLM プロバイダーすべてに対応しています。
| [WeChat 公式アカウント](https://docs.cowagent.ai/ja/channels/wechatmp) | ✅ | ✅ | | ✅ | |
| [Telegram](https://docs.cowagent.ai/ja/channels/telegram) | ✅ | ✅ | ✅ | ✅ | ✅ |
| [Slack](https://docs.cowagent.ai/ja/channels/slack) | ✅ | ✅ | ✅ | | ✅ |
| [Discord](https://docs.cowagent.ai/ja/channels/discord) | ✅ | ✅ | ✅ | | ✅ |
> Feishu と WeCom Bot は **Web コンソール内で QR コードをスキャンするだけで接続**できます — パブリック IP は不要です。詳細は [チャネル概要](https://docs.cowagent.ai/ja/channels/index) を参照してください。

View File

@@ -0,0 +1,93 @@
---
title: Discord
description: Discord Bot 経由で CowAgent を接続
---
> Discord Bot の **Gateway 常時接続** を通じて CowAgent を接続します。ダイレクトメッセージDMおよびサーバーチャンネル@メンションまたはボットへの返信で起動に対応。Gateway は WebSocket の常時接続を使うため公開 IP やコールバック URL は不要で、すぐに利用できます。
## 1. 接続手順
### ステップ 1: Discord アプリと Bot を作成
1. [Discord 開発者ポータル](https://discord.com/developers/applications) を開き、**New Application** をクリックして名前(例: `CowAgent`)を入力し作成します。
2. 左メニューの **Bot** ページで **Reset Token** をクリックして Bot Token を生成し、コピーして安全に保管します(一度だけ表示されます)。
<Tip>
この Token は Bot のパスワードに相当します。漏洩しないようにしてください。万一漏洩した場合は Bot ページで再度 **Reset Token** をクリックして再生成できます。
</Tip>
### ステップ 2: Message Content Intent を有効化
DM・チャンネルいずれもテキスト読み取りにこの権限が必要です。
1. **Bot** ページの **Privileged Gateway Intents** を探します。
2. **Message Content Intent** をオンにして保存します。
<Note>
この権限を有効にしないと、受信メッセージの本文が空になり、ボットが応答しません。
</Note>
### ステップ 3: Bot をサーバーに招待
1. 左メニューの **OAuth2 → URL Generator** を開きます。
2. **Scopes** で `bot` をチェックします。
3. **Bot Permissions** で最低限以下をチェックします: `Send Messages`、`Read Message History`、`Attach Files`、`View Channels`。
4. 下部に生成された認証 URL をコピーしてブラウザで開き、対象のサーバーを選択して認証を完了します。
<Note>
DM のみを利用する場合はこのステップを省略できますが、ボットとの DM チャンネルが必要です(ユーザーがボットに直接メッセージを送るなど)。
</Note>
### ステップ 4: CowAgent に接続
<Tabs>
<Tab title="Web コンソール(推奨)">
Web コンソール(既定 `http://127.0.0.1:9899`)を開き、**チャネル** メニュー → **チャネルを追加** → **Discord** を選択し、Bot Token を貼り付けて接続をクリックします。
</Tab>
<Tab title="設定ファイル">
`config.json` に以下を追加して Cow を起動します:
```json
{
"channel_type": "discord",
"discord_token": "your-discord-bot-token",
"discord_group_trigger": "mention_or_reply"
}
```
| パラメータ | 説明 | 既定値 |
| --- | --- | --- |
| `discord_token` | 開発者ポータルの Bot ページで生成した Bot Token | - |
| `discord_group_trigger` | チャンネルのトリガー方式: `mention_or_reply`@ またはボットへの返信)/ `mention_only`@ のみ)/ `all`(全メッセージ) | `mention_or_reply` |
</Tab>
</Tabs>
ログに以下のような出力が表示されれば接続成功です:
```
[Discord] Bot logged in as CowAgent#1234 (id=123456789)
[Discord] ✅ Discord bot ready, listening for messages
```
## 2. 機能
| 機能 | 対応状況 |
| --- | --- |
| ダイレクトメッセージDM | ✅ |
| サーバーチャンネル(@bot / ボットへの返信) | ✅ |
| テキストメッセージ | ✅ 送受信 |
| 画像メッセージ | ✅ 送受信 |
| ファイルメッセージ | ✅ 送受信PDF / Word / Excel など) |
<Note>
Discord の 1 メッセージは最大 2000 文字です。長い返信は改行単位で自動的に複数メッセージに分割して送信されます。
</Note>
## 3. 使い方
接続が完了したら:
- **ダイレクトメッセージDM**: サーバーのメンバー一覧からボットを見つけ、アイコンをクリックして直接メッセージを送ります。
- **チャンネル**: ボットを招待したチャンネルで、`@your-bot こんにちは` または **ボットのメッセージへの返信** で起動します。
画像やファイルを送るときは、添付の入力欄に **テキスト説明**説明・質問を書いて一緒に送信できます。Bot は添付ファイルと説明を合わせて回答します。先に添付を送り、その後に質問を送る形でも、2 つのメッセージは自動でまとめて処理されます。

View File

@@ -11,6 +11,9 @@ CowAgent は複数のチャットチャネルへの接続に対応しており
| チャネル | テキスト | 画像 | ファイル | 音声 | グループチャット |
| --- | :-: | :-: | :-: | :-: | :-: |
| [Telegram](/ja/channels/telegram) | ✅ | ✅ | ✅ | ✅ | ✅ |
| [Slack](/ja/channels/slack) | ✅ | ✅ | ✅ | | ✅ |
| [Discord](/ja/channels/discord) | ✅ | ✅ | ✅ | | ✅ |
| [WeChat](/ja/channels/weixin) | ✅ | ✅ | ✅ | ✅ | |
| [Web コンソール](/ja/channels/web) | ✅ | ✅ | ✅ | ✅ | |
| [Feishu](/ja/channels/feishu) | ✅ | ✅ | ✅ | ✅ | ✅ |
@@ -19,8 +22,6 @@ CowAgent は複数のチャットチャネルへの接続に対応しており
| [QQ](/ja/channels/qq) | ✅ | ✅ | ✅ | | ✅ |
| [WeCom アプリ](/ja/channels/wecom) | ✅ | ✅ | ✅ | ✅ | |
| [WeChat 公式アカウント](/ja/channels/wechatmp) | ✅ | ✅ | | ✅ | |
| [Telegram](/ja/channels/telegram) | ✅ | ✅ | ✅ | ✅ | ✅ |
| [Slack](/ja/channels/slack) | ✅ | ✅ | ✅ | | ✅ |
- **画像 / ファイル / 音声**列は対応するメッセージタイプの送受信に対応していることを示します。詳細は各チャネルのドキュメントを参照してください
- **グループチャット**列はグループメッセージを認識して応答できることを示します
@@ -41,3 +42,4 @@ CowAgent は複数のチャットチャネルへの接続に対応しており
- [WeChat 公式アカウント](/ja/channels/wechatmp) — WeChat 公式アカウント(購読アカウント / サービスアカウント)
- [Telegram](/ja/channels/telegram) — グローバル IM、5 分で接続、公開 IP 不要
- [Slack](/ja/channels/slack) — チームコラボレーション IM、Socket Mode 接続、公開 IP 不要
- [Discord](/ja/channels/discord) — コミュニティ IM、Gateway 接続、公開 IP 不要