v1.2.1

執行期分層

最後更新


Agenvoy 的執行期分層:session 儲存、儀表板、pending 路由、記憶、排程、IPC 與 TUI,以及實作各層的 package。
層套件職責
Sessioninternal/sessionhistory.json / summary / action.log / pending metadata / fsnotify observer;session 設定存於 SQLite session 表,存活狀態改由 ToriiDB online marker 判定,不再持久化 state
Dashboardpage/ + internal/runtime/routesWeb UI 內嵌進執行檔並於 / 提供;AGENVOY_PAGE_DIR 改為從磁碟提供。daemon 啟動時另會安裝一個指向該 URL 的 Chrome app 啟動器 —— macOS 為 ~/Applications 下的 bundle、Linux 為 .desktop 項目、WSL 下為 Windows 捷徑 —— 讓儀表板以獨立視窗開啟。只寫入一次,之後略過;找不到 Chrome 僅記錄警告。自 v1.0.1 起亦可離線運作:/sw.js 以 service worker 預快取內嵌資產,/vendor/* 則從 ~/.config/agenvoy/vendor/ 提供第三方函式庫,該目錄由 daemon 啟動時的 internal/runtime/webapp.SyncAsset 填入,執行檔版本變動時更新
Pendinginternal/runtime/pending.goprefix-routed 的 confirm/ask listener registry;各前端 listener 透過 RegisterListener(prefix) 或 RegisterListenerMatch(prefix, match),透過 PickNextMatch(prefix, accept) 認領
Memorygo-sqlkit(SQLite:session、message_meta、messages + FTS5、action_history、file_history、usage)+ ToriiDB(db_0 工具與供應商額度快取、db_1 對話向量、db_2 錯誤記憶、db_3 online marker)全文封存(trigram tokenizer)、各模型用量(v1.0.26 起含每次回覆的 tool call id)、檔案快照、語意搜尋、90 天錯誤記憶。state 表於 v0.35.3 移除,存活狀態改由 ToriiDB online marker 承載;同版起改走 ToriiDB 自有 socket(目前 ToriiDB v0.7.0),/v1/toriidb HTTP 入口已不存在
Schedulerinternal/runtime scheduler 與 fsnotify watcher綁定 scheduler skill 的 cron / one-shot 任務;{tasks,crons}.json 變更時 hot-reload
IPCinternal/runtime/ipcv1.2.0 起 daemon 的 Unix socket ~/.config/agenvoy/daemon.sock(權限 0600、以換行分隔的 JSON)。client 送往 daemon 的 frame:run、pending、cancel(可帶 pause)、steer、reply、mcp;daemon 送往 client:event、ask、done、verify、workdir、mcp。執行綁定發起它的連線:該連線關閉即取消執行,pending 任務保留。確認與 ask_user 問題只送往發起該執行的 TUI 視窗(window hash);受限路徑的核准會附上使用者在 TUI 輸入的密碼,由 daemon 以 sudo -S -v 驗證
TUIinternal/runtime/tuibubbletea inline-chat 前端;設計上為單一 package。透過 internal/runtime/ipc 作為 daemon 的 client:每 5 秒重連,離線時顯示 Connecting,一般輸入、skill 與 /pending 暫不送出,本地 / 指令仍可執行。移除於 v1.2.0:TUI 行程內執行 agent 的方式已移除;改由 daemon 執行,TUI 經 socket 連線
EN