kiro-discord-bot

環境變數參考 #

Bot 不會自行載入 .env。請透過 shell、launchd、systemd、Docker 或其他 process manager 注入環境變數。

啟動後可用 /doctor 檢查實際值。敏感值會被遮蔽。

如何使用本頁 #

環境變數大致分成三類:

必填變數必須在啟動前設定。可選變數通常可以留空,bot 會套用保守預設值。修改任何 process-level 環境變數後,請重啟服務並在 Discord 使用 /doctor 確認實際 runtime。/doctor 會遮蔽 secrets,是確認 production 設定最安全的方式。

既有 Kiro-only 部署不需要新增 OMP 相關變數。只有在主機已安裝 omp、完成認證,並且明確要啟用 OMP 時才加入 OMP 設定。

kiro-cliomp 都是在本 repository 之外安裝與更新。基本 CLI setup 與更新指令見 安裝;平台細節請以各自 upstream 文件為準。

常見設定型態 #

Kiro-Only 預設 #

這是既有部署最平順的升級路徑。不需要 OMP。

AGENT_ENGINE=kiro
AGENT_ENGINES_ENABLED=

雙 Engine Bot #

當同一個 bot 要允許 channel admins 透過 /engine 在 Kiro 與 OMP 間切換時使用。

AGENT_ENGINE=kiro
AGENT_ENGINES_ENABLED=kiro,omp
OMP_PATH=omp

只有在服務使用者已安裝並認證 omp 後,才啟用 OMP。

OMP Production Profile #

當你希望 bot-managed OMP auth、settings、sessions、caches 與互動式 OMP profile 隔離時,使用 named profile。

OMP_PROFILE=kiro-discord-bot omp setup
OMP_PROFILE=kiro-discord-bot

如果你刻意要讓服務沿用 OMP default profile 以維持升級相容性,則讓 OMP_PROFILE 留空。

Pure OMP Bot #

只有在 bot 不應使用 Kiro 時才使用。

AGENT_ENGINE=omp
AGENT_ENGINES_ENABLED=omp
OMP_PATH=omp

Multi-Bot 部署 #

執行多個部門 bot 時,每個 bot 都應該有自己的 Discord token 與持久資料目錄。

DISCORD_TOKEN=...
DATA_DIR=/var/lib/kiro-discord-bot/marketing
BOT_PEERS=...

不要在不同 bot identity 之間共用 DATA_DIR。Audit ledgers、usage files、channel settings、MCP policy 與 agent runtime files 都是該 bot 擁有的狀態。

變數關係 #

升級注意事項 #

必填 #

變數預設用途
DISCORD_TOKEN必填Discord bot token。

核心執行環境 #

變數預設用途
DISCORD_GUILD_IDSlash command 註冊 guild。空值使用 Discord global command scope。
KIRO_CLI_PATHkiro-cliKiro CLI 執行檔路徑。
OMP_PATHompomp 引擎執行檔路徑(僅啟用 omp 時需要)。
OMP_PROFILEbot-managed OMP agents 可選使用的 OMP profile。OMP profile 會隔離 auth、settings、sessions、caches。新的 production 部署建議設定 kiro-discord-bot,並在啟用 OMP 前先認證此 profile。留空會沿用 OMP default profile,避免破壞既有安裝。
OMP_SESSION_DIRDATA_DIR/omp-agent-runtime/sessions透過 omp --session-dir 傳入的 bot-managed OMP session 目錄。留空會使用 data-dir 預設;若服務需要共用 session 目錄,可設定絕對路徑。
AGENT_ENGINEkiro新頻道的預設 agent 引擎:kiroomp
AGENT_ENGINES_ENABLED(僅 AGENT_ENGINE)/engine 可切換的引擎清單(逗號分隔,如 kiro,omp)。留空則停用切換。
KIRO_API_KEYheadless 環境的 Kiro 認證金鑰;互動主機也可用 kiro-cli login
DEFAULT_CWD/projects/cwd 設定面板顯示的專案根目錄。
ALLOWED_CWD_ROOTS可選的逗號分隔工作目錄根目錄 allowlist。
DATA_DIR./dataBot 持久資料、頻道 metadata、sessions、audit DB、usage ledger、MCP policy 與 bot-managed engine runtime directories。
BOT_LOCALEenBot 回應語系。專案文件支援英文與繁體中文。

Agent 執行 #

