Skip to content

環境變數 (Environment Variables)

.env.example 複製為 .env 並填入相應值。本頁是所有支援變數的權威參考。

bash
cp .env.example .env

快速開始

執行 Bot 時唯一必須設定的變數是 TELEGRAM_BOT_TOKEN。若需使用 AI 功能,請同時設定 GEMINI_API_KEY。其餘變數均有合理的預設值。


核心設定 (Core)

變數必填預設值說明
TELEGRAM_BOT_TOKEN@BotFather 取得的 Bot Token。格式:123456:ABC...
ASSISTANT_NAMEAndy使用者在群組中呼叫 Bot 的 @Name 觸發詞
PORT3000儀表板與 API 伺服器的 HTTP 連接埠
NODE_ENVdevelopment生產環境部署時請設為 production
TZ系統時區排程任務使用的 IANA 時區名稱(例如 Asia/TaipeiAmerica/New_York

儀表板 (Dashboard)

變數必填預設值說明
DASHBOARD_API_KEYAPI 請求的機器對機器密鑰(x-api-key 標頭)。可用 openssl rand -hex 32 產生。未設定時 API 無需驗證。
DASHBOARD_ACCESS_CODE顯示在儀表板登入畫面的密碼。未設定時儀表板對外開放。
DASHBOARD_HOST127.0.0.1儀表板伺服器監聽的網路介面。使用 0.0.0.0 可對外公開(僅限搭配反向代理使用)。
DASHBOARD_ORIGINS以逗號分隔的允許 CORS 來源清單。當前端運行於不同來源時為必填(例如 https://dashboard.example.com)。

生產環境必要設定

在公開儀表板前,請務必設定 DASHBOARD_API_KEYDASHBOARD_ACCESS_CODE。未設定這兩個變數時,任何有網路存取權限的人都能讀取您的對話內容並修改設定。


AI 模型 (AI Model)

變數必填預設值說明
GEMINI_API_KEY否*Google AI Studio API 金鑰。以下功能必填:快速路徑、圖片生成、媒體處理。僅使用 OAuth 的設定會退回至容器路徑。
GEMINI_MODELgemini-3-flash-preview所有群組的預設 Gemini 模型。可從儀表板按群組覆蓋。選項:gemini-3-flash-previewgemini-3-pro-preview
STT_PROVIDERgemini語音轉文字 (Speech-to-text) 後端。gemini 使用 Gemini 多模態 API(免費)。gcp 使用 Google Cloud Speech-to-Text(付費,需設定 GOOGLE_APPLICATION_CREDENTIALS)。
GOOGLE_APPLICATION_CREDENTIALSGCP 服務帳戶 JSON 檔案路徑。僅在 STT_PROVIDER=gcp 時必填。

*GEMINI_API_KEY 為圖片生成和媒體處理的必要條件。純文字部署可改用 OAuth 憑證。


快速路徑 (Fast Path)

快速路徑 (Fast path) 將簡單的文字查詢直接路由至 Gemini API,繞過容器啟動流程。

變數必填預設值說明
FAST_PATH_ENABLEDtrue設為 false 可強制所有請求通過容器路由(適合除錯使用)。
FAST_PATH_TIMEOUT_MS180000API 呼叫逾時時間(毫秒,預設 3 分鐘)。
CACHE_TTL_SECONDS21600透過 Gemini Caching API 快取系統提示詞的存活時間(預設 6 小時)。
MIN_CACHE_CHARS100000啟動快取的最低內容長度。快取有最低計費 Token 門檻;設定低於該門檻可避免不必要的快取費用。

容器 (Container)

容器模式 (Container mode) 在隔離容器中執行 Gemini CLI,用於程式碼執行和瀏覽器自動化等複雜任務。

變數必填預設值說明
CONTAINER_IMAGEnanogemclaw-agent:latest容器映像標籤。必須與 container/build.sh 建置的映像相符。
CONTAINER_TIMEOUT300000容器被強制終止前的最長執行時間(毫秒,預設 5 分鐘)。
CONTAINER_MAX_OUTPUT_SIZE10485760容器執行時擷取的最大輸出位元組數(預設 10 MB)。

TIP

若只使用快速路徑,不需要容器執行環境。只有當群組的 preferredPath 設為 container 時才會啟動容器。


速率限制 (Rate Limiting)

各群組速率限制可防止單一聊天室大量占用 Bot 資源。

變數必填預設值說明
RATE_LIMIT_ENABLEDtrue設為 false 可完全停用速率限制(不建議用於公開群組)。
RATE_LIMIT_MAX20每個群組每個時間窗口的最大請求數。
RATE_LIMIT_WINDOW5時間窗口大小(分鐘)。使用預設值時:每群組每 5 分鐘最多 20 次請求。

健康檢查 (Health Check)

變數必填預設值說明
HEALTH_CHECK_ENABLEDtrue啟用輕量級 HTTP 伺服器,對 GET /health 回應 { "status": "ok" }
HEALTH_CHECK_PORT8080健康檢查伺服器的連接埠。

可搭配負載平衡器、容器協調器或服務監控工具,透過此端點確認程序是否正常運行。


完整 .env.example

dotenv
# === 核心設定 ===
TELEGRAM_BOT_TOKEN=
ASSISTANT_NAME=Andy
PORT=3000
TZ=America/New_York

# === 儀表板 ===
DASHBOARD_API_KEY=
DASHBOARD_ACCESS_CODE=
DASHBOARD_HOST=127.0.0.1
DASHBOARD_ORIGINS=

# === AI 模型 ===
GEMINI_API_KEY=
GEMINI_MODEL=gemini-3-flash-preview
STT_PROVIDER=gemini
# GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json

# === 快速路徑 ===
FAST_PATH_ENABLED=true
FAST_PATH_TIMEOUT_MS=180000
CACHE_TTL_SECONDS=21600
MIN_CACHE_CHARS=100000

# === 容器 ===
CONTAINER_IMAGE=nanogemclaw-agent:latest
CONTAINER_TIMEOUT=300000
CONTAINER_MAX_OUTPUT_SIZE=10485760

# === 速率限制 ===
RATE_LIMIT_ENABLED=true
RATE_LIMIT_MAX=20
RATE_LIMIT_WINDOW=5

# === 健康檢查 ===
HEALTH_CHECK_ENABLED=true
HEALTH_CHECK_PORT=8080

Released under the MIT License.