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