Mécanisme d'injection automatique de contexte : Laissez l'Agent "prévoir l'avenir"
Ce que vous pourrez faire après ce cours
Après avoir terminé ce cours, vous serez capable de :
- Comprendre pourquoi l'Agent connaît vos habitudes de codage et l'architecture du projet dès le début.
- Maîtriser le "modèle tridimensionnel" de l'injection de contexte (profil utilisateur, connaissances du projet, mémoires pertinentes).
- Apprendre à utiliser des mots-clés (comme "Remember this") pour intervenir activement dans le comportement de mémorisation de l'Agent.
- Configurer le nombre d'éléments injectés pour équilibrer la longueur du contexte et la richesse des informations.
Idée principale
Avant le plugin de mémoire, à chaque nouvelle session, l'Agent était une page blanche. Vous deviez répéter : "J'utilise TypeScript", "ce projet utilise Next.js".
L'injection de contexte (Context Injection) résout ce problème. Elle consiste à insérer un "briefing de mission" dans le cerveau de l'Agent dès qu'il s'éveille.
Moment de déclenchement
opencode-supermemory est très discret, ne déclenchant l'injection automatique qu'avec le premier message de la session.
- Pourquoi le premier message ? Parce que c'est le moment clé pour établir le ton de la session.
- Et les messages suivants ? Les messages suivants ne déclenchent plus l'injection automatique pour éviter d'interférer avec le flux de conversation, sauf si vous le déclenchez activement (voir "Déclenchement par mots-clés" ci-dessous).
Modèle d'injection tridimensionnel
Le plugin obtient en parallèle trois types de données, les combinant en un bloc de prompt [SUPERMEMORY] :
| Dimension | Source | Fonction | Exemple |
|---|---|---|---|
| 1. Profil utilisateur (Profile) | getProfile | Vos préférences à long terme | "L'utilisateur préfère la programmation fonctionnelle", "préfère les fonctions fléchées" |
| 2. Connaissances du projet (Project) | listMemories | Connaissances globales du projet actuel | "Ce projet utilise Clean Architecture", "l'API est dans src/api" |
| 3. Mémoires pertinentes (Relevant) | searchMemories | Expériences passées liées à votre première phrase | Vous demandez "comment corriger ce bug", il trouve les enregistrements de corrections similaires |
Qu'est-ce qui est injecté ?
Lorsque vous envoyez le premier message dans OpenCode, le plugin insère silencieusement le contenu suivant dans le System Prompt en arrière-plan.
Cliquez pour voir la structure réelle du contenu injecté
[SUPERMEMORY]
User Profile:
- User prefers concise responses
- User uses Zod for all validations
Recent Context:
- Working on auth module refactoring
Project Knowledge:
- [100%] Architecture follows MVC pattern
- [100%] Use 'npm run test' for testing
Relevant Memories:
- [85%] Previous fix for hydration error: use useEffectAprès avoir vu ces informations, l'Agent se comportera comme un employé expérimenté travaillant sur ce projet depuis longtemps, et non comme un stagiaire nouvellement arrivé.
Mécanisme de déclenchement par mots-clés (Nudge)
En plus de l'injection automatique au début, vous pouvez "réveiller" la fonction de mémorisation à tout moment pendant la conversation.
Le plugin intègre un détecteur de mots-clés. Tant que votre message contient des mots de déclenchement spécifiques, le plugin enverra un "indice invisible" (Nudge) à l'Agent, le forçant à appeler l'outil de sauvegarde.
Mots-clés par défaut
remembersave thisdon't forgetmemorizetake note- ... (voir configuration du code source pour plus)
Exemple d'interaction
Votre saisie :
Le format de réponse de l'API a changé, remember dorénavant utilisez
data.resultau lieu dedata.payload.
Le plugin détecte "remember" :
(injection d'indice en arrière-plan) :
[MEMORY TRIGGER DETECTED] The user wants you to remember something...
Réaction de l'Agent :
Reçu. Je vais me souvenir de ce changement. (appelle
supermemory.adden arrière-plan pour sauvegarder la mémoire)
Configuration approfondie
Vous pouvez ajuster le comportement d'injection en modifiant ~/.config/opencode/supermemory.jsonc.
Options de configuration courantes
{
// Si le profil utilisateur est injecté (défaut true)
"injectProfile": true,
// Combien de mémoires du projet injecter à chaque fois (défaut 10)
// Augmenter permet à l'Agent de mieux comprendre le projet, mais consomme plus de tokens
"maxProjectMemories": 10,
// Combien d'éléments de profil utilisateur injecter à chaque fois (défaut 5)
"maxProfileItems": 5,
// Mots-clés personnalisés (supporte les expressions régulières)
"keywordPatterns": [
"note ceci",
"sauvegarde permanente"
]
}Conseil
Après avoir modifié la configuration, vous devez redémarrer OpenCode ou recharger le plugin pour que les changements prennent effet.
Questions fréquentes
Q : Les informations injectées consomment-elles beaucoup de tokens ?
R : Elles consomment une partie, mais généralement de manière contrôlable. Avec la configuration par défaut (10 mémoires du projet + 5 éléments de profil), environ 500-1000 tokens sont consommés. Pour les grands modèles modernes (comme Claude 3.5 Sonnet) avec un contexte de 200k, ce n'est rien.
Q : Pourquoi n'y a-t-il aucune réaction quand je dis "remember" ?
R :
- Vérifiez que l'orthographe est correcte (supporte la correspondance regex).
- Confirmez que la clé API est correctement configurée (si le plugin n'est pas initialisé, il ne se déclenchera pas).
- L'Agent peut décider d'ignorer (bien que le plugin ait forcé l'invite, l'Agent a le dernier mot).
Q : Comment les "mémoires pertinentes" sont-elles trouvées ?
R : Elles sont trouvées par une recherche sémantique basée sur le contenu de votre premier message. Si votre première phrase ne dit que "Hi", vous ne trouverez peut-être rien d'utile, mais les "connaissances du projet" et le "profil utilisateur" seront toujours injectés.
Résumé du cours
- L'injection automatique se déclenche uniquement avec le premier message de la session.
- Le modèle tridimensionnel comprend le profil utilisateur, les connaissances du projet et les mémoires pertinentes.
- Le déclenchement par mots-clés vous permet de commander à l'Agent de sauvegarder des mémoires à tout moment.
- Vous pouvez contrôler la quantité d'informations injectées via le fichier de configuration.
Aperçu du prochain cours
Le prochain cours est Ensemble d'outils détaillé : Enseigner à l'Agent à mémoriser.
Vous apprendrez :
- Comment utiliser manuellement les outils
add,search, etc.- Comment voir et supprimer les mémoires incorrectes.
Annexe : Référence du code source
Cliquez pour voir les emplacements du code source
Date de mise à jour : 2026-01-23
| Fonctionnalité | Chemin du fichier | Lignes |
|---|---|---|
| Logique de déclenchement de l'injection | src/index.ts | 125-176 |
| --- | --- | --- |
| Formatage du prompt | src/services/context.ts | 14-64 |
| Configuration par défaut | src/config.ts | 44-54 |
Fonctions clés :
formatContextForPrompt(): Assemble le bloc de texte[SUPERMEMORY].detectMemoryKeyword(): Correspond aux mots-clés dans le message de l'utilisateur par regex.
Aperçu du prochain cours
Le prochain cours est Ensemble d'outils détaillé : Enseigner à l'Agent à mémoriser.
Vous apprendrez :
- Maîtriser les 5 modes d'outils principaux (add, search, profile, list, forget)
- Comment intervenir et corriger manuellement les mémoires de l'Agent
- Utiliser des commandes en langage naturel pour déclencher la sauvegarde de mémoires