# 設定

## 檔案佈局

```
~/.config/agenvoy/
├── config.json                       主設定——模型、優先序、tier、路由角色、channel 旗標、回覆語言、輸出目錄、限制、policy 覆寫
├── daemon.log                        Daemon 日誌
├── runtime.uid                       Server 模式單例紀錄
├── mcp.json                          全域 MCP server
├── tasks.json                        一次性排程任務
├── crons.json                        週期性 cron 任務
├── allow_skill                       全域 skill always-allow 清單（一行一個名稱）
├── allow_tool                        全域工具自動核准清單（一行一個樣式，可用 `prefix*`）
├── .telegram / .discord              已授權聊天 ID（一行一個，OTP 驗證成功後寫入）
├── .store/
│   ├── history.db                    SQLite——session、message_meta、messages + FTS5、action_history、file_history、usage
│   ├── db_0 ... db_3                 ToriiDB——工具與額度快取、對話向量、錯誤記憶、online marker
│   └── temp/                         被移除的檔案，加上時間戳後綴移至此
├── prompts/                          Session prompt role（.md，經 /v1/roles 暴露）
├── skills/                           Skill 儲存（git 版本控管）
│   ├── .system/                      內建 skill
│   ├── .system_design/               以 /skill 安裝的選用 skill
│   ├── scheduler/                    Scheduler skill 目錄（<short>-<hash8>/SKILL.md）
│   └── .Trash/                       已移除 skill（可從 .Trash 復原）
├── tools/                            Tool 儲存（git 版本控管）
│   ├── api/                          API tool（各一份 JSON）
│   ├── script/                       Script tool（tool.json + script.py）
│   ├── .system/                      內建 tool
│   └── .extension/{api,script}/      由 extension 安裝的 tool
├── vendor/                           Web 儀表板的第三方資產，daemon 啟動時下載，於 /vendor/* 提供
├── download/                         聊天收到的附件與下載檔案（內含 .Trash/）；~/Downloads 不存在時的預設輸出目錄
└── sessions/
    ├── .Trash/                       已移除的 session
    └── <sid>/
        ├── history.json              近期對話，以差量追加
        ├── summary.json              滾動摘要
        ├── .summary_cursor           增量摘要游標
        ├── action.log                Tool call 稽核軌跡 —— [時間戳][window_hash][kind][task_hash] 內容
        ├── .cmd_history              該 session 的 TUI 輸入歷史
        ├── claude_code_<model>.json  claude-code 的 session id 與 resume 狀態，每個模型一份（v1.1.1）
        └── pending/                  待決的 ask_user / confirm metadata，每個 task hash 一份 JSON

<專案根>/.config/agenvoy/              專案範圍的 tool 與 skill
├── tools/{api,script}/
└── skills/
<專案根>/.agenvoy/allow_skill          專案範圍的 skill always-allow 清單（與全域取聯集）
<專案根>/.agenvoy/allow_list           專案範圍的工具允許清單
```

## 刻意不存放於此的東西

- **供應商 API key** —— 絕不進 `config.json`；一律在 keychain
- **MCP 憑證** —— 在 `mcp.json` 使用 `${VAR}` 佔位符，值留在環境變數
- **`store_secret` 取得的祕密** —— 僅存 keychain；不進 LLM context、歷史、`action.log` 或 tool 參數
- **Session 設定與人格** —— 在 `.store/` 底下 SQLite 的 `session` 表，不是 per-session JSON 檔
- **Session 歷史** —— 熱區間為 `history.json`，另鏡射進 `.store/` 的 ToriiDB 與 SQLite
- **操作者筆記** —— 已於 v1.0.23 連同 `find_note`、`/note` 與 `/v1/note*` 一併移除；SQLite `note` 表與 `~/.config/agenvoy/knowledge/` 皆不再讀取。常駐指示請改用 role 或 skill
- **Tool 呼叫結果** —— 單次執行內的記憶體去重，加上 `fetch_page`、`search_web` 與 `http_request` `GET` 呼叫 30 分鐘的 ToriiDB cache；其餘不跨重啟保留
