制:主模型如何把任務(wù)精準(zhǔn)分發(fā)給 Worker 并校驗(yàn)結(jié)果)
【免費(fèi)下載鏈接】distillGet FAR MORE done with FAR FEWER tokens 項(xiàng)目地址https://gitcode.com/gh_mirrors/disti/distill點(diǎn)擊查看免費(fèi)下載Distill 是一個(gè)主打「用更少 token 干更多事」的 AI 編程代理工具 。它的子代理委托機(jī)制讓主模型Main model把可執(zhí)行的實(shí)施任務(wù)分發(fā)給獨(dú)立的 Worker 子代理自己只保留規(guī)劃與審核最終通過(guò)「自報(bào) 工具執(zhí)行證據(jù) 獨(dú)立 diff 復(fù)核」三重手段校驗(yàn) Worker 的產(chǎn)出。這篇文章帶你從零看懂這套任務(wù)分發(fā)與結(jié)果校驗(yàn)體系是如何運(yùn)作的。一、為什么要把任務(wù)分發(fā)給 Worker 子代理在 Distill 中主模型擁有整個(gè)會(huì)話負(fù)責(zé)規(guī)劃、拆分任務(wù)、審閱結(jié)果而可選配置的Worker 模型專門跑主模型分派下來(lái)的子代理任務(wù)。官方路由文檔用一張 ASCII 圖概括了這種分工Main model: owns the session, plans, delegates, reviews | | | conversation delegated chunk Utility task (worker subagent) bounded payload report diff - main reviews這種分層的直接收益是成本與速度官方基準(zhǔn)測(cè)試顯示在相同質(zhì)量9/9 凍結(jié)測(cè)試全通過(guò)下Distill 相比原生方式最多可節(jié)省87% 成本、快76%二、task工具主模型發(fā)起委托的入口主模型通過(guò)名為task的工具發(fā)起一次委托工具名常量即TASK_TOOL_NAME。一次task調(diào)用的關(guān)鍵參數(shù)包括prompt/description任務(wù)規(guī)格spec與一句話描述subagent_typeWorker 類型如explore、general-purpose、planmodel顯式指定子代理使用的模型可選run_in_background是否后臺(tái)執(zhí)行resume_from從上次已完成的子代理恢復(fù)續(xù)跑isolation/cwd工作目錄或隔離 worktree分派前的四道預(yù)校驗(yàn)在真正把請(qǐng)求交給協(xié)調(diào)器coordinator actor之前TaskTool會(huì)做一系列急切校驗(yàn)見(jiàn) TaskTool::run校驗(yàn)項(xiàng)說(shuō)明嵌套深度默認(rèn)最大深度為 1MAX_SUBAGENT_DEPTHWorker 不能再向下委托防止無(wú)限遞歸類型合法性未知類型、被[subagents.toggle]禁用的類型、不在白名單內(nèi)的類型都會(huì)被拒絕模型合法性顯式model會(huì)經(jīng)模型目錄校驗(yàn)器檢查不存在的模型直接報(bào)錯(cuò)工作目錄cwd與isolationworktree互斥cwd必須是真實(shí)存在的目錄校驗(yàn)通過(guò)后后臺(tái)模式會(huì)立即返回任務(wù) ID 供輪詢阻塞模式則等待結(jié)果若等待預(yù)算超時(shí)協(xié)調(diào)器會(huì)自動(dòng)把子代理轉(zhuǎn)為后臺(tái)任務(wù)返回task_id供后續(xù)取回結(jié)果。三、三類內(nèi)置 Worker 與模型路由優(yōu)先級(jí)內(nèi)置子代理類型Distill 內(nèi)置了三種 Worker 畫像定義在 distill-tool-types 的 task.rsgeneral-purpose全能型可搜索、分析多文件、執(zhí)行命令適合多步驟研究與復(fù)雜任務(wù)explore只讀探索型沒(méi)有文件編輯工具專攻快速定位代碼plan只讀「軟件架構(gòu)師」探索代碼庫(kù)并產(chǎn)出實(shí)施計(jì)劃要求列出 3-5 個(gè)關(guān)鍵文件每個(gè)類型的提示詞模板都內(nèi)置了工作策略約束例如 explore 型明確要求「只回答被問(wèn)到的問(wèn)題能答即停并說(shuō)明哪些內(nèi)容無(wú)法確認(rèn)」見(jiàn) EXPLORE_PROMPT。模型路由誰(shuí)跑在主模型上誰(shuí)跑在 Worker 上子代理的模型解析遵循一條清晰的優(yōu)先級(jí)鏈實(shí)現(xiàn)見(jiàn) resolve_subagent_sampling_config[ subagents.models ] 配置固定 代理定義中的 model: Worker 模型被委托的新任務(wù) 父會(huì)話主模型對(duì)應(yīng)的路由規(guī)則來(lái)自 jev-routing.md子代理運(yùn)行模型主模型委托的新子代理general-purpose / explore / 無(wú) model 的用戶代理Worker 模型未配置時(shí)用主模型plan與code-reviewer主模型簡(jiǎn)單任務(wù)可被路由到 Worker全上下文 fork、resume 或顯式指定 model 的子代理自身模型fork 繼承父模型判斷一個(gè)子代理是否「有資格」落到 Worker 模型上的邏輯很緊湊見(jiàn) delegated_worker_eligible必須是新會(huì)話非 fork、未顯式指定模型、且不是plan/code-reviewer除非決策層放行。Worker 紀(jì)律注入的「執(zhí)行手冊(cè)」一個(gè)跑在 Worker 模型上的全新子代理系統(tǒng)提示詞會(huì)被追加一段Worker 紀(jì)律WORKER_DISCIPLINE核心要求是只做規(guī)格里寫的不重構(gòu)、不改名、不格式化、不加功能遇到不匹配就停代碼與任務(wù)不符、或出現(xiàn)影響結(jié)果的開(kāi)放決策時(shí)停下上報(bào)而不是猜測(cè)用最短命令驗(yàn)證運(yùn)行任務(wù)點(diǎn)名的檢查報(bào)告每條命令的退出狀態(tài)與關(guān)鍵輸出報(bào)告保持緊湊結(jié)尾給出「改動(dòng)文件 檢查命令 輸出」的簡(jiǎn)報(bào)50 詞以內(nèi)不復(fù)述 patch 內(nèi)容——因?yàn)橹髂P蜁?huì)獨(dú)立檢查真實(shí) diff子代理的通用提示詞模板 subagent_prompt.md 還規(guī)定最終消息是委托方唯一收到的內(nèi)容必須「先給結(jié)論再給證據(jù)path:line引用和每條命令及結(jié)果最后說(shuō)明哪些內(nèi)容無(wú)法驗(yàn)證及原因」。四、結(jié)果校驗(yàn)不信任自報(bào)三重獨(dú)立證據(jù)這是整套機(jī)制最有意思的部分——主模型不輕信Worker 的自述而是拿到三份相互獨(dú)立的證據(jù)1?? 報(bào)告字節(jié)上限防信息爆炸task_report_cap 根據(jù)子代理能力設(shè)定報(bào)告上限能編輯文件或執(zhí)行命令的子代理只有 3000 字節(jié)只讀類有 12000 字節(jié)。超長(zhǎng)報(bào)告會(huì)被截?cái)鄡?yōu)先在行邊界全文落盤并附注「完整報(bào)告已存至某路徑」見(jiàn) cap_task_report。2?? 工具執(zhí)行證據(jù)harness 親測(cè)worker_execution_evidence 由 harness 自己抓取子代理最后一批工具調(diào)用及其記錄結(jié)果包裝成worker_execution_evidence塊交給主模型并標(biāo)注truncated狀態(tài)。即使子代理聲稱測(cè)試通過(guò)主模型也能核對(duì)實(shí)際執(zhí)行的命令與返回。3?? 獨(dú)立 diff 復(fù)核繞開(kāi)子代理口徑worker_repository_review 是真正的一票獨(dú)立harness 通過(guò)子代理自己的終端跑git status對(duì)比啟動(dòng)前后找出新增改動(dòng)加上其編輯工具實(shí)際觸碰過(guò)的文件路徑只對(duì)該子代理真正改過(guò)的文件執(zhí)行g(shù)it diff HEAD生成repository_review證據(jù)塊。也就是說(shuō)主模型拿到的 diff 與 Worker 的自述完全解耦——Worker 報(bào)錯(cuò)了也沒(méi)關(guān)系diff 不會(huì)騙人。如果 Worker 模型不可用、子代理回落到父模型運(yùn)行輸出前還會(huì)插入一條顯式警告見(jiàn) with_worker_fallback_warningWarning: worker modelxxxwas unavailable, so this subagent ran onyyy.五、失敗處理與續(xù)跑resume恢復(fù)續(xù)跑完成的成功子代理會(huì)在結(jié)果中攜帶resume_from提示見(jiàn) SubagentCompleted 輸出主模型可基于同一 ID 續(xù)跑distill-subagent-resolution 負(fù)責(zé)續(xù)跑時(shí)的身份校驗(yàn)類型/persona 匹配且續(xù)跑時(shí)模型固定為源模型顯式model參數(shù)會(huì)被軟忽略自動(dòng)轉(zhuǎn)后臺(tái)阻塞等待超時(shí)的子代理會(huì)被協(xié)調(diào)器轉(zhuǎn)為后臺(tái)任務(wù)完成后可通過(guò) task output 工具輪詢或由 auto-wake 合成提示喚醒父會(huì)話失敗回傳result.success false時(shí)直接把錯(cuò)誤作為工具錯(cuò)誤返回給主模型主模型可帶著具體錯(cuò)誤重派任務(wù)連續(xù)失敗兩次后按策略拆分任務(wù)或親自接手六、關(guān)鍵源碼文件速查模塊路徑task工具與預(yù)校驗(yàn)crates/codegen/distill-tools/src/implementations/distill/task/mod.rs內(nèi)置子代理類型與提示詞crates/common/distill-tool-types/src/task.rsWorker 紀(jì)律 / 結(jié)果校驗(yàn)函數(shù)crates/codegen/distill-shell/src/agent/subagent/mod.rs子代理提示詞模板crates/codegen/distill-agent/templates/subagent_prompt.md純邏輯解析層優(yōu)先級(jí)/續(xù)跑校驗(yàn)crates/codegen/distill-subagent-resolution/src/lib.rs主/Worker 模型路由文檔docs/jev-routing.md小結(jié)Distill 的子代理委托機(jī)制可以濃縮為一句話主模型負(fù)責(zé)想Worker 負(fù)責(zé)做harness 負(fù)責(zé)驗(yàn)。精準(zhǔn)分發(fā)靠的是task工具的參數(shù)化規(guī)格 嚴(yán)格的模型路由優(yōu)先級(jí)結(jié)果校驗(yàn)靠的是報(bào)告截?cái)?、工具?zhí)行證據(jù)、獨(dú)立 git diff 三重解耦。理解這套機(jī)制就能明白 Distill 為何能在保持同等質(zhì)量的前提下大幅壓低 token 消耗。贊分享【免費(fèi)下載鏈接】distillGet FAR MORE done with FAR FEWER tokens 項(xiàng)目地址https://gitcode.com/gh_mirrors/disti/distill點(diǎn)擊查看免費(fèi)下載相關(guān)推薦如何構(gòu)建 Mastra supervisor 代理把任務(wù)委派給 subagents 并匯總結(jié)果如何構(gòu)建 Mastra supervisor 代理把任務(wù)委派給 subagents 并匯總結(jié)果 當(dāng)你有一個(gè)任務(wù)需要先查資料、再寫內(nèi)容這類多個(gè)專長(zhǎng)協(xié)作時(shí)可以人工智能AI AgentAgent 框架后端RAG工作流自動(dòng)化Agent 記憶工具調(diào)用AI 評(píng)測(cè)MCP 服務(wù)goose Summon 擴(kuò)展深度指南加載任務(wù)源并把工作委派給子代理goose Summon 擴(kuò)展深度指南加載任務(wù)源并把工作委派給子代理 本文圍繞 goosegoose3/goose 倉(cāng)庫(kù)內(nèi)置的 Summon 平臺(tái)擴(kuò)展 展人工智能AI 應(yīng)用AI AgentMCP Clients桌面應(yīng)用CLIPydantic AI Harness多Agent協(xié)作教程Subagents委托實(shí)戰(zhàn)把大任務(wù)拆給AI子代理團(tuán)隊(duì)Pydantic AI Harness多Agent協(xié)作教程Subagents委托實(shí)戰(zhàn)把大任務(wù)拆給AI子代理團(tuán)隊(duì) 想讓 AI Agent 獨(dú)力扛起調(diào)研 創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考