iterative-retrieval
Ajuda seu agente a buscar informações de forma mais inteligente. Ele refina a busca em várias etapas para encontrar o que precisa.
O que ela faz
Ajuda a IA a encontrar as informações certas em um projeto de código, mesmo quando não sabe exatamente o que procurar no início. Ela busca aos poucos, refinando a busca a cada passo.
Quando usar
- ✓Quando a IA precisa entender um projeto de código grande.
- ✓Se a IA não encontra as informações necessárias de primeira.
- ✓Para evitar que a IA receba muita ou pouca informação.
Exemplo do que pedir para a IA
“Preciso entender como a parte de login funciona neste projeto.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A IA começa com uma busca geral por palavras-chave. Depois, ela avalia o que encontrou, identifica o que ainda falta e refina a busca com base nisso. Esse processo se repete algumas vezes até ter informações suficientes.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add affaan-m/ECC --skill iterative-retrievalOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/skills/iterative-retrieval/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Padrão de Recuperação Iterativa
Resolve o "problema de contexto" em fluxos de trabalho multiagentes onde os subagentes não sabem qual contexto precisam até começarem a trabalhar.
Quando Ativar
- Ao iniciar subagentes que precisam de contexto de código que não podem prever antecipadamente.
- Ao construir fluxos de trabalho multiagentes onde o contexto é progressivamente refinado.
- Ao encontrar falhas de "contexto muito grande" ou "contexto ausente" em tarefas de agente.
- Ao projetar pipelines de recuperação semelhantes a RAG para exploração de código.
- Ao otimizar o uso de tokens na orquestração de agentes.
O Problema
Subagentes são iniciados com contexto limitado. Eles não sabem:
- Quais arquivos contêm código relevante.
- Quais padrões existem na base de código.
- Qual terminologia o projeto utiliza.
Abordagens padrão falham:
- Enviar tudo: Excede os limites de contexto.
- Enviar nada: O agente carece de informações críticas.
- Adivinhar o que é necessário: Frequentemente incorreto.
A Solução: Recuperação Iterativa
Um loop de 4 fases que refina progressivamente o contexto:
┌─────────────────────────────────────────────┐
│ │
│ ┌──────────┐ ┌──────────┐ │
│ │ DISPATCH │─────│ EVALUATE │ │
│ └──────────┘ └──────────┘ │
│ ▲ │ │
│ │ ▼ │
│ ┌──────────┐ ┌──────────┐ │
│ │ LOOP │─────│ REFINE │ │
│ └──────────┘ └──────────┘ │
│ │
│ Max 3 cycles, then proceed │
└─────────────────────────────────────────────┘
Fase 1: DESPACHO
Consulta inicial ampla para coletar arquivos candidatos:
// Start with high-level intent
const initialQuery = {
patterns: ['src/**/*.ts', 'lib/**/*.ts'],
keywords: ['authentication', 'user', 'session'],
excludes: ['*.test.ts', '*.spec.ts']
};
// Dispatch to retrieval agent
const candidates = await retrieveFiles(initialQuery);
Fase 2: AVALIAR
Avaliar o conteúdo recuperado quanto à relevância:
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)
}));
}
Critérios de pontuação:
- Alto (0.8-1.0): Implementa diretamente a funcionalidade alvo.
- Médio (0.5-0.7): Contém padrões ou tipos relacionados.
- Baixo (0.2-0.4): Tangencialmente relacionado.
- Nenhum (0-0.2): Não relevante, excluir.
Fase 3: REFINAR
Atualizar os critérios de busca com base na avaliação:
function refineQuery(evaluation, previousQuery) {
return {
// Add new patterns discovered in high-relevance files
patterns: [...previousQuery.patterns, ...extractPatterns(evaluation)],
// Add terminology found in codebase
keywords: [...previousQuery.keywords, ...extractKeywords(evaluation)],
// Exclude confirmed irrelevant paths
excludes: [...previousQuery.excludes, ...evaluation
.filter(e => e.relevance < 0.2)
.map(e => e.path)
],
// Target specific gaps
focusAreas: evaluation
.flatMap(e => e.missingContext)
.filter(unique)
};
}
Fase 4: LOOP
Repetir com critérios refinados (máximo de 3 ciclos):
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);
// Check if we have sufficient context
const highRelevance = evaluation.filter(e => e.relevance >= 0.7);
if (highRelevance.length >= 3 && !hasCriticalGaps(evaluation)) {
return highRelevance;
}
// Refine and continue
query = refineQuery(evaluation, query);
bestContext = mergeContext(bestContext, highRelevance);
}
return bestContext;
}
Exemplos Práticos
Exemplo 1: Contexto para Correção de Bugs
Task: "Fix the authentication token expiry bug"
Cycle 1:
DISPATCH: Search for "token", "auth", "expiry" in src/**
EVALUATE: Found auth.ts (0.9), tokens.ts (0.8), user.ts (0.3)
REFINE: Add "refresh", "jwt" keywords; exclude user.ts
Cycle 2:
DISPATCH: Search refined terms
EVALUATE: Found session-manager.ts (0.95), jwt-utils.ts (0.85)
REFINE: Sufficient context (2 high-relevance files)
Result: auth.ts, tokens.ts, session-manager.ts, jwt-utils.ts
…
Perguntas frequentes
Por que a IA não acha tudo de uma vez?
Projetos de código podem ser muito grandes. Buscar tudo de uma vez pode sobrecarregar a IA ou não trazer o que é realmente importante. Buscar aos poucos é mais eficiente.
O que acontece se a IA ainda não achar o que precisa depois de algumas tentativas?
Ela para e entrega o melhor que conseguiu encontrar. O objetivo é ter informações úteis, mesmo que não sejam 100% completas.
Isso é como usar um motor de busca?
É parecido, mas mais inteligente. A IA aprende com os resultados de cada busca para fazer a próxima busca ainda melhor, focando no que é mais relevante.
Detalhes
Descrição original do autor
Pattern for progressively refining context retrieval to solve the subagent context problem. Use when a subagent lacks the context it needs and retrieval must be refined across passes.
repo: affaan-m/ECC
Popularidade
- Estrelas no GitHub
- 280 mil
- Posição no ranking
- #217
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
accessibility
Ajuda seu agente a criar interfaces que todos possam usar. Garante que sites e aplicativos funcionem bem para pessoas com deficiência, como cegos ou com mobilidade reduzida.
affaan-m/ECC
agent-architecture-audit
Faz seu agente verificar se tudo está funcionando corretamente. Ele encontra e conserta problemas em sistemas de IA, garantindo que funcionem como esperado.
affaan-m/ECC
agent-eval
Ajuda seu agente a comparar diferentes ferramentas de programação de IA. Ele mede qual é mais rápido, barato e confiável para realizar tarefas específicas.
affaan-m/ECC
agent-harness-construction
Faz seu agente entender melhor como realizar tarefas. Ele otimiza as ferramentas e instruções que o agente usa para aumentar suas chances de sucesso.
affaan-m/ECC
Skills parecidas
mcp-builder
Ajuda seu agente a criar servidores que conectam LLMs a serviços externos. Essencial para integrar APIs e serviços usando Python ou Node/TypeScript.
anthropics/skills
prepare-mcp-integration
Prepara integrações com fornecedores (MCP) através de pesquisa e aprovação humana. Segue um processo guiado para novas integrações.
paperclipai/paperclip
first-task
Guia o agente na primeira tarefa do usuário. Ele interpreta a resposta inicial, esclarece o objetivo e propõe um plano ou tarefa única para aprovação.
paperclipai/paperclip