先說結論

Roo Code 的迴旋鏢 Orchestrator 模式(也叫 Boomerang Tasks),可以避免 context window 限制問題發生。

它會把任務拆成小任務,交給小幫手(子代理)獨立完成,每個小幫手都是新的視窗,滿滿的 200K 血條,最後再整合起來。

只要指令要求詳細完整,基本上看著他們辛苦的交接和工作,很療癒。

有遇過這種情況嗎?

你開心地打開 Cursor(或其他 AI 開發工具),拉了一堆檔案進去,結果 AI 一開始表現很好,講著講著突然就開始失憶,忘記我要他做的事,

然後開始失智,它開始亂使用工具、或者原地開始解釋你丟給他的程式碼、或說他完成了。

最難過的是,他甚至忘記了他的初衷,我們最初的那個約定:

「一率用繁體中文回答」

這時候身為 AI 渣男的我,就會重新開一個新視窗重來。

上下文限制,就是 AI 的短期記憶

AI 工具的上下文限制,它就像一個人的短期記憶一樣,一次能記住的東西有限。

現在 Claude 3.7 能處理 200k 的資訊量,Gemini 已經 1M了,但實際使用時,要用程式碼把它塞滿還不容易,而且往往還沒滿,就會開始出問題。

Gemini 1M 的大小因為夠大,其實也是滿好用的,畢竟瘦死的駱駝比馬大。按照目前發展速度,可能明後年,我們大家就都是 context 富翁啦。

但現在用 AI 工具,還是會遇到問題

因為現在的 AI Agent 開發工具都是一條龍處理任務,節奏通常是:

  • 搜集資料 → 生成程式碼 → 繼續下一個任務
  • 任務複雜或出現錯誤時,AI 不斷重試
  • AI 花式找事做

其實很容易 context window 就滿了,滿了就會開始失憶+失智。

這部分其實 ClineRoo Code 做得很好,他有可視化的 context window 血條,讓你知道距離 AI 吃不下了還差幾行程式碼。

roo code context window 顯示
Roo Code 和 Cline 有提供目前的上下文使用狀況

解決方法:分工合作

  1. AI Agent 當 PM,負責規劃工作,然後派小弟去處理。
  2. 根據規劃的工作,指派任務給小弟處理。
  3. 小弟只處理自己的事,完成後跟 PM 回報結果。
  4. PM 根據回報結果規劃下一個工作,再派給新的小弟處理。
  5. 不斷 loop 直到任務完成或是 PM 爆了 XD(但這樣很難爆)。

Roo Code 的迴旋鏢模式實作了這個想法

Roo Code 的 Orchestrator 模式就是這套分工合作的具體實踐。它會自動幫你做這件事:

  1. 主任務會先分析你要做的事情,然後暫停。
  2. 自動把任務拆解,生成一個詳細、帶有足夠上下文的指令,再根據工作性質設定子任務的 mode。
  3. 小幫手完成後,會按照生成的指令內的要求,回報主任務想要的結果。
  4. 主任務再根據這個結果繼續後面的工作。

實際使用感受:我靜靜地看著你裝逼

實際使用 Roo Code 的 Orchestrator 模式時,會感覺 AI 很忙啊,一直在角色扮演:

  • 一下當 PM
  • 一下當 架構師 規劃
  • 一下當 工程師 寫 code

一個 AI cosplay 團隊在幫你工作。

  • 你只要給出明確的指令,例如:寫一個 XX 功能的開發計畫書,越詳細越好。
  • 設定 Orchestrator mode,然後請他按照開發計劃書內容完成功能。
  • 他就會開始規劃,然後分派給最適合的 AI 小弟,例如:程式碼交給 Code 模式,重構交給 Architect 模式。
  • 整個流程偶爾需要介入確認是否走在正確的路上。

Sonnet 不愧是親兒子!使用 Claude 3.5 / 3.7 API 我的體感上特別強,幾乎自動高效完成任務,很少需要介入也很少中斷反問我問題。其他模型就會容易迷失,很常遇到 o4-mini 就會問我:「我的小弟有沒有完成任務返回結果啊 XD」。

Roo Code 迴旋鏢模式官方文件