用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/linnefromice/claude-code-workspace --skill iterative-retrieval命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | iterative-retrieval |
| description | Pattern for progressively refining context retrieval to solve the subagent context problem |
| origin | ECC |
サブエージェントが作業を開始するまで必要なコンテキストがわからないマルチエージェントワークフローの「コンテキスト問題」を解決します。
サブエージェントは限られたコンテキストで生成される。以下がわからない:
標準的なアプローチは失敗する:
コンテキストを段階的に洗練する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),
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)
};
}
洗練された条件で繰り返す(最大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;
}
タスク: 「認証トークンの有効期限バグを修正」
サイクル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
タスク: 「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)を発見
REFINE: 十分なコンテキスト
結果: throttle.ts、middleware/index.ts、router-setup.ts
エージェントプロンプトでの使用:
このタスクのコンテキストを取得する際:
1. 広範なキーワード検索から開始
2. 各ファイルの関連性を評価(0-1スケール)
3. まだ不足しているコンテキストを特定
4. 検索条件を洗練して繰り返す(最大3サイクル)
5. 関連性 >= 0.7のファイルを返す
continuous-learningスキル - 時間とともに改善されるパターン用~/.claude/agents/のエージェント定義