文件 v1.1.1

Agent 路由

·

請求抵達 agent 的途徑:自動分派、subagents 工具與外部 agent。

兩種方式決定由哪個 agent 處理任務:

1. 自動 — dispatcher LLM 分析輸入,並透過 ResolveAgent() 挑選最合適的 provider。v1.1.0 起 pass tier 模型不會被選中、也不作為 fallback;綁定該模型的 session 仍照用。

啟動順序:exec.Prepare(TUI 專屬排除、/skill-name 匹配)→ exec.Start(具名 skill 解析、agent 解析、載入 session)→ Execute。具名 skill 被排除或找不到時,該次執行直接失敗。

:self-id 一次性覆寫前綴已移除;要交給具名 session 請用 subagents(self_id=...),或以 /session 切換 session。

2. subagents 工具 — agent 於執行期間 in-process(無 HTTP)呼叫另一個 agent,從 parent ctx 繼承 AllowAll 與 WorkDir。v1.1.0 起 mode=invoke 必須帶 model —— 空白 model 改由 dispatcher 補選的 fallback 已移除;傳 model: "auto"(v1.1.0 後的 hotfix)則交由 dispatcher 依任務挑選 —— 且母 agent 在 reasoning_guide(topics=[subagent_dispatch]) 取用的 tier 清單比自身工作低一級(S → A、A → B、B → C)。self_id 指向綁定自有模型的 session 時仍跑該模型;設為 auto 的 session 則跑傳入的 model。

Subagent 在只收集(collection-only)憲章下執行——負責蒐集與回報,不巢狀、不寫入。排除集由三部分組成:

來源 排除項目
憲章基礎 subagents、edit_file、generate*(萬用字元)
TUI 專屬 tool / skill configs/jsons/tui_tools.json 所列項目,例如 extension-upload、extension-install
呼叫端的 exclude_tools 母 agent 傳入的任何項目

ask_user 不被排除——subagent 可透過共用的 pending registry 向使用者提問。Subagent 的待決提問也會發布到所屬的母 session,leg 會等待該次續行並回傳已回答後的結果。同時最多 3 條 subagent 並行執行(maxConcurrentSubagents);第 4 條在等待空位時,自身的 MaxSubagentTimeoutMin(30 分鐘)timeout 已在倒數,因此大量 fan-out 應以 3 為單位分批派送。每筆結果帶有用量標頭,並匯總進母 session 的總計;自 v1.0.22 起報告本身存入 ~/.config/agenvoy/download/temp-<report_name>.md,只回傳其路徑。

EN