本篇文章更新時間:2026/06/04
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知或向一介資男的 LINE 社群反應。
如果本站內容對你有幫助,歡迎贊助支持 。
內容目錄
前言:AI Agent 不該每次都從零開始
你有沒有這種經驗:每次跟 AI 聊新的 session,都得重新解釋一次你的偏好、你的專案結構、你的 coding style?你昨天教它的東西,今天它全忘了。
市面上的 AI 聊天機器人都有這個問題 — 它們是無狀態的。每次對話都是全新的開始。
kiro-discord-bot 是我開發的開源專案,解決的正是這個問題:一個住在 Discord 裡的可訓練 AI agent,綁定你的 codebase、記住你的規矩、越用越強。
它不是聊天機器人。它是一個持續成長的開發助手,透過記憶系統和專案綁定,隨著使用時間累積能力。
核心理念:越用越強
一般 AI bot 的能力是固定的。kiro-discord-bot 的能力是累積的:
| 時間 | 做什麼 | 效果 |
|---|---|---|
| Day 1 | 綁定專案 !start /home/user/my-project |
Agent 開始認識你的 codebase |
| Day 3 | 教它規矩 !memory add 永遠用繁體中文回答 |
永久記憶,跨 session 生效 |
| Day 7 | 加入 steering 文件定義架構邊界 | Agent 遵守你的模組規則和禁止事項 |
| Day 14 | 設定 Cron 排程 /cron |
每天自動巡檢伺服器、跑報告 |
| Day 30 | 啟用 MCP 插件(Discord 操作、媒體生成) | Agent 能主動跨頻道協作、生成圖片影片 |
Memory + Steering + 對話歷史 + MCP 工具持續累積。第一天它是一個聽話的助手,第三十天它是你的團隊成員。
功能全覽
專案綁定
- 每個 Discord 頻道綁定一個專案目錄
- Agent 可以讀寫程式碼、跑測試、執行命令、管理基礎設施 — 在你的真實 repo 中
ALLOWED_CWD_ROOTS限制 Agent 可存取的目錄範圍(安全邊界)
記憶系統
- 永久記憶(
/memory):教 Agent 你的偏好、coding style、專案規範。跨 session 永久生效。 - 閃存記憶(
/flashmemory):當前任務的重點強調,用完即丟不污染未來 session。 - Steering 文件:
.kiro/steering/*.md定義模組邊界、build 指令、禁止事項。
討論串隔離
- 每個任務自動建立 Discord Thread,工具執行狀態和回覆都在 thread 中,主頻道保持乾淨。
- 在 thread 中繼續對話會啟動獨立的 thread agent,和主頻道 agent 平行運作。
- 最多
THREAD_AGENT_MAX個 thread agent 同時運作,閒置自動清理。
排程與自動化
- Cron 排程:定時執行任務(伺服器巡檢、日報生成、資料備份)。
- 自然語言建立排程:
/cron-prompt 每天早上 9 點檢查所有伺服器健康狀態 - 單次提醒:
/remind 明天下午 3 點 提醒我 review PR
模型切換
/model <model-id>即時切換 AI model,不需要重啟。/models列出所有可用模型。- 可 per-channel 設定不同模型。
多 Bot 協作
- 自動偵測同 server 的其他 bot,進入 mention-only 模式避免 bot 互相觸發。
- 支援跨 bot 任務交接(handoff):一個 bot 完成後可以 @另一個 bot 接手,帶完整上下文。
自動恢復
- Heartbeat 定期檢查 agent 健康狀態,死掉自動重啟。
- Session 持久化:bot 重啟後優先接回既有 ACP session,不遺失對話歷史。
MCP 擴充能力
Bot 內建兩個可選的 MCP Server,擴展 Agent 的能力邊界:
Discord MCP Server
啟用後 Agent 可以主動操作 Discord:讀訊息、發訊息、搜尋、加反應、管理 thread、跨頻道協作。不再只是「被動回應」,而是可以主動行動。
內建安全範圍控制:
MCP_DISCORD_ALLOWED_GUILDS/MCP_DISCORD_ALLOWED_CHANNELS:限制可操作範圍MCP_DISCORD_READ_ONLY=true:只允許讀取MCP_DISCORD_ALLOW_DESTRUCTIVE=false:禁止刪除/編輯等破壞性操作
Media Generation MCP Server
Agent 可以生成圖片、影片、音樂、語音:
| 功能 | Provider |
|---|---|
| 圖片生成 / 編輯 | Gemini(Nano Banana 2/Pro)、OpenAI(GPT Image) |
| 影片生成 | Gemini(Veo 3.1) |
| 音樂生成 | Gemini(Lyria 3) |
| 文字轉語音 | OpenAI(tts-1-hd)、Gemini TTS |
部署方式
前置需求
- Go 1.21+
- kiro-cli 1.29+
- Discord bot token(需啟用 Message Content Intent)
快速開始
git clone https://github.com/nczz/kiro-discord-bot.git
cd kiro-discord-bot
cp .env.example .env
# 編輯 .env:填入 DISCORD_TOKEN、DISCORD_GUILD_ID
VERSION=$(git describe --tags --always 2>/dev/null || echo "dev")
go build -ldflags "-X main.Version=$VERSION" -o kiro-discord-bot .
./kiro-discord-bot
Docker 部署
docker compose up -d --build
systemd 服務(推薦)
sudo cp kiro-discord-bot.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now kiro-discord-bot
技術架構
Discord User
│ message / slash command
▼
Discord Bot (Go)
├── per-channel SessionStore { agentName, sessionId, cwd }
├── per-channel JobQueue buffered chan, FIFO
├── per-channel Worker goroutine, thread-based execution
├── per-thread Agent (on demand) isolated context, auto-cleanup
├── per-channel ChatLogger JSONL conversation log
└── Heartbeat background maintenance loop
├── HealthTask agent liveness + auto-restart
├── CleanupTask expired attachment removal
├── CronTask scheduled jobs + reminders
└── ThreadCleanupTask idle thread agent eviction
│
▼
kiro-cli acp (one process per channel, stdio JSON-RPC)
│
▼
AWS Bedrock / Anthropic
- 語言:Go
- 協議:Agent Client Protocol (ACP) over stdio JSON-RPC
- AI Provider:透過 kiro-cli 連接(支援多種模型)
- 持久化:Session JSON + JSONL 對話日誌 + Cron JSON
- 多語系:en / zh-TW
與其他方案的差異
| 特性 | kiro-discord-bot | 一般 Discord AI Bot |
|---|---|---|
| 記憶 | 永久記憶 + 閃存 + Steering | 僅 session 內記憶 |
| 能力範圍 | 讀寫程式碼、跑命令、操作基礎設施 | 只能回答文字 |
| 成長性 | 隨時間累積知識和工具 | 能力固定 |
| 排程 | Cron + 自然語言提醒 | 無 |
| 擴充 | MCP 插件(無限擴充) | 寫死的功能 |
| 協作 | 多 bot 偵測 + 任務交接 | 無 |
| 部署 | 自架(資料在你手上) | 通常是第三方 SaaS |
授權
Go 原始碼完全開源,自由使用。需搭配 kiro-cli 作為 AI backend。
資源連結
- GitHub:github.com/nczz/kiro-discord-bot
- kiro-cli:cli.kiro.dev/install
如果你想為團隊部署 AI Agent workspace,或需要客製化 MCP 插件開發,歡迎透過聯絡我們洽詢。
