Pular para o conteúdo
Skillpedia
Agentes280 mil · #217

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

https://github.com/affaan-m/ECC/blob/main/skills/iterative-retrieval/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/affaan-m/ECC/blob/main/skills/iterative-retrieval/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-retrieval

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/skills/iterative-retrieval/SKILL.md -o SKILL.md
Conteú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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas