# config.json

`~/.config/agenvoy/config.json` 的模型、路由與 channel 鍵。Runtime 限制見 [config.json 限制值](/zh/docs/config-files-json-limits)；policy 鍵見 [config.json Policy](/zh/docs/config-files-json-policy)。

模型、路由與 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`。會展開 `~`；路徑無法使用時回到預設 |
| `official_guide_disabled` | v1.2.0 新增。`true` 時不再把各模型的官方指引（`## Model Guide`）注入 system prompt；由 `/config` → **Official guide**、dashboard 的 System 分頁或 `POST /v1/config/official_guide` 設定 |
| `skill_source_disabled` | v1.2.0 新增。掃描時略過的外部 skill 來源，可為 `claude`、`codex`、`copilot`、`opencode`、`agents`（`openai` 移除於 v1.2.1）；由 `/skill` → `source`、dashboard 的 Skills 頁或 `POST /v1/config/skill_source` 設定 |

`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` 會被忽略。