變數預設用途
ASK_TIMEOUT_SEC3600單次 agent 請求最長等待秒數。
QUEUE_BUFFER_SIZE20每個 target 的 job queue buffer。
STREAM_UPDATE_SEC3串流更新最小間隔秒數。
MAX_SCANNER_BUFFER_MB64長輸出 scanner buffer。
DOWNLOAD_TIMEOUT_SEC120Discord attachment 下載 timeout。
KIRO_MODEL初始 model override。
KIRO_AGENT初始 Kiro agent profile 或 mode。
TRUST_ALL_TOOLStrue完全等於 true 時預設允許 ACP server permission request;其他值預設拒絕,除非符合 TRUST_TOOLS
TRUST_TOOLS可選的逗號分隔 trusted tool allowlist。
KIRO_MCP_CONFIG可選 MCP catalog 來源。實際 agent 使用 DATA_DIR/kiro-agent-runtime/ 內隔離後的 settings。

Thread 與監聽行為 #

變數預設用途
THREAD_AUTO_ARCHIVE1440任務討論串自動封存分鐘數。
THREAD_AGENT_MAX5最大 active thread agents。小於 1 啟動時視為錯誤。
THREAD_AGENT_IDLE_SEC900Thread agent 閒置 timeout 秒數。
CHANNEL_AGENT_IDLE_SEC0Channel agent 閒置 timeout 秒數。0 表示停用。
BOT_PEERS多 bot mention 與 handoff 的逗號分隔 peer hints。

時區、用量與維護 #

變數預設用途
HEARTBEAT_SEC60背景維護 tick 秒數。
CRON_TIMEZONE排程任務時區。
USAGE_TIMEZONECRON_TIMEZONE,再退回本機預設/usage 今日、本週、本月統計時區。
USAGE_RETENTION_MONTHS0Usage ledger 保留月數。0 表示全部保留。
ATTACHMENT_RETAIN_DAYS7已下載 Discord attachment 保留天數。
ATTACHMENT_MAX_MB25Bot 接受的最大 attachment 大小。
PREFLIGHT_MODEwarnACP 相容性 preflight 模式。strict 失敗即退出,skip 停用檢查,不明值會退回 warn。
SKIP_PREFLIGHT任意非空值都會跳過 ACP preflight。建議用 PREFLIGHT_MODE=skip 表達明確意圖。

Audit #

變數預設用途
AUDIT_LOG_ENABLEDtrue啟用 audit 紀錄。
AUDIT_LOG_DBDATA_DIR/audit/discord.sqliteSQLite audit database 路徑。
AUDIT_LOG_RETENTION_DAYS0Audit 保留天數。0 表示全部保留。
AUDIT_LOG_QUEUE_SIZE1000Async audit queue 大小。滿載時 audit-only event 可能被丟棄並寫 log。
AUDIT_LOG_RECORD_CONTENTtrue在 audit projection 與 raw event payload 中記錄訊息內容。
AUDIT_LOG_RECORD_TYPINGfalse記錄 Discord typing event。

語音轉文字 #

變數預設用途
STT_ENABLEDfalse啟用 voice/audio transcription。
STT_PROVIDERgroqSTT provider。
STT_API_KEYProvider API key。
STT_MODELProvider model override。
STT_LANGUAGE可選語言提示。
STT_MAX_DURATION_SEC300最大轉錄音訊秒數。

Discord MCP Server #

這些變數設定 mcp-discord-server,不是主 bot process;除非兩者共用同一份 process 環境。

變數預設用途
MCP_DISCORD_ALLOWED_GUILDS可選的逗號分隔 guild allowlist。
MCP_DISCORD_ALLOWED_CHANNELS可選的逗號分隔 channel allowlist。
MCP_DISCORD_DOWNLOAD_DIR設定後,discord_download_attachment 的 save path 必須位於此 root 內。
MCP_DISCORD_READ_ONLYfalsetrue 時阻擋所有 write tools。
MCP_DISCORD_ALLOWED_WRITE_TOOLS可選的逗號分隔 write-tool allowlist。
MCP_DISCORD_ALLOW_DESTRUCTIVEtruefalse 時阻擋 delete 等 destructive tools。

Media MCP Server #

這些變數設定 mcp-media-server

變數預設用途
GEMINI_API_KEY啟用 Gemini image、video、music 與 TTS providers。
OPENAI_API_KEY啟用 OpenAI image 與 TTS providers。
MEDIA_DEFAULT_IMAGE_MODELprovider default預設 image model override。
MEDIA_DEFAULT_TTS_MODELprovider default預設 TTS model override。

如果沒有設定 GEMINI_API_KEYOPENAI_API_KEYmcp-media-server 會在啟動時退出。