← 回首頁
Bot 設定 · DiscordEnglish

Discord Bot 設定教學

AgEnD 在 Discord 上靠你自己的 bot application 運作:forum 頻道讓每個 agent instance 各佔一個 thread, ClassicBot 的斜線指令則可在任何文字頻道使用。這份教學帶你開 server、建立 application, 並取得 agend quickstart 會問你的 Bot Token。 大約 5 分鐘。

開一個專用的 Discord Server

請開一個全新的 Discord Server 專門給 AgEnD 用,不要邀請其他人。任何能在頻道發言的人都能操控你的 agent,而 agent 能讀寫你專案裡的檔案 —— 把這個 server 當成你電腦上的終端機看待。
Discord 左側欄底部的加號(新增伺服器)
左側欄 → +(新增伺服器)
Discord 建立伺服器對話框,選擇「建立自己的」
選擇建立自己的,走完精靈

建立 Bot Application

1

登入 Developer Portal

到 discord.com/developers/applications登入,點 New Application。

Discord Developer Portal 的 application 列表與 New Application 按鈕
2

設定應用程式基本資訊

取個名字(這會成為 bot 在 Discord 的顯示名稱),同意條款後建立。

輸入 Discord application 名稱的對話框
3

取得 Bot Token

進入 Bot 頁籤 → Reset Token → 複製。 Discord 只會顯示一次,馬上存下來 —— agend quickstart 會用到。

Discord Bot 頁籤的 Reset Token 按鈕
絕對不要 commit 或外流 token。拿到的人可以完全操控你的 bot。 真的洩漏了就按 Reset Token,再跑一次 agend quickstart。
4

開啟 Privileged Intents

還在 Bot 頁籤,往下找 Privileged Gateway Intents。 AgEnD 必須要有 Message Content Intent 才讀得到你的訊息 —— 沒開的話 bot 連得上線但看不到你打什麼。三個一起開(如圖)也沒問題,可以少踩後面的雷。 最後按 Save Changes。

Discord Privileged Gateway Intents 三個開關全部開啟
5

進入 OAuth2 → URL Generator

在這裡產生 bot 的邀請連結。

Discord OAuth2 區塊,選擇 URL Generator
6

勾選 Scopes

勾 bot 和 applications.commands。 後者才會有 /start、/chat、/stop 這些斜線指令。

OAuth2 scope 勾選 bot 與 applications.commands
7

設定 Bot 權限

在 Bot Permissions 勾 Administrator(管理員)。 在自己的專用 server 上這是最省事的選擇 —— bot 需要建立頻道與 thread、管理訊息、在各處發言。

OAuth2 bot 權限勾選 Administrator
8

邀請 Bot 到你的 Server

複製頁面底部產生的 URL,貼到瀏覽器,選你剛開的 server。 在 AgEnD 啟動前 bot 會顯示離線,這是正常的。

9

準備 General 頻道 ID

quickstart 會先從訊息偵測你的帳號,請你確認使用者名稱與 ID。 請先準備 General agent 要回覆的頻道 ID;使用者 ID 留作手動輸入備用。 在 Discord:使用者設定 → 進階 → 開發者模式打開,然後:

  • • 手動輸入或網頁精靈:對自己按右鍵 → 複製使用者 ID。必須是有效的 17–20 位數字 ID。
  • • 對要當 General 的文字頻道按右鍵 → 複製頻道 ID。
10

執行 quickstart

agend quickstart      # 選 Discord,貼上 bot token、確認自己的帳號,再輸入頻道 ID

看到提示後,在所選伺服器中 bot 看得到的頻道發一則訊息,或私訊 bot。 只有顯示的使用者名稱與 ID 確實屬於自己時才確認。偵測最多等待 30 秒; 如果失敗或你不確認,就貼上自己的使用者 ID。空白或格式錯誤都不會接受。 偵測不需要 Message Content intent;正常 fleet 聊天仍需開啟前面說明的 intent。

quickstart 會找出 bot 所在的 server,寫好 fleet.yaml(存取權鎖定給你的使用者 ID), 並詢問要不要設定 ClassicBot(classicBot.yaml,允許這個 server、你是管理員)。 最後會詢問要不要把 fleet 安裝成服務並啟動;如果你選了不要,就執行 agend start。

接著在 General 頻道傳一則訊息。要開網頁 dashboard,在那裡用 /web: bot 會私訊給你登入連結和一次性代碼。

加到別人的 Server(外部 Bot 權限)

如果只是要在既有 server 用 ClassicBot 斜線指令(/start、/chat、/stop),不需要管理員權限,給下圖這組較小的權限就好。

不含管理員的較小 Discord bot 權限組合
用 ~/.agend/classicBot.yaml 的 allowed_guilds控制哪些 server 可以使用 ClassicBot。不是 ClassicBot 管理員的人在不在名單上的 server 的新頻道執行 /start 時,General 會先問你,附上 Allow / Allow+admin / Ignore 按鈕。名單留空不代表所有 server 都可以。ClassicBot 管理員(admin_users)和已經啟動的頻道不會再被問。quickstart 會把你自己的 server 加進去,並把你設為管理員。
defaults:
  backend: claude-code
  allowed_guilds:
    - "123456789012345678"

常見問題

問題原因解法
Bot 上線但不理訊息Message Content Intent 沒開Bot 頁籤 → Privileged Gateway Intents → 開啟 → Save Changes → 重啟 fleet
看不到斜線指令缺 applications.commands scope重新產生含該 scope 的邀請 URL,再邀請一次
Bot 無法建立頻道或 thread權限不足在自己的 server 給 Administrator,或至少開 Manage Channels / Manage Threads
在 server 執行 /start 沒有啟動 agentServer 不在 allowed_guilds在 General 核准請求,或把 guild ID 加進 classicBot.yaml 的 allowed_guilds,再執行一次 /start
想用 Telegram?看 Telegram Bot 設定教學。 Windows 使用者可參考 Windows 安裝指南。