Skip to content
Back to skills

Iterative Context Retrieval

ASecurity

当多 Agent 工作流中子 Agent 不知道该用哪些上下文(盲发文件易超限或遗漏)时使用;以「派发-评估-精炼-循环」四阶段最多 3 轮地逐步收敛出高相关文件集;不适用于上下文已明确或单文件小任务。触发词:上下文检索、子Agent上下文、迭代检索、相关性评分、检索精炼

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 19, 2026
ai-agentsjavascriptjavaexpressapi

Works with

  • cursor
  • cli
  • api

Security analysis

A100/100

Scanned September 19, 2026

npx -y skills add findscripter/everything-skills --skill iterative-context-retrieval --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Iterative Context Retrieval?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Iterative Context Retrieval
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/findscripter-iterative-context-retrieval/badge)](https://www.skillsdirectory.com/skills/findscripter-iterative-context-retrieval)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: iterative-context-retrieval
title: 迭代式上下文检索精炼模式
description: 当多 Agent 工作流中子 Agent 不知道该用哪些上下文(盲发文件易超限或遗漏)时使用;以「派发-评估-精炼-循环」四阶段最多 3 轮地逐步收敛出高相关文件集;不适用于上下文已明确或单文件小任务。触发词:上下文检索、子Agent上下文、迭代检索、相关性评分、检索精炼
domain: 智能/rag
triggers: [子 Agent 不知道需要哪些文件, 盲发全部上下文导致超限或遗漏, 需要为检索 Agent 设计上下文收集策略, 代码库术语与查询关键词不匹配(如 rate 与 throttle), 要在多智能体编排中精准喂给子 Agent 相关代码]
tags: [rag, 上下文工程, 多智能体编排, 检索精炼, 相关性评分, 子agent]
level: 进阶
status: stable
agents: [claude-code, codex, cursor, gemini-cli]
tools: [Grep, Glob, Read, Task]
requires: []
related: [hybrid-search-retrieval, rag-implementation-workflow, query-decomposition-search, context-compression]
combines_with: [multi-agent-workflow-designer, context-window-management]
license: MIT
source: affaan-m/ECC
source_license: MIT
---
## 何时使用

在多 Agent 工作流中,子 Agent 启动时上下文有限,它在真正开工前并不知道:哪些文件含相关代码、代码库存在哪些模式、项目用什么术语。三种朴素做法都会失败:

- 全部塞入:超出上下文窗口;
- 什么都不给:缺关键信息无法工作;
- 拍脑袋猜:经常猜错。

本模式用「逐步精炼」替代「一次性决定」,适合需要为子 Agent 精准准备上下文、或查询关键词与代码库实际术语不匹配的场景。

不该用的边界:
- 上下文已经明确(用户已点名具体文件)——直接读取,别空转检索循环;
- 单文件 / 小范围改动——朴素读取更快;
- 检索代价高于收益的一次性查询——别为它套四阶段框架。

## 步骤

四阶段闭环,最多 3 轮,到点即止(不要无限循环):

1. **DISPATCH 派发**:从高层意图出发,发起一次「宽」查询收集候选文件。初始查询给出 patterns(如 `src/**/*.ts`)、keywords(如 authentication、user、session)、excludes(如 `*.test.ts`),故意不要过度限定。
2. **EVALUATE 评估**:对取回内容逐个打相关性分(0-1),并记录「为什么相关」和「还缺什么上下文(gaps)」。
3. **REFINE 精炼**:依据评估更新查询——把高相关文件里发现的新模式/术语加进 patterns 与 keywords,把确认无关(<0.2)的路径加入 excludes,并把缺口列为下一轮的 focusAreas。
4. **LOOP 循环**:用精炼后的标准重跑,最多 3 轮。一旦「足够好」立即停止,把相关性 ≥0.7 的文件作为结果返回。

相关性评分基准:
- 高 (0.8-1.0):直接实现目标功能;
- 中 (0.5-0.7):含相关模式或类型;
- 低 (0.2-0.4):间接相关;
- 无 (0-0.2):无关,排除。

停止条件(满足即提前退出,不必跑满 3 轮):高相关文件 ≥3 个且无关键缺口。

## 指令

把以下提示嵌入子 Agent 的 prompt,让它自带迭代检索行为:

```markdown
为本任务检索上下文时:
1. 从宽泛的关键词检索开始
2. 给每个文件的相关性打分(0-1)
3. 识别仍然缺失的上下文
4. 精炼检索标准并重复(最多 3 轮)
5. 返回相关性 ≥0.7 的文件
```

核心循环的参考实现(逻辑骨架,可用 Grep/Glob/Read/Task 等工具落地):

```javascript
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;
}
```

REFINE 阶段的更新规则(要点):新模式追加进 patterns,代码库术语追加进 keywords,相关性 <0.2 的路径并入 excludes,缺口去重后写入 focusAreas。

## 示例

例 1:Bug 修复上下文 —— 任务「修复认证 token 过期 bug」

```
轮1 DISPATCH: 在 src/** 搜 "token"、"auth"、"expiry"
    EVALUATE: auth.ts(0.9)、tokens.ts(0.8)、user.ts(0.3)
    REFINE:   加入 "refresh"、"jwt";排除 user.ts
轮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 端点加限流」

```
轮1 DISPATCH: 在 routes/** 搜 "rate"、"limit"、"api"
    EVALUATE: 无命中——代码库实际用的是 "throttle"
    REFINE:   加入 "throttle"、"middleware"
轮2 DISPATCH: 用精炼术语重搜
    EVALUATE: throttle.ts(0.9)、middleware/index.ts(0.7)
    REFINE:   还需要路由器模式
轮3 DISPATCH: 搜 "router"、"express"
    EVALUATE: router-setup.ts(0.8);上下文已足够
结果: throttle.ts、middleware/index.ts、router-setup.ts
```

例 2 体现本模式的核心价值:第一轮往往会暴露代码库的真实命名规则(rate→throttle),第二轮起检索才精准。

## 注意事项

1. **先宽后窄**:初始查询不要过度限定,否则一开始就漏掉候选。
2. **学习代码库术语**:首轮常会揭示命名规则,据此修正关键词。
3. **显式追踪缺口**:把「还缺什么」写出来(missingContext / focusAreas),它是驱动精炼的关键,而非靠感觉。
4. **「足够好」就停**:3 个高相关文件优于 10 个平庸文件;命中停止条件即退出,别跑满。
5. **果断排除**:低相关文件不会在后续轮次中突然变相关,确认无关就并入 excludes。

## 互见

- `continuous-learning` 技能 —— 随时间改进的检索/命名模式沉淀。
- 多智能体编排相关技能 —— 子 Agent 的派发与上下文准备。
- 子 Agent 定义通常位于 `~/.claude/agents/`。

---

采编自 affaan-m/everything-claude-code(MIT 许可)。

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…