文件 v1.1.1

模型管理

·

每項模型與憑證操作,及其對應的 TUI 指令與 HTTP 端點。

一切由 TUI 或本機 HTTP API 管理——沒有 agen model CLI 子指令:

工作 TUI HTTP
新增 / 移除供應商或模型 /model → add;在模型列按 d 移除 POST /v1/models、DELETE /v1/models/*name
調整 fallback 優先序 — GET POST /v1/model/priority — {models}
設定模型 tier /model,在模型列按 t POST /v1/model/tier — {model, tier}
選擇 dispatcher 模型 /model → dispatch GET POST /v1/model — {dispatcher}
選擇 session 的 reasoning 等級 /model → reasoning(或 Shift+A / Shift+D) POST /v1/session/:id — {reasoning}
選擇 summary 模型 /model → summary GET POST /v1/model — {summary}
選擇圖像產生器 /model → image GET POST /v1/model — {image},填 provider 端點而非模型名稱
選擇 speech-to-text 模型 /model → stt GET POST /v1/model — {stt},取值來自 GET /v1/model/audio
選擇 text-to-speech 模型 /model → tts GET POST /v1/model — {tts},取值來自 GET /v1/model/audio
選擇 session 使用的模型 /model(或以 Shift+W / Shift+S 在 auto 與已註冊模型間輪替) POST /v1/session/:id — {model, reasoning}
儲存憑證 /key POST /v1/provider/:provider/key
OAuth 登入 /model GET /v1/provider/:provider/oauth(SSE device code)
清除 OAuth 登入 /model DELETE /v1/provider/:provider/oauth
查詢額度 / 餘額 Shift+U GET /v1/providers/quota;單一模型所屬供應商:GET /v1/model/quota?model=<name>

模型路由是單一物件:GET / POST /v1/model 一併讀取與部分更新 dispatcher、summary、image、stt 與 tts。未帶到的欄位不動,"" 為清除。寫入 config.json 時對應 dispatcher_model、summary_model、image_generator、stt_model 與 tts_model。

音訊路由與模型註冊表分離。stt 與 tts 不是從 /model add 註冊過的模型中挑選,而是向目前握有憑證的 OpenAI、Gemini 與 OpenRouter 即時查詢;現階段也只有這三家支援音訊(OpenRouter 於 v1.0.17 加入)。tts 選 off 會同時把 generate_audio 從工具集中移除;stt 選 off 則讓 read_files 不再轉錄音訊與影片,Telegram / Discord 收到的語音訊息也會直接回覆提示要先選模型。

憑證(API key、OAuth token)存放於 OS keychain 的 agenvoy 服務,絕不寫入純文字 JSON。config.json 的 keys 只記錄已儲存的 key 名稱。

Daemon 監看 config.json;寫入後會重新載入 agent registry(並重連 Telegram / Discord),不需重啟。

自 v1.0.13 起 registry 條目只持有模型名稱,改為每次 Send 時才解析 provider config,不再於啟動時建好 client,因此 keychain 內更新過的 OAuth token 下一次請求即生效,不必等 registry 重新載入。

EN