整合設定
MCP 設定
單一檔案:~/.config/agenvoy/mcp.json。Session 範圍的層級已移除。以 TUI /mcp、web 儀表板或 /v1/mcp* 端點管理 server。完整 schema 與 ${VAR} 展開行為見 MCP 客戶端頁。
供應商設定
已無靜態供應商目錄——新增模型時由各供應商 API,或本機端點的 GET /models,取得模型清單。已註冊模型存於 config.json 的 models(順序即 fallback 優先序)、tier 存於 model_tag、自訂端點 URL 存於 compats;憑證絕不存於此,而是存於 OS keychain 的 agenvoy 服務下。寫入 config.json 會重新載入 agent registry,不需重啟。
Compat provider URL 儲存拆分
compat provider URL 採 two-storage 模型:
| 內容 | 位置 | 原因 |
|---|---|---|
URL(例如 http://host:8000/v1) |
~/.config/agenvoy/config.json 的 compats[] — {"provider": "<NAME>", "url": "..."} |
非機密、可由 user 編輯 |
API key(COMPAT_<NAME>_API_KEY) |
OS keychain | 機密 |
URL 慣例遵循 Zed:輸入至 /v1 為止的 URL(例如 http://host:8000/v1),router 自行附加 /chat/completions。本機 Ollama(http://localhost:11434/v1)與 llama.cpp(http://localhost:8080/v1)經 configs/jsons/local_compat.json 內建,不需 compats 條目。URL 由 config 讀取,非 keychain。不存在 COMPAT_<NAME>_URL keychain key(刻意移除:一個歷史 bug 曾讓 TUI 寫入 config 而 runtime 讀 keychain,導致總是 fallback 到 localhost)。
KuraDB
已無 kuradb_enabled 旗標,也沒有 /v1/kuradb 端點。KuraDB 以一般 MCP server 形式註冊——在 mcp.json 加一筆條目——因此其工具以 mcp__kura__* 出現,取消註冊或斷線時完全消失。TUI /kuradb 精靈已於 v0.35.0 移除:請自行執行 kuradb.sh(需真實 TTY 處理 sudo),再透過 /mcp 註冊。完整說明見 KuraDB 與 RAG 頁。
| Key | 位置 |
|---|---|
kura server 條目 |
~/.config/agenvoy/mcp.json — {"command": "kura", "args": ["mcp"]} |
OPENAI_API_KEY |
keychain(agenvoy service) — 與 semantic search 共用 |
| Binary | PATH 上的 kura(/usr/local/bin/kura,由 kuradb.sh 安裝) |
| KuraDB 自身設定 / 資料 | ~/.config/kuradb/,完全由 KuraDB 管理 |
Telegram / Discord 啟用
| Key | 位置 |
|---|---|
telegram_enabled / discord_enabled |
config.json(bot 帳號名稱寫入 telegram_username / discord_username) |
TELEGRAM_TOKEN / DISCORD_TOKEN |
keychain(agenvoy service) |
| 授權的 chat ID | ~/.config/agenvoy/.telegram 與 ~/.config/agenvoy/.discord(每行一個 ID,於 6 位數 OTP 驗證成功後寫入) |
| 驗證碼轉發 | config.json 的 admin_channel——TUI /channel → admin 或 POST /v1/channel/admin 可選已授權聊天或直接指定 tg@<id> / dc@<id>。/admin-channel 指令已移除,改用 /channel |
| 接收語音訊息 | 以 config.json 中 stt_model 指定的模型轉錄(TUI 為 /model → stt)。未選任何模型時,bot 會回覆尚未設定 speech-to-text 模型而不進行轉錄 |
兩個 channel 也可透過 POST /v1/channel/telegram 與 POST /v1/channel/discord 啟用或停用,該端點儲存 token 並翻轉旗標;daemon 的設定 watcher 會重連 bot 並補上帳號名稱。平台格式規則內嵌於 channel system prompt——已無 format_chatbot 工具。
兩個 bot 都由 daemon 主動向外連線,主機不需要開放 inbound port、公開網域或反向代理——只要一組 bot token。這也是新增平台的判準:只有在安全性上勝過這個模型才會納入,不為擴充清單而擴充。
兩個 channel 的語音輸出已移除。[SEND_VOICE:<text>] 不再存在,回覆不會被合成語音送進對話;語音合成改由 generate_audio 工具負責,寫出 .wav 到 download 目錄,並受 tts_model 控管。
哪些東西刻意不存放於此
一些刻意的非儲存位置:
- Provider API key — 絕不存於
config.json;一律存 keychain(config.json的keys只列 key 名稱) - MCP 憑證 — 在
mcp.json中使用${VAR}佔位符,實際值放在 env var(或透過 shell init 存入 keychain) - 由
store_secret捕獲的機密 — 僅落於 keychain;絕不進入 LLM context、history、action.log 或 tool args - Session history — 存於 ToriiDB 與 SQLite 封存,不散落在各 session 的 JSON 檔
- Tool call 結果 — 單次執行內的記憶體去重,加上
fetch_page、search_web與http_requestGET呼叫 30 分鐘的 ToriiDB cache;其餘不跨重啟保留