بنقرة واحدة
iterative-retrieval
渐进式精化上下文检索模式,解决子代理上下文问题
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
渐进式精化上下文检索模式,解决子代理上下文问题
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
REST API 设计模式,包括资源命名、状态码、分页、过滤、错误响应、版本控制和生产 API 的速率限制。
后端架构模式、API 设计、数据库优化和 Node.js、Express、Next.js API 路由的服务器端最佳实践。
通用编码标准、最佳实践和模式,适用于 TypeScript、JavaScript、React 和 Node.js 开发。
Everything Claude Code 的交互式安装向导——引导用户选择和安装技能和规则到用户级或项目级目录,验证路径,并可选地优化已安装的文件。
自动从 Claude Code 会话中提取可复用模式,并保存为学习技能供将来使用。
基于 instinct 的学习系统,通过 hooks 观察会话,创建带置信度评分的原子级 instincts,并将它们进化为技能/命令/代理。
| name | iterative-retrieval |
| description | 渐进式精化上下文检索模式,解决子代理上下文问题 |
解决多代理工作流中的"上下文问题",即子代理在开始工作之前无法知道它们需要什么上下文。
子代理在有限上下文中生成。它们不知道:
标准方法会失败:
示例:
任务:"修复身份验证令牌过期 bug"
方法 1:发送所有文件
结果:上下文太大(200K+ tokens)❌
方法 2:不发送任何文件
结果:代理不知道在哪里找代码 ❌
方法 3:猜测
结果:可能发送错误的文件 ❌
方法 4:迭代检索
结果:渐进式找到正确的文件 ✅
一个 4 阶段循环,渐进式精化上下文:
┌─────────────────────────────────────────────┐
│ │
│ ┌──────────┐ ┌──────────┐ │
│ │ 分发 │─────▶│ 评估 │ │
│ │ DISPATCH │ │ EVALUATE │ │
│ └──────────┘ └──────────┘ │
│ ▲ │ │
│ │ ▼ │
│ ┌──────────┐ ┌──────────┐ │
│ │ 循环 │◀─────│ 精化 │ │
│ │ LOOP │ │ REFINE │ │
│ └──────────┘ └──────────┘ │
│ │
│ 最多 3 次循环,然后继续 │
└─────────────────────────────────────────────┘
流程说明:
初始广泛查询以收集候选文件:
// 从高层意图开始
const initialQuery = {
patterns: ['src/**/*.ts', 'lib/**/*.ts'],
keywords: ['authentication', 'user', 'session'],
excludes: ['*.test.ts', '*.spec.ts']
};
// 分发到检索代理
const candidates = await retrieveFiles(initialQuery);
为什么宽泛?
评估检索内容的相关性:
function evaluateRelevance(files, task) {
return files.map(file => ({
path: file.path,
relevance: scoreRelevance(file.content, task), // 0-1 分数
reason: explainRelevance(file.content, task), // 为什么相关
missingContext: identifyGaps(file.content, task) // 缺少什么
}));
}
评分标准:
为什么评分?
根据评估更新搜索条件:
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)
};
}
精化策略:
auth/*.ts,添加到模式使用精化条件重复(最多 3 次循环):
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 次?
提前退出条件:
任务:"修复身份验证令牌过期 bug"
循环 1:
分发: 在 src/** 中搜索 "token"、"auth"、"expiry"
评估: 找到 auth.ts (0.9), tokens.ts (0.8), user.ts (0.3)
精化: 添加 "refresh"、"jwt" 关键词;排除 user.ts
循环 2:
分发: 搜索精化术语
评估: 找到 session-manager.ts (0.95), jwt-utils.ts (0.85)
精化: 足够上下文(2 个高相关性文件)
结果: auth.ts, tokens.ts, session-manager.ts, jwt-utils.ts
任务:"为 API 端点添加速率限制"
循环 1:
分发: 在 routes/** 中搜索 "rate"、"limit"、"api"
评估: 无匹配——代码库使用"throttle"术语
精化: 添加 "throttle"、"middleware" 关键词
循环 2:
分发: 搜索精化术语
评估: 找到 throttle.ts (0.9), middleware/index.ts (0.7)
精化: 需要路由器模式
循环 3:
分发: 搜索 "router"、"express" 模式
评估: 找到 router-setup.ts (0.8)
精化: 足够上下文
结果: throttle.ts, middleware/index.ts, router-setup.ts
关键教训: 代码库可能使用意外术语——第一次循环揭示命名约定。
在代理提示中使用:
检索此任务的上下文时:
1. 从广泛的关键字搜索开始
2. 评估每个文件的相关性(0-1 级)
3. 识别仍然缺少什么上下文
4. 精化搜索条件并重复(最多 3 次循环)
5. 返回相关性 >= 0.7 的文件
代理输出示例:
## 上下文检索结果
循环 1:
- 搜索: ["auth", "token"]
- 结果: 15 个文件
- 高相关性: auth.ts (0.9), session.ts (0.8)
循环 2:
- 精化: 添加 "jwt"、"refresh"
- 结果: 8 个文件
- 高相关性: jwt-utils.ts (0.95), refresh.ts (0.85)
最终上下文: 4 个文件,总相关性 0.87
常见错误:
Token 使用:
方法 1:发送所有文件
- Token: 200,000
- 质量:高(包含所有内容)
- 成本:高 ❌
方法 2:迭代检索
- 循环 1: 20,000 tokens(10 个文件)
- 循环 2: 15,000 tokens(5 个文件)
- 循环 3: 8,000 tokens(3 个文件)
- 总计: 43,000 tokens
- 质量:高(包含正确文件)
- 成本:低 ✅
节省: 200K → 43K tokens(78% 减少)
continuous-learning 技能——随时间改进的模式~/.claude/agents/ 中的代理定义记住:迭代检索解决了子代理的上下文困境——渐进式找到正确的文件,而不是猜测或发送所有内容。