跳轉至

設定參考

所有設定都是環境變數,寫在 <資料目錄>/.env(打包模式)或 backend/.env(開發模式)裡,範本見 backend/.env.example。數值型設定都在啟動時就驗證邊界——超出範圍會讓服務直接啟動失敗,而不是留到第一次呼叫才出錯。

LLM 連線

變數 預設值 邊界 說明
OPENAI_BASE_URL (空) OpenAI-compatible endpoint 的 base URL。留空 = AI 功能未設定。
OPENAI_API_KEY (空) 對應 endpoint 的 API key。不是判斷「是否已設定」的條件之一——有些相容 gateway 不需要 key。
OPENAI_MODEL (空) 呼叫該 endpoint 使用的 model 名稱。
OPENAI_TIMEOUT_SECONDS 120 (0, 1800] 單次請求逾時秒數,同時是「第一次呼叫 + 一次修正重試」整體的時間上限。
OPENAI_MAX_OUTPUT_TOKENS 未設定 [1, 1000000] 選填,設定時才以 max_tokens 送給 endpoint(有些 reasoning endpoint 會拒絕顯式帶這個參數)。

Prompt 與工具對話的 token 預算

變數 預設值 邊界 說明
LLM_PROMPT_BUDGET_TOKENS 200000 [4000, 1000000] AI 補齊/AI 進度更新/工具安裝組 prompt 時,內容的 token 預算。實際套用時經動態「字元↔token 比值」換算成字元上限(見AI 工具呼叫是怎麼運作的)。
LLM_TOOL_CONVERSATION_BUDGET_TOKENS 500000 [50000, 1000000] 工具迴圈中「實際送給模型的對話」token 預算,超過就停止再帶工具、直接收斂成最後回答。

AI 日誌

變數 預設值 邊界 說明
LLM_LOG_MAX_ENTRIES 50 [1, 1000] 「AI 日誌」頁顯示的最近互動筆數上限(記憶體內環狀緩衝,隨程序重啟清空)。
LLM_LOG_BODY_MAX_CHARS 200000 [1000, 2000000] 單次互動中,任一則請求/回應內容儲存時的字元數上限。
LLM_LOG_FILE 未設定 選填。設定後,每次 LLM 互動會額外追加寫入這個 JSONL 檔案;預設關閉——記錄含個人記憶內容,落不落地是使用者自己的隱私選擇。
LLM_LOG_FILE_MAX_BYTES 50000000(50MB) [1000000, 1000000000] 上面這個 JSONL 檔案的 rotation 門檻:超過就把現檔改名(加時間戳)、開新檔。舊檔不會自動刪除。只在設定了 LLM_LOG_FILE 時有意義。

工具呼叫

變數 預設值 邊界 說明
TOOLS_DIR 未設定(打包模式自動注入 <資料目錄>/tools) 已安裝工具套件所在目錄;留空 = 工具功能整個關閉,AI 完全不會看到任何工具。
LLM_TOOL_ROUNDS_MAX 8 [1, 64] 一次 AI 動作最多允許幾輪工具呼叫,用完就強制模型直接給答案。
LLM_TOOL_TIMEOUT_SECONDS 60 (0, 600] 單一工具子行程的逾時秒數。
LLM_TOOL_OUTPUT_MAX_CHARS 50000 [1000, 500000] 工具輸出餵回模型前的字元上限,超過會截斷並標記。

KB 網頁安裝器

變數 預設值 邊界 說明
TOOL_INSTALL_MAX_ROUNDS 24 [4, 64] 安裝一個工具時,建置 session 的工具輪數上限。
TOOL_INSTALL_TIMEOUT_SECONDS 900 (0, 3600] 整個安裝 session 的總時間上限(15 分鐘)。
TOOL_INSTALL_SHELL_TIMEOUT_SECONDS 120 (0, 600] 安裝過程中單一 run_shell 指令的逾時秒數。

資料庫與其他

變數 預設值 邊界 說明
DATABASE_URL sqlite:///./afterthread.db SQLAlchemy URL。只支援 SQLite,且必須是檔案型(不可為 in-memory)。
STALE_AFTER_DAYS 14 [0, 36500] 非終態項目的 updated 超過這個天數,會被標記為陳舊。

GLM5.2(或其他 1M-token context 模型)建議值

LLM_PROMPT_BUDGET_TOKENS=800000  # 讓超大項目也能整項進 prompt,不截斷
OPENAI_TIMEOUT_SECONDS=300       # 長 context 生成較慢,放寬逾時避免誤判 502

安裝與升級步驟見安裝與啟動