Une base de connaissances auto-actualisée pour l'IA en terminal

Je passe la majeure partie de ma journée dans le terminal avec un assistant de codage IA.

Je résous souvent des problèmes complexes au cours d'une session. Je trouve un correctif astucieux ou un paramètre de configuration spécifique. Puis je ferme l'onglet et la connaissance s'évapore. Un mois plus tard, je résous exactement le même problème à nouveau.

J'ai conçu un système pour permettre à mon assistant de tenir ses propres notes en utilisant les hooks de Claude Code.

Le système se compose de trois parties :

  • Rechercher dans une petite base de connaissances Markdown à chaque prompt pour fournir du contexte.
  • Capturer les notes utiles à la fin d'une session.
  • Charger l'index au début d'une session.

Voici comment le construire sans ralentir votre flux de travail.

  1. Utiliser UserPromptSubmit pour la récupération

Ce hook s'exécute chaque fois que vous envoyez un prompt. Il reçoit votre texte et peut injecter du contexte avant que le modèle ne réponde.

Ne laissez pas le modèle décider quand consulter vos notes. Utilisez une recherche rapide comme grep pour trouver les fichiers pertinents. N'injectez que les cinq meilleurs résultats. Cela permet de maintenir le processus sous la barre des 100 ms.

Deux règles pour les hooks de recherche :

  • Gardez cela économique. Utilisez grep plutôt qu'un LLM pour la recherche initiale.
  • Restez léger. N'injectez que les titres et les chemins de fichiers. Le modèle pourra ouvrir le fichier s'il a besoin de plus de détails.
  1. Éviter le hook Stop pour les tâches lourdes

Le hook Stop s'exécute chaque fois que l'assistant termine une réponse. Si vous lancez une tâche longue ici, votre assistant deviendra lent. Une session de 30 échanges déclenchera 30 tâches lourdes.

Au lieu de cela, utilisez SessionEnd pour capturer l'intégralité de la session en une seule fois.

  1. Résoudre la limitation de SessionEnd

SessionEnd est non bloquant. Si vous lancez une tâche de fond longue ici, le système risque de l'interrompre à la fermeture de la session.

La solution consiste à utiliser deux hooks :

  • SessionEnd : Ajoutez rapidement le chemin du transcript dans un fichier de file d'attente.
  • SessionStart : Videz cette file d'attente et lancez la tâche de capture lourde en arrière-plan.

Comme la session suivante est active, le processus en arrière-plan survivra.

  1. Prévenir les boucles infinies

Lorsque vous lancez une IA headless pour écrire des notes, elle hérite de votre environnement. Cela signifie que la nouvelle IA déclenchera ses propres hooks. Cela crée une boucle d'appels IA sans fin.

Ajoutez toujours une garde de récursion au début de vos scripts :

[ -n "$KB_CAPTURE" ] && exit 0

Définissez KB_CAPTURE=1 lorsque vous lancez votre tâche de capture en arrière-plan.

Résumé de la configuration :

  • Utilisez UserPromptSubmit pour une injection de contexte instantanée.
  • Utilisez SessionEnd pour mettre les tâches en file d'attente.
  • Utilisez SessionStart pour effectuer le travail réel.
  • Utilisez un modèle peu coûteux pour résumer les notes afin d'économiser de l'argent.

Éviter de résoudre un problème une seule fois rentabilise de nombreuses captures.

Source : https://dev.to/just_an_electron/a-self-updating-knowledge-base-for-my-terminal-ai-assistant-claude-code-hooks-28jb

Communauté d'apprentissage optionnelle : https://t.me/GyaanSetuAi