![]()
你有沒有想過,為什么很多 AI agent 系統(tǒng)在演示時(shí)看起來很酷,但一旦投入實(shí)際使用就會(huì)遇到各種問題?上下文窗口爆滿、響應(yīng)變慢、對(duì)話質(zhì)量下降,這些都是真實(shí)存在的痛點(diǎn)。最近我讀到 Inngest 聯(lián)合創(chuàng)始人 Dan Farrelly 的一篇文章,他分享了一個(gè)非常有意思的觀點(diǎn):每個(gè)真正能投入生產(chǎn)的 AI agent 系統(tǒng),最終都會(huì)需要三種 sub-agent(子代理)模式。不是兩種,也不是四種,恰好是三種。這個(gè)觀點(diǎn)讓我深入思考了很久,因?yàn)樗|及了 AI agent 系統(tǒng)設(shè)計(jì)的本質(zhì)問題。
Dan Farrelly 在開發(fā)通用 AI agent 系統(tǒng)時(shí)發(fā)現(xiàn),問題的關(guān)鍵不在于你是否需要 sub-agent,而在于你如何把它們連接起來。他提出的三種模式分別是:同步執(zhí)行并等待結(jié)果、異步執(zhí)行后匯報(bào)、以及定時(shí)延后執(zhí)行。聽起來很簡單,但這三種模式背后隱藏著對(duì) AI agent 系統(tǒng)架構(gòu)的深刻理解。我在研究這個(gè)話題時(shí)發(fā)現(xiàn),這不僅僅是技術(shù)實(shí)現(xiàn)的問題,更是關(guān)于如何讓 AI agent 真正為用戶創(chuàng)造價(jià)值的問題。
我的新書《出海,產(chǎn)品全球化營銷實(shí)踐》即將出版發(fā)售,為了感謝各位一直支持深思圈的讀者,特地準(zhǔn)備了這次贈(zèng)書活動(dòng),可以在第一時(shí)間拿到免費(fèi)的贈(zèng)書,感興趣的朋友可以填寫以下信息。由于出版社給的數(shù)量有限,我會(huì)從填寫問卷的同學(xué)中篩選一部分贈(zèng)書,可能沒有辦法保證每一位都拿到,請(qǐng)大家諒解。
Sub-Agent 到底解決了什么問題
在深入了解這三種模式之前,我覺得有必要先理解 sub-agent 存在的根本原因。Dan Farrelly 給出了一個(gè)非常清晰的定義:sub-agent 是由父 agent 生成的獨(dú)立 LLM 執(zhí)行上下文,用于處理特定范圍的任務(wù)。父 agent 描述任務(wù)、提供工具,然后獲得結(jié)果。關(guān)鍵是,sub-agent 應(yīng)該在自己的上下文窗口中運(yùn)行,這樣就不會(huì)污染父 agent 的上下文。
這個(gè)設(shè)計(jì)背后的核心目的是 context compression(上下文壓縮)。Cursor 團(tuán)隊(duì)在最近的 Latent Space 訪談中也提到了這一點(diǎn)。Sub-agent 的存在讓父 agent 永遠(yuǎn)不需要吸收被委托任務(wù)的完整執(zhí)行軌跡。想象一下,一個(gè) sub-agent 可能讀取了 8 個(gè)文件、進(jìn)行了 15 次工具調(diào)用,但父 agent 只會(huì)看到一個(gè) 750 token 的摘要。
在我看來,這才是 sub-agent 真正的價(jià)值所在。很多人以為 sub-agent 的主要作用是實(shí)現(xiàn)并行執(zhí)行,但 Dan 在文章中明確指出,真正的投資回報(bào)率來自于上下文管理,而不是并行性。父 agent 保持精簡,就能在單次對(duì)話中處理更多任務(wù),不會(huì)觸及上下文限制,也不會(huì)降低響應(yīng)質(zhì)量。Dan 在 Utah 項(xiàng)目的測試中發(fā)現(xiàn),使用 sub-agent 后,添加到父 agent 上下文中的 token 數(shù)量減少了 90% 以上。
![]()
這個(gè)數(shù)據(jù)讓我意識(shí)到一個(gè)更深層的問題:我們?cè)谠O(shè)計(jì) AI agent 系統(tǒng)時(shí),往往過度關(guān)注功能的豐富性,卻忽視了系統(tǒng)的可持續(xù)性。一個(gè) agent 如果在對(duì)話進(jìn)行到一半時(shí)就因?yàn)樯舷挛拇翱跐M了而無法繼續(xù)工作,那么它再強(qiáng)大的功能也失去了意義。Sub-agent 提供了一種優(yōu)雅的解決方案,讓系統(tǒng)能夠在保持功能豐富性的同時(shí),維持長期對(duì)話的能力。
三種 Sub-Agent 模式的本質(zhì)
Dan Farrelly 總結(jié)的三種核心模式分別是:Sync(同步模式)- "做這件事并等待"、Async(異步模式)- "去做這件事,完成后匯報(bào)"、以及 Scheduled(定時(shí)模式)- "稍后做這件事"。每個(gè) AI agent 系統(tǒng)都需要這三種模式,它們各有各的用途和考量。
同步模式是最直接的。父 agent 生成一個(gè) sub-agent 并阻塞等待,直到結(jié)果返回。Sub-agent 運(yùn)行、完成工作,然后將摘要作為工具結(jié)果返回。Dan 建議在以下情況使用同步模式:父 agent 需要答案才能繼續(xù)工作。數(shù)據(jù)查詢、分析、代碼生成等需要反饋到下一步的任務(wù),任何響應(yīng)會(huì)影響接下來發(fā)生什么的情況。
我理解的同步模式本質(zhì)上就像函數(shù)調(diào)用。你調(diào)用、等待、獲得返回值。雖然結(jié)果會(huì)進(jìn)入父 agent 的上下文窗口,但由于它是摘要而不是完整軌跡,那 90% 以上的壓縮率意味著父 agent 可以委托很多次,上下文才會(huì)成為問題。這種設(shè)計(jì)非常聰明,它在保持控制流清晰的同時(shí),也確保了系統(tǒng)的可擴(kuò)展性。
異步模式則完全不同。父 agent 啟動(dòng)一個(gè) sub-agent 后立即繼續(xù)對(duì)話。Sub-agent 獨(dú)立運(yùn)行,完成后直接向用戶回復(fù)。Dan 指出,這應(yīng)該是你的默認(rèn)選擇。適用于長時(shí)間運(yùn)行的研究、報(bào)告生成、起草、分析等具有副作用但不需要返回值的任務(wù)。
父 agent 不等待。Sub-agent 是完全獨(dú)立的函數(shù)運(yùn)行。完成后,它會(huì)發(fā)出一個(gè)包含響應(yīng)和渠道路由信息的事件,回復(fù)會(huì)通過發(fā)起請(qǐng)求的任何渠道傳遞給用戶。這里的權(quán)衡是:父 agent 無法整合結(jié)果。如果你啟動(dòng)三個(gè)異步 sub-agent,每個(gè)都在完全隔離中運(yùn)行。這是一個(gè)特性而非缺陷,零協(xié)調(diào)開銷,免費(fèi)的并行執(zhí)行,但這意味著父 agent 無法在同一輪中跨它們進(jìn)行綜合。
我覺得異步模式體現(xiàn)了一種非常現(xiàn)代的思維方式。傳統(tǒng)的軟件設(shè)計(jì)往往追求同步和可預(yù)測性,但在 AI agent 的世界里,我們需要接受一定程度的異步性和不確定性。把 sub-agent 想象成同事:你交接工作,說"完成后告訴我",然后繼續(xù)前進(jìn)。多個(gè)異步 sub-agent 可以同時(shí)運(yùn)行,無需任何協(xié)調(diào)代碼。這種設(shè)計(jì)不僅提高了效率,也讓系統(tǒng)更加靈活和可擴(kuò)展。
定時(shí)模式是大多數(shù)人會(huì)忽略的,但 Dan 認(rèn)為這是最有意思的一種。父 agent 安排一個(gè) sub-agent 在未來特定時(shí)間運(yùn)行。適用于后續(xù)跟進(jìn)、應(yīng)該智能化的提醒、定期檢查,任何"稍后"應(yīng)該意味著"在執(zhí)行時(shí)使用最新數(shù)據(jù)"的情況。
![]()
這與傳統(tǒng)的定時(shí)任務(wù)有本質(zhì)區(qū)別。"提醒我明天上午 9 點(diǎn)檢查部署指標(biāo)"不是在上午 9 點(diǎn)發(fā)送通知,而是在上午 9 點(diǎn)運(yùn)行一個(gè) agent,實(shí)際拉取實(shí)時(shí)指標(biāo)并發(fā)送分析。"周一向這個(gè)線程發(fā)送后續(xù)郵件"不是在周五編寫的定時(shí)消息,而是周一運(yùn)行一個(gè)具有完整線程上下文的 sub-agent。
我認(rèn)為定時(shí)模式揭示了 AI agent 與傳統(tǒng)自動(dòng)化工具的根本差異。傳統(tǒng)工具執(zhí)行預(yù)設(shè)的動(dòng)作,而 AI agent 在執(zhí)行時(shí)刻根據(jù)當(dāng)前狀態(tài)做出決策。這種"延遲執(zhí)行但智能決策"的能力,讓 AI agent 能夠處理那些需要時(shí)間維度考量的復(fù)雜任務(wù)。定時(shí) sub-agent 是動(dòng)態(tài)的、具有上下文意識(shí)的,在執(zhí)行時(shí)使用世界的當(dāng)前狀態(tài)運(yùn)行。不需要異步之外的新基礎(chǔ)設(shè)施,它是相同的函數(shù)、相同的處理程序、相同的傳遞機(jī)制,唯一的區(qū)別是事件上的時(shí)間戳字段。
決策框架與實(shí)際應(yīng)用
Dan Farrelly 提供了一個(gè)簡單但實(shí)用的決策框架:需要結(jié)果才能繼續(xù)?使用同步模式。獨(dú)立任務(wù),不需要阻塞?使用異步模式。多個(gè)獨(dú)立任務(wù)?使用異步模式(并行)。應(yīng)該在未來特定時(shí)間發(fā)生?使用定時(shí)模式。不確定?默認(rèn)使用異步,它更便宜,讓父 agent 保持精簡。
讓我印象深刻的是 Dan 的一個(gè)建議:不要為模型做選擇,給它提供所有三個(gè)工具并配有清晰的描述,讓它自己正確選擇。這體現(xiàn)了一種信任 AI 判斷能力的態(tài)度,也反映了現(xiàn)代 LLM 在理解任務(wù)需求方面的成熟度。
在實(shí)現(xiàn)層面,Dan 的團(tuán)隊(duì)采用了一個(gè)非常優(yōu)雅的設(shè)計(jì):一個(gè)函數(shù)處理三種模式。區(qū)別在于它如何被觸發(fā)以及結(jié)果去哪里。他們使用 Inngest 構(gòu)建了一個(gè)可重用的函數(shù),通過不同的觸發(fā)方式和結(jié)果路由來區(qū)分三種模式。這種統(tǒng)一的設(shè)計(jì)大大簡化了系統(tǒng)架構(gòu),降低了維護(hù)成本。
關(guān)鍵的區(qū)別在于框架指令。同步 sub-agent 被告知要簡潔(父 agent 會(huì)綜合)。異步 sub-agent 被告知要詳盡(它們是給用戶的最終答案)。定時(shí) sub-agent 就是帶延遲觸發(fā)的異步 sub-agent,不需要特殊處理。
我特別欣賞他們?yōu)槭裁词褂脙蓚€(gè)工具而不是一個(gè)帶有模式參數(shù)的工具的解釋。模型在工具選擇(從列表中選擇)方面比參數(shù)優(yōu)化(閱讀參數(shù)描述并正確選擇)更擅長。獨(dú)立的工具意味著更清晰的日志、更清楚的追蹤、更容易的調(diào)試。這種對(duì)細(xì)節(jié)的關(guān)注體現(xiàn)了經(jīng)驗(yàn)豐富的工程師對(duì)系統(tǒng)可維護(hù)性的深刻理解。
在深度控制方面,Dan 的設(shè)計(jì)也很有意思。Sub-agent 獲得相同的工作空間工具,但不能生成 sub-agent,實(shí)現(xiàn)了深度 1 的委托。沒有路由邏輯,沒有任務(wù)分類。模型讀取工具描述,決定何時(shí)委托有意義,并編寫自然語言任務(wù)描述。這種簡單的設(shè)計(jì)避免了復(fù)雜的遞歸問題,同時(shí)保持了系統(tǒng)的靈活性。
通用 Agent 為什么勝過專業(yè)化 Agent
一旦你有了這三種模式,就會(huì)有一個(gè)誘人的下一步:為每個(gè)領(lǐng)域構(gòu)建專業(yè)化的 agent。一個(gè)郵件 agent、一個(gè)數(shù)據(jù) agent、一個(gè)編碼 agent,每個(gè)都有自己的工具和提示詞。Dan 明確建議不要馬上跳入這個(gè)誘惑。
他的團(tuán)隊(duì)內(nèi)部構(gòu)建過專業(yè)化 agent 系統(tǒng)和它們之間的自定義路由器。隨著模型的進(jìn)步,這種專業(yè)化變得遠(yuǎn)不那么重要,在大多數(shù)設(shè)置中甚至是一個(gè)繁瑣的維護(hù)層。這個(gè)觀察讓我深思,因?yàn)樗魬?zhàn)了我們?cè)谲浖こ讨虚L期以來的一個(gè)信條:專業(yè)化帶來更好的性能。
Dan 指出了幾個(gè)關(guān)鍵問題。工具重疊。通用 agent 在編碼工具或模式(如工具搜索、工具發(fā)現(xiàn)、技能)方面表現(xiàn)出色,按 agent 分離的整個(gè)工具庫有時(shí)可能不是你需要的。路由悖論。你需要某種東西來決定哪個(gè)專家處理每個(gè)請(qǐng)求。硬編碼路由在模糊情況下會(huì)失敗。使用 LLM 作為路由器會(huì)增加延遲和新的故障模式。如果你的路由 LLM 調(diào)用足夠智能,能夠選擇正確的 agent,它難道不能直接完成任務(wù)嗎?這看起來就像一個(gè)通用 agent 委托了一個(gè)"任務(wù)"。
"錯(cuò)誤 agent"問題特別值得關(guān)注。當(dāng)路由器將任務(wù)發(fā)送給錯(cuò)誤的專家時(shí),故障模式特別糟糕。錯(cuò)誤的 agent 會(huì)用不完整的能力嘗試任務(wù),可能以微妙錯(cuò)誤的方式部分成功。系統(tǒng)會(huì)信任響應(yīng),因?yàn)樗鼇碜灾付ǖ膶<摇_@些是奇怪的故障案例,很難處理或計(jì)劃。
評(píng)估表面爆炸也是一個(gè)實(shí)際問題。有 N 個(gè) agent 就需要 N 個(gè)獨(dú)立的評(píng)估套件、1 個(gè)路由評(píng)估套件、O(N2) 對(duì)成對(duì)交互測試,以及端到端集成測試。單個(gè)通用 agent 只需要一個(gè)覆蓋所有能力的評(píng)估套件。
我認(rèn)為這里有一個(gè)更深層的洞察:復(fù)雜性往往來自過早的優(yōu)化。我們傾向于在問題還沒有充分暴露之前就試圖通過架構(gòu)設(shè)計(jì)來解決它。專業(yè)化 agent 看起來是一個(gè)優(yōu)雅的解決方案,但它引入的復(fù)雜性可能遠(yuǎn)超它解決的問題。
Dan 引用了 Anthropic 的"構(gòu)建有效 Agent"論文中的觀點(diǎn):"一致的是,最成功的實(shí)現(xiàn)并沒有使用復(fù)雜的框架或?qū)I(yè)庫。相反,它們使用簡單、可組合的模式構(gòu)建。"Cursor 團(tuán)隊(duì)在播客中也描述了使用"基本通用的任務(wù)接口,主 agent 可以定義進(jìn)入 sub-agent 的內(nèi)容"。Sub-agent 首先是上下文壓縮邊界,其次才是并行性。模型在運(yùn)行時(shí)定義 sub-agent,而不是開發(fā)者在構(gòu)建時(shí)定義。
這讓我想起軟件工程中的一個(gè)有趣現(xiàn)象:微服務(wù)的爆發(fā)然后回歸到模塊化單體。開銷開始超過收益。通用 agent 也類似。從簡單開始,只在必要時(shí)專業(yè)化,這可能是更明智的策略。
什么時(shí)候?qū)I(yè)化確實(shí)有意義
盡管如此,Dan 也承認(rèn)在某些情況下專業(yè)化確實(shí)會(huì)勝出。不同的模型要求。一個(gè)任務(wù)需要視覺能力,另一個(gè)需要快速分類,路由到不同的模型。安全邊界。Agent A 訪問客戶數(shù)據(jù),Agent B 只訪問公共數(shù)據(jù)。監(jiān)管要求。某些領(lǐng)域需要可審計(jì)的、獨(dú)立的處理管道。經(jīng)過驗(yàn)證的評(píng)估驅(qū)動(dòng)證據(jù)。你的評(píng)估顯示專業(yè)化 agent 在特定任務(wù)上始終優(yōu)于通用 agent。
關(guān)鍵原則是:專業(yè)化應(yīng)該由測量的必要性驅(qū)動(dòng),而不是架構(gòu)美學(xué)。從通用開始,在有意義時(shí)再專業(yè)化。這個(gè)原則不僅適用于 AI agent 系統(tǒng),也適用于幾乎所有的軟件設(shè)計(jì)。我們經(jīng)常被"完美架構(gòu)"的追求所誘惑,但真正的智慧在于認(rèn)識(shí)到什么時(shí)候簡單就是最好的。
在我看來,這種務(wù)實(shí)的態(tài)度是構(gòu)建可持續(xù) AI agent 系統(tǒng)的關(guān)鍵。技術(shù)進(jìn)步的速度非常快,今天看起來必要的專業(yè)化,明天可能就變得多余。保持系統(tǒng)的靈活性和可適應(yīng)性,比追求當(dāng)下的完美架構(gòu)更重要。
未來的探索方向
Dan 的團(tuán)隊(duì)目前使用的方法是通用的,適用于所有三種模式:同步、異步和定時(shí)。他們正在探索一些新的方向。自我迭代 agent。有了定時(shí) sub-agent,為什么 agent 不能繼續(xù)在自己和系統(tǒng)上迭代?成本和預(yù)算自然會(huì)成為考慮因素。
編排感知。異步和定時(shí) sub-agent 返回它們的事件 ID。通過 API 和上下文,系統(tǒng)中的任何 agent 或 sub-agent 都可以知道什么在運(yùn)行、在哪里運(yùn)行,獲取狀態(tài)和結(jié)果。它不再只是循環(huán)加扇出,而是變成了一個(gè)網(wǎng)絡(luò)。
回調(diào)和其他模式。當(dāng)前的參考示例使用渠道作為工作完成時(shí)的回調(diào)機(jī)制,但具有不同類型回調(diào)的通用 sub-agent 系統(tǒng)會(huì)是什么樣子?例如更新 Linear 任務(wù)、在數(shù)據(jù)庫中存儲(chǔ)研究或報(bào)告的引用。工具可以用于此,但回調(diào)提供某種程度的保證。
這些探索方向讓我看到了 AI agent 系統(tǒng)演進(jìn)的可能路徑。從簡單的請(qǐng)求-響應(yīng)模式,到復(fù)雜的網(wǎng)絡(luò)狀協(xié)作,再到自主的持續(xù)優(yōu)化。每一步都建立在堅(jiān)實(shí)的基礎(chǔ)之上,而不是追求華而不實(shí)的創(chuàng)新。
我對(duì)這個(gè)話題的一些思考
讀完 Dan Farrelly 的這篇文章,我有幾點(diǎn)深刻的感受。AI agent 系統(tǒng)的設(shè)計(jì),本質(zhì)上是在管理復(fù)雜性。我們傾向于通過添加更多功能、更多專業(yè)化來解決問題,但往往忽視了簡單性的力量。三種 sub-agent 模式的價(jià)值不在于它們有多復(fù)雜,而在于它們多么清晰地映射了實(shí)際需求。
上下文管理是一個(gè)經(jīng)常被低估的問題。我們看到 LLM 的上下文窗口越來越大,從 4K 到 8K 到 32K 甚至 100K,很容易認(rèn)為上下文限制不再是問題。但 Dan 的實(shí)踐表明,即使有更大的上下文窗口,有效的上下文管理仍然至關(guān)重要。一個(gè)能夠在長對(duì)話中保持清晰和高效的系統(tǒng),遠(yuǎn)比一個(gè)依賴巨大上下文窗口的系統(tǒng)更可持續(xù)。
異步思維在 AI agent 系統(tǒng)中特別重要。傳統(tǒng)軟件往往追求同步和可預(yù)測性,但在處理復(fù)雜任務(wù)時(shí),接受異步性實(shí)際上能帶來更好的用戶體驗(yàn)。用戶不需要等待一個(gè)長時(shí)間運(yùn)行的任務(wù)完成才能繼續(xù)對(duì)話,系統(tǒng)可以在后臺(tái)處理,完成后通知用戶。這種設(shè)計(jì)更符合人類的工作方式。
通用性與專業(yè)化的平衡是一個(gè)永恒的主題。軟件工程的歷史充滿了鐘擺式的擺動(dòng):從單體到微服務(wù)再回到模塊化單體,從通用到專業(yè)再回到通用。Dan 的建議是從通用開始,只在有明確證據(jù)時(shí)才專業(yè)化,這是一個(gè)經(jīng)過實(shí)踐驗(yàn)證的智慧。
最后,我覺得這篇文章最有價(jià)值的地方在于它的務(wù)實(shí)性。它不是在推銷某種理想化的架構(gòu)或炫技性的技術(shù),而是在分享真實(shí)的實(shí)踐經(jīng)驗(yàn)和思考。在 AI agent 這個(gè)快速發(fā)展的領(lǐng)域,這種腳踏實(shí)地的態(tài)度特別珍貴。
如果你正在構(gòu)建 AI agent 系統(tǒng),我建議你認(rèn)真考慮這三種 sub-agent 模式。不要被復(fù)雜的架構(gòu)誘惑,從簡單開始,讓實(shí)際需求驅(qū)動(dòng)你的設(shè)計(jì)決策。保持系統(tǒng)的靈活性,因?yàn)檫@個(gè)領(lǐng)域變化太快,今天的最佳實(shí)踐明天可能就過時(shí)了。最重要的是,關(guān)注真正重要的事情:上下文管理、用戶體驗(yàn)和系統(tǒng)的長期可維護(hù)性。
結(jié)尾
也歡迎大家留言討論,分享你的觀點(diǎn)!
覺得內(nèi)容不錯(cuò)的朋友能夠幫忙右下角點(diǎn)個(gè)贊,分享一下。您的每次分享,都是在激勵(lì)我不斷產(chǎn)出更好的內(nèi)容。
歡迎關(guān)注深思圈,一起探索更大的世界。
- END -
兩個(gè)“特別坑”的AI產(chǎn)品創(chuàng)業(yè)方向,你知道嗎
![]()
速度將成為AI時(shí)代唯一的護(hù)城河
![]()
a16z重磅預(yù)測:Vibe coding贏者通吃?錯(cuò)了,垂直專業(yè)化才是未來
![]()
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.