迭代檢索模式
解決多 agent 工作流程中的「上下文問題」,其中子 agents 在開始工作之前不知道需要什麼上下文。
問題
子 agents 以有限上下文產生。它們不知道:
- 哪些檔案包含相關程式碼
- 程式碼庫中存在什麼模式
- 專案使用什麼術語
標準方法失敗:
- 傳送所有內容:超過上下文限制
- 不傳送內容:Agent 缺乏關鍵資訊
- 猜測需要什麼:經常錯誤
解決方案:迭代檢索
一個漸進精煉上下文的 4 階段循環:
┌─────────────────────────────────────────────┐
│ │
│ ┌──────────┐ ┌──────────┐ │
│ │ DISPATCH │─────│ EVALUATE │ │
│ └──────────┘ └──────────┘ │
│ ▲ │ │
│ │ ▼ │
│ ┌──────────┐ ┌──────────┐ │
│ │ LOOP │─────│ REFINE │ │
│ └──────────┘ └──────────┘ │
│ │
│ 最多 3 個循環,然後繼續 │
└─────────────────────────────────────────────┘
階段 1:DISPATCH
初始廣泛查詢以收集候選檔案:
// 從高層意圖開始
const initialQuery = {
patterns: ['src/**/*.ts', 'lib/**/*.ts'],
keywords: ['authentication', 'user', 'session'],
excludes: ['*.test.ts', '*.spec.ts']
};
// 派遣到檢索 agent
const candidates = await retrieveFiles(initialQuery);
階段 2:EVALUATE
評估檢索內容的相關性: