Skip to content

Everything Claude Code Iterative Retrieval Pattern Skill 是专为多 Agent 协作场景设计的渐进式上下文检索模式,核心解决子 Agent 在任务执行时无法预知所需上下文、容易遗漏关键信息或超出 token 限制的问题。通过「分阶段循环检索—评估—精炼」机制,Skill 能动态发现、补全和聚焦任务所需的关键代码片段与知识点,大幅提升检索的相关性与效率,尤其适用于 RAG、代码探索、复杂工程自动化等场景。

Everything Claude Code Iterative Retrieval Pattern Skill:渐进式上下文检索解决子 Agent 上下文窗口限制

在多 Agent AI 编程助手(如 Claude Code、Codex、Cursor 等)的大型项目协作中,子 Agent 常常面临一个核心难题:不知道自己需要哪些上下文,也无法一次性获取全部相关代码或文档。如果直接把所有文件都塞进 prompt,会超出上下文窗口限制;而只给少量内容,又可能遗漏关键信息,导致 Agent 任务失败或输出质量不佳。

Iterative Retrieval Pattern Skill 正是为了解决这一「子 Agent 上下文窗口限制」而设计。它通过「分阶段、可循环」的检索-评估-精炼流程,实现上下文信息的动态发现与逐步聚焦,让 Agent 能在有限 token 内获取最相关、最关键的上下文。这一模式已经在 Everything Claude Code 完全指南 所覆盖的 38 个专业 Agent、156 个 Skill 实战中被反复验证。

1. 适用场景与触发条件

你应在以下典型场景下考虑激活 iterative-retrieval Skill:

  • 多 Agent 协作:主 Agent 派生多个子 Agent,子 Agent 需独立检索代码或文档,但无法预知全部上下文。
  • RAG(检索增强生成)流水线:需要动态补全和聚焦代码片段,避免一次性拉取全部内容。
  • Agent 任务失败/信息缺失:遇到“context too large”或“missing context”类报错,或发现 Agent 输出与实际需求不符。
  • 优化 token 占用:希望在保证信息完整性的同时,显著减少上下文传递的 token 数量。
  • 代码探索/重构/大规模代码审查:需要系统性发现相关文件、类型、模式,而不是靠人工猜测。

2. 渐进式检索循环:4 阶段操作流程

Iterative Retrieval Skill 的核心是一个最多 3 轮的「检索-评估-精炼」循环,每一轮都让上下文更聚焦、更相关。具体流程如下:

Step 1. DISPATCH(初始检索)

以任务目标为线索,先发起一次广泛的检索。例如:

typescript
const initialQuery = {
  patterns: ['src/**/*.ts', 'lib/**/*.ts'],
  keywords: ['authentication', 'user', 'session'],
  excludes: ['*.test.ts', '*.spec.ts']
};
const candidates = await retrieveFiles(initialQuery);
  • 目标:不要一开始就过度限制检索条件,先尽可能多地覆盖相关区域。
  • 实践建议:可结合 Context Budget Skill 预估 token 占用,避免超限。

Step 2. EVALUATE(相关性评估)

对每个检索到的文件/片段,打分其与当前任务的相关性,并找出信息缺口:

typescript
function evaluateRelevance(files, task) {
  return files.map(file => ({
    path: file.path,
    relevance: scoreRelevance(file.content, task),
    reason: explainRelevance(file.content, task),
    missingContext: identifyGaps(file.content, task)
  }));
}
  • 评分标准

    • 高(0.8-1.0):直接实现目标功能
    • 中(0.5-0.7):包含相关模式或类型
    • 低(0.2-0.4):间接相关
    • 无(0-0.2):可排除
  • 实践建议:相关性评估可由主 Agent 或专职 Review Agent 完成,确保评判客观。

Step 3. REFINE(检索条件精炼)

根据上一轮评估结果,动态调整检索条件:

typescript
function refineQuery(evaluation, previousQuery) {
  return {
    patterns: [...previousQuery.patterns, ...extractPatterns(evaluation)],
    keywords: [...previousQuery.keywords, ...extractKeywords(evaluation)],
    excludes: [...previousQuery.excludes, ...evaluation
      .filter(e => e.relevance < 0.2)
      .map(e => e.path)
    ],
    focusAreas: evaluation
      .flatMap(e => e.missingContext)
      .filter(unique)
  };
}
  • 目标:补充高相关文件中的新关键词、术语、模式,排除低相关路径,聚焦信息缺口。
  • 实践建议:第一轮往往能发现项目专有命名(如“throttle”替代“rate limit”),后续检索更精准。

