Communitygithub.com

recherche-itérative

Modèle pour affiner progressivement la récupération de contexte afin de résoudre le problème de contexte des sous-agents. À utiliser lorsqu'un sous-agent manque du contexte nécessaire et que la récupération doit être affinée à travers plusieurs passages.

Qu'est-ce que recherche-itérative ?

Le modèle de recherche itérative résout le problème de contexte dans les workflows multi-agents, où les sous-agents ne savent pas de quel contexte ils ont besoin avant de commencer à travailler. Ce modèle définit un cycle en 4 phases (DISPATCH, EVALUATE, REFINE, LOOP) qui affine progressivement la requête de récupération de contexte. Il permet d'éviter les échecs liés à un contexte trop volumineux ou insuffisant, et optimise l'utilisation des tokens. Compatible avec les agents comme Claude Code, Cursor et Codex, il intègre des exemples pratiques et des meilleures pratiques pour une utilisation efficace dans des tâches complexes de développement et de débogage.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/everything-claude-code/tree/main/skills/iterative-retrieval

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Modèle de Recherche Itérative

Résout le "problème de contexte" dans les workflows multi-agents où les sous-agents ne savent pas de quel contexte ils ont besoin jusqu'à ce qu'ils commencent à travailler.

Quand l'activer

  • Lors du lancement de sous-agents qui ont besoin d'un contexte de codebase qu'ils ne peuvent pas prédire à l'avance
  • Lors de la construction de workflows multi-agents où le contexte est affiné progressivement
  • Face à des erreurs de type "contexte trop volumineux" ou "contexte manquant" dans les tâches d'agent
  • Lors de la conception de pipelines de récupération de type RAG pour l'exploration de code
  • Pour optimiser l'utilisation des tokens dans l'orchestration d'agents

Le Problème

Les sous-agents sont lancés avec un contexte limité. Ils ne savent pas :

  • Quels fichiers contiennent le code pertinent
  • Quels motifs existent dans la base de code
  • Quelle terminologie le projet utilise

Les approches standards échouent :

  • Tout envoyer : Dépasse les limites de contexte
  • Ne rien envoyer : L'agent manque d'informations critiques
  • Deviner ce qui est nécessaire : Souvent incorrect

La Solution : Recherche Itérative

Une boucle en 4 phases qui affine progressivement le contexte :

┌─────────────────────────────────────────────┐
│                                             │
│   ┌──────────┐      ┌──────────┐            │
│   │ DISPATCH │─────│ EVALUATE │            │
│   └──────────┘      └──────────┘            │
│        ▲                  │                 │
│        │                  ▼                 │
│   ┌──────────┐      ┌──────────┐            │
│   │   LOOP   │─────│  REFINE  │            │
│   └──────────┘      └──────────┘            │
│                                             │
│        Max 3 cycles, then proceed           │
└─────────────────────────────────────────────┘

Phase 1 : DISPATCH

Requête initiale large pour rassembler des fichiers candidats :

// Commencez par une intention de haut niveau
const initialQuery = {
  patterns: ['src/**/*.ts', 'lib/**/*.ts'],
  keywords: ['authentication', 'user', 'session'],
  excludes: ['*.test.ts', '*.spec.ts']
};

// Envoyer à l'agent de récupération
const candidates = await retrieveFiles(initialQuery);

Phase 2 : EVALUATE

Évaluer la pertinence du contenu récupéré :

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ères de notation :

  • Élevée (0.8-1.0) : Implémente directement la fonctionnalité cible
  • Moyenne (0.5-0.7) : Contient des motifs ou types liés
  • Faible (0.2-0.4) : Lié tangentiellement
  • Aucune (0-0.2) : Pas pertinent, exclure

Phase 3 : REFINE

Mettre à jour les critères de recherche en fonction de l'évaluation :

function refineQuery(evaluation, previousQuery) {
  return {
    // Ajouter de nouveaux motifs découverts dans les fichiers de haute pertinence
    patterns: [...previousQuery.patterns, ...extractPatterns(evaluation)],

    // Ajouter la terminologie trouvée dans la base de code
    keywords: [...previousQuery.keywords, ...extractKeywords(evaluation)],

    // Exclure les chemins confirmés non pertinents
    excludes: [...previousQuery.excludes, ...evaluation
      .filter(e => e.relevance < 0.2)
      .map(e => e.path)
    ],

    // Cibler des lacunes spécifiques
    focusAreas: evaluation
      .flatMap(e => e.missingContext)
      .filter(unique)
  };
}

Phase 4 : LOOP

Répéter avec des critères affinés (max 3 cycles) :

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);

    // Vérifier si nous disposons d'un contexte suffisant
    const highRelevance = evaluation.filter(e => e.relevance >= 0.7);
    if (highRelevance.length >= 3 && !hasCriticalGaps(evaluation)) {
      return highRelevance;
    }

    // Affiner et continuer
    query = refineQuery(evaluation, query);
    bestContext = mergeContext(bestContext, highRelevance);
  }

  return bestContext;
}

