config.json
~/.config/agenvoy/config.json 的每個鍵、預設值與讀取它的地方。
模型、路由與 channel 設定:
| 鍵 | 說明 |
|---|---|
models |
已註冊模型,格式為 "<provider>@<model>" 字串;順序即 fallback 優先序(v1.1.0 起略過 pass tier 模型) |
model_tag |
{model: tier},tier 為 S A B C pass;缺少時寫入 {}。v1.1.0 起 pass 模型不會被 auto routing、subagent 或 fallback 選用,即使請求指名也一樣;只有把自身模型設為它的 session 會使用 |
dispatcher_model / summary_model |
Dispatcher 與 summary 角色 |
dispatcher_beta |
v1.0.18 新增。true 表示改由 TypeSafe dispatcher 路由,不再使用 dispatcher_model;需 keychain 中的 TYPESAFE_API_KEY |
image_generator / stt_model / tts_model |
圖像 provider 端點與音訊模型 |
compats |
自訂 OpenAI 相容端點,[{provider, url}] |
keys |
存於 keychain 的憑證名稱(絕不含值) |
telegram_enabled / discord_enabled |
Channel 旗標;telegram_username / discord_username 由 daemon 補上 |
admin_channel |
驗證碼轉發目標(v1.1.0 起由 TUI /config → Admin Channel 設定) |
reply_lang |
回覆語言,預設 "auto"(跟隨使用者)。接受 configs/jsons/reply_lang.json 中的代碼(en、zh-TW、zh-HK、zh-CN、ja、ko、es、fr、de、pt、it、ru、vi、th、id、ar)或任何語言名稱 |
output_dir |
未指定位置時為使用者產出檔案的存放處;預設 "" 代表 ~/Downloads,該資料夾不存在時為 ~/.config/agenvoy/download。會展開 ~;路徑無法使用時回到預設 |
reply_lang 與 output_dir 可由 TUI /config,或 GET / POST /v1/config/system 與 /v1/config/output_dir 設定;/config 也可切換 Startup on login(/v1/config/startup)。原本獨立的 startup、reply-language、output-dir TUI 指令已移除,改用 /config。Daemon 監看 config.json,每次寫入都會重新載入 agent registry 與 Telegram / Discord。
auto_reasoning(v1.0.18 新增)已於 v1.1.0 移除:reasoning 改為 per-session 設定,reasoning 為 auto 的 session 由模型選擇器逐請求決定等級。config.json 中殘留的 auto_reasoning 會被忽略。
除了模型與 channel 設定,config.json 也承載 runtime 限制與可選的 policy 覆寫。缺少的限制欄位、reply_lang、output_dir 與 model_tag 會以預設值補齊並於啟動時寫回。
| 鍵 | 預設 | 說明 |
|---|---|---|
limits.max_tool_iterations |
128 |
單次執行的 tool 迭代上限 |
limits.agent_send_timeout_seconds |
600 |
模型請求 timeout |
limits.max_history_messages |
24 |
保留的近期歷史訊息數 |
limits.max_history_bytes |
4194304 |
歷史大小上限。v1.0.12 由 5242880 改為 DocumentMaxBytes * 4,即單一文件 1 MiB 上限的四倍 |
不從 config.json 讀取的套件層預設值:
| 常數 | 預設 | 說明 |
|---|---|---|
MaxSessionTasks |
NumCPU × 4 |
每個 session 的並行任務數;超出者排隊而非失敗 |
MaxSubagentTimeoutMin |
30 |
Subagent timeout(分鐘) |
MaxResumeWaitMin |
60 |
待處理續跑等待回答的時間上限 |
maxConcurrentTools |
5 |
單一模型回合內同時執行的 tool call 數;其餘排隊(v1.0.20) |
Daemon port 不可設定:17989 為套件常數,limits.port 條目會被忽略。
config.json 的 policy 鍵。前兩者會與編譯進 binary 的內建值合併(使用者項目是追加,永不取代預設);其餘僅存在於使用者設定:
| 鍵 | 內建來源 | 用途 |
|---|---|---|
sensitive_path |
configs/jsons/sensitive_path.json |
憑證與金鑰路徑——需經密碼驗證的 per-session 授權才能存取。分類:dirs、files、prefixes、extensions |
read_only_command |
configs/jsons/read_only_command.json |
跳過 confirm gate 的 run_command 呼叫(git status、ls、cat ...)。v1.0.25 起條目比對 binary 加上最多前兩個參數(git config --get、docker compose ps),帶 network: true 或參數含敏感路徑的呼叫一律不符合,專用的唯讀指令工具也已移除 |
denied_command |
— | run_command 一律拒絕的 binary,sh -c 內亦然 |
denied_path |
— | 讀寫皆永久禁止的路徑;任何提示都無法核准。條目須為絕對路徑或以 ~/ 開頭;拒絕檔案系統根目錄 |
net_white_list |
— | 豁免 http_request SSRF 防護的 host |
三個鍵已不再讀取,若存在會在啟動時記警告:sensitive_map(更名為 sensitive_path)、white_list(移除——不在 denied_command 的指令皆可執行)、path_white_list(移除——$HOME 之外的路徑改為逐 session 核准)。
v0.35.0 移除最後一批 pre-v0.28.9 相容路徑:limits.max_skill_iterations(由 limits.max_tool_iterations 取代)與 planner_model(由 dispatcher_model 取代,下次儲存時會從 config.json 刪除)不再被採用,舊的 api_tools//script_tools/ 目錄也不再讀取——工具改放 tools/api/ 與 tools/script/。
Runtime 限制沒有環境變數——env 覆寫已移除,config.json 是唯一調整點。