Step 4. LOOP(循环迭代)

以精炼后的条件继续检索,最多循环 3 次,直到满足「高相关文件数量充足且无关键缺口」:

typescript
async function iterativeRetrieve(task, maxCycles = 3) {
  let query = createInitialQuery(task);
  let bestContext = [];
  for (let cycle = 0; cycle < maxCycles; cycle++) {
    const candidates = await retrieveFiles(query);
    const evaluation = evaluateRelevance(candidates, task);
    const highRelevance = evaluation.filter(e => e.relevance >= 0.7);
    if (highRelevance.length >= 3 && !hasCriticalGaps(evaluation)) {
      return highRelevance;
    }
    query = refineQuery(evaluation, query);
    bestContext = mergeContext(bestContext, highRelevance);
  }
  return bestContext;
}
  • 终止条件:高相关文件≥3且无关键信息缺口,或循环已达上限。
  • 最佳实践:与 Verification Loop Skill 配合,可自动检测输出是否“足够好”。

3. 实战输出示例

示例 1:修复 token 过期 bug

任务:"修复认证 token 过期 bug"

Cycle 1:
  DISPATCH: 搜索 "token", "auth", "expiry" 于 src/**
  EVALUATE: 找到 auth.ts (0.9), tokens.ts (0.8), user.ts (0.3)
  REFINE: 新增 "refresh", "jwt" 关键词,排除 user.ts

Cycle 2:
  DISPATCH: 用新条件检索
  EVALUATE: 找到 session-manager.ts (0.95), jwt-utils.ts (0.85)
  REFINE: 已有 2 个高相关文件

最终输出:auth.ts, tokens.ts, session-manager.ts, jwt-utils.ts

示例 2:实现 API 限流

任务:"为 API endpoint 增加限流"

Cycle 1:
  DISPATCH: 搜索 "rate", "limit", "api" 于 routes/**
  EVALUATE: 未命中,发现项目用 "throttle" 术语
  REFINE: 新增 "throttle", "middleware" 关键词

Cycle 2:
  DISPATCH: 用新关键词检索
  EVALUATE: 找到 throttle.ts (0.9), middleware/index.ts (0.7)
  REFINE: 需补 router 相关模式

Cycle 3:
  DISPATCH: 搜索 "router", "express"
  EVALUATE: 找到 router-setup.ts (0.8)
  REFINE: 信息已完整

最终输出:throttle.ts, middleware/index.ts, router-setup.ts

4. 与 Agent/Skill 的协作关系

  • 常见配套 Agent:Planner Agent、Refactor Cleaner Agent、Code Reviewer Agent、Docs Lookup Agent 等(详见 Everything Claude Code 完全指南)。
  • Skill 协同:可与 continuous-learning、context-budget、verification-loop 等 Skill 组合,提升检索策略的自适应性和 token 管理能力。
  • 集成方式:在 Agent prompt 或 MCP 流程中加入如下检索指令:
markdown
1. 先用广义关键词检索
2. 对每个文件按 0-1 相关性打分
3. 明确指出缺失的上下文
4. 精炼检索条件,最多循环 3 次
5. 最终仅返回相关性 ≥ 0.7 的文件

5. 实战最佳实践

  1. 先广后窄,逐步聚焦:初始检索不宜过窄,后续通过评估与精炼收敛到核心上下文。
  2. 主动学习项目术语:第一轮检索往往能揭示项目专有命名,及时补充关键词极为关键。
  3. 显式记录缺口:每轮都要明确指出还缺什么信息,推动检索精准进化。
  4. 优先高相关、排除低相关:宁要 3 个高分文件,不要 10 个泛泛相关的内容。
  5. 与自动化 Hook/Rule 配合:结合 HooksRules 体系,可实现检索、评估、精炼的自动触发与合规校验。

FAQ

Q: iterative-retrieval Skill 与传统检索有何本质区别?
A: 它不是一次性检索全部内容,而是通过循环评估与条件精炼,实现动态发现和聚焦最相关上下文,极大提升检索质量和 token 利用率。

Q: 需要手动配置每一轮检索条件吗?
A: 不需要。Skill 会根据上一轮的评估结果自动补充关键词、术语和排除路径,开发者只需定义初始目标即可。

Q: 适合哪些类型的 AI Agent 或任务?
A: 适用于所有需要动态检索代码/文档上下文的多 Agent 协作、RAG、代码审查、重构、自动化测试等场景,尤其在上下文窗口有限时效果突出。