Exemples Pratiques

Exemple 1 : Contexte de Correction de Bug

Tâche : "Corriger le bug d'expiration du jeton d'authentification"

Cycle 1 :
  DISPATCH : Rechercher "token", "auth", "expiry" dans src/**
  EVALUATE : Trouvé auth.ts (0.9), tokens.ts (0.8), user.ts (0.3)
  REFINE : Ajouter les mots-clés "refresh", "jwt" ; exclure user.ts

Cycle 2 :
  DISPATCH : Rechercher les termes affinés
  EVALUATE : Trouvé session-manager.ts (0.95), jwt-utils.ts (0.85)
  REFINE : Contexte suffisant (2 fichiers de haute pertinence)

Résultat : auth.ts, tokens.ts, session-manager.ts, jwt-utils.ts

Exemple 2 : Implémentation de Fonctionnalité

Tâche : "Ajouter une limite de débit aux points de terminaison API"

Cycle 1 :
  DISPATCH : Rechercher "rate", "limit", "api" dans routes/**
  EVALUATE : Aucune correspondance - la codebase utilise la terminologie "throttle"
  REFINE : Ajouter les mots-clés "throttle", "middleware"

Cycle 2 :
  DISPATCH : Rechercher les termes affinés
  EVALUATE : Trouvé throttle.ts (0.9), middleware/index.ts (0.7)
  REFINE : Besoin des motifs de routeur

Cycle 3 :
  DISPATCH : Rechercher les motifs "router", "express"
  EVALUATE : Trouvé router-setup.ts (0.8)
  REFINE : Contexte suffisant

Résultat : throttle.ts, middleware/index.ts, router-setup.ts

Intégration avec les Agents

Utiliser dans les prompts d'agent :

Lors de la récupération du contexte pour cette tâche :
1. Commencez par une recherche large par mots-clés
2. Évaluez la pertinence de chaque fichier (échelle 0-1)
3. Identifiez le contexte qui manque encore
4. Affinez les critères de recherche et répétez (max 3 cycles)
5. Renvoyez les fichiers avec une pertinence >= 0.7

Meilleures Pratiques

  1. Commencez large, affinez progressivement - Ne spécifiez pas trop les requêtes initiales
  2. Apprenez la terminologie de la codebase - Le premier cycle révèle souvent les conventions de nommage
  3. Suivez ce qui manque - L'identification explicite des lacunes guide l'affinement
  4. Arrêtez-vous à "assez bien" - 3 fichiers de haute pertinence valent mieux que 10 médiocres
  5. Excluez en toute confiance - Les fichiers de faible pertinence ne deviendront pas pertinents

Liés

  • The Longform Guide - Section sur l'orchestration des sous-agents
  • Compétence continuous-learning - Pour les motifs qui s'améliorent avec le temps
  • Définitions d'agents incluses avec ECC (chemin d'installation manuelle : agents/)

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/claude-api

Anthropic Claude API patterns for Python and TypeScript. Covers Messages API, streaming, tool use, vision, extended thinking, batches, prompt caching, and Claude Agent SDK. Use when building applications with the Claude API or Anthropic SDKs.

affaan-m/everything-claude-code

End-to-end marketing campaign planning and execution. Covers audience research, positioning, campaign angle definition, landing page copy, email sequences, social posts, ad copy, short-form video scripts, and content calendars. Use as the orchestration layer for multi-channel product launches. Use when planning or executing a multi-channel product launch, or producing landing page, email, social, or ad copy.

affaan-m/everything-claude-code

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/everything-claude-code-conventions

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use when the user asks to build web components, pages, or applications and the visual direction matters as much as the code quality.

affaan-m/gget

gget CLI and Python workflow for quick genomic database queries, sequence lookup, BLAST-style searches, enrichment checks, and reproducible bioinformatics evidence logs.

affaan-m/literature-review

Systematic literature-review workflow for academic, biomedical, technical, and scientific topics, including search planning, source screening, synthesis, citation checks, and evidence logging.

affaan-m/motion-ui

Production-ready UI motion system for React/Next.js. Use when implementing animations, transitions, or motion patterns.

affaan-m/project-guidelines-example

Example project-specific skill template based on a real production application.

affaan-m/pubmed-database

Direct PubMed and NCBI E-utilities search workflows for biomedical literature, MeSH queries, PMID lookup, citation retrieval, and API-backed literature monitoring.

affaan-m/scholar-evaluation

Structured scholarly-work evaluation for papers, proposals, literature reviews, methods sections, evidence quality, citation support, and research-writing feedback.

affaan-m/uspto-database

USPTO patent and trademark data workflow for official record lookup, PatentSearch queries, TSDR checks, assignment data, and reproducible IP research logs.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

Skills associés