{"title":"Bonnes pratiques mémoire","slug":"memory-best-practices","category":"guides","summary":"Comment structurer les mémoires pour un rappel efficace — catégories, clés, tags, priorités.","audience":["human","llm"],"tags":["guide","memory","best-practices","patterns"],"difficulty":"intermediate","updated":"2026-06-27","word_count":729,"read_minutes":4,"lang":"fr","translated":true,"requested_lang":"fr","content_markdown":"\n# Bonnes pratiques mémoire\n\nLa façon dont vous structurez les mémoires détermine leur utilité. Ce guide couvre\nles schémas pour catégoriser, tagger et prioriser les mémoires afin que le LLM puisse\nrappeler la bonne information au bon moment.\n\n## Catégories : choisissez la plus spécifique\n\n| Catégorie | Utiliser pour | Exemple |\n|----------|---------|---------|\n| `identity` | Nom d'utilisateur, rôle, infos de contact | `\"user_name\": \"Michael Schäfer\"` |\n| `preference` | Goûts, aversions, style de travail | `\"communication\": \"Prefers concise responses\"` |\n| `fact` | Faits vérifiables | `\"office_location\": \"Berlin, Germany\"` |\n| `project` | Statut de projet, décisions | `\"project_synapse\": \"v1.5.0 deployed\"` |\n| `skill` | Compétences de l'utilisateur | `\"skill_python\": \"Advanced, 10+ years\"` |\n| `mistake` | Erreurs passées à éviter | `\"mistake_npm_version\": \"Always bump version\"` |\n| `context` | Contexte pertinent à la session | `\"current_focus\": \"Working on docs system\"` |\n| `note` | Notes diverses | `\"note_idea\": \"Try Redis for caching\"` |\n\n> [!TIP]\n> En cas de doute, utilisez `fact` pour les infos vérifiables et `note` pour tout le\n> reste. Ne sur-catégorisez pas — mieux vaut avoir un `fact` clair qu'un `context`\n> confus.\n\n## Clés : identifiants significatifs\n\nLe champ `key` est l'identifiant de la mémoire. Utilisez des clés significatives et\nstables :\n\n**Bonnes clés :**\n- `user_name`\n- `project_synapse_status`\n- `preference_communication_style`\n- `mistake_npm_version_bump`\n\n**Mauvaises clés :**\n- `mem_001` (non significative)\n- `temp` (non descriptive)\n- `2026-06-27-note` (la date n'aide pas le rappel)\n\n### Conventions de nommage des clés\n\n- `snake_case` (minuscules avec tirets bas)\n- Préfixez avec la catégorie : `preference_*`, `project_*`, `mistake_*`\n- Utilisez des noms descriptifs, pas des verbes\n- Gardez en dessous de 50 caractères\n\n## Tags : pour la recherche et le filtrage\n\nLes tags permettent le filtrage et la recherche rapides. Ajoutez 2-5 tags par mémoire :\n\n```json\n{\n  \"category\": \"project\",\n  \"key\": \"project_synapse_status\",\n  \"content\": \"Synapse v1.5.0 deployed. Next: v1.6.0 with docs system.\",\n  \"tags\": [\"synapse\", \"deployment\", \"status\", \"v1.5.0\"]\n}\n```\n\n### Schémas de tags\n\n- **Noms de projet** : `synapse`, `synapse-mcp`, `synapse-chat`\n- **Sujets** : `deployment`, `ci`, `database`, `auth`\n- **Statut** : `active`, `completed`, `blocked`\n- **Indicateurs de priorité** : `urgent`, `long-term`\n\n> [!NOTE]\n> Les tags sont insensibles à la casse. Utilisez des minuscules pour la cohérence.\n\n## Priorités : soyez réaliste\n\n| Priorité | Utiliser pour | % des mémoires |\n|----------|---------|---------------|\n| `critical` | Identité utilisateur, infos légales, décisions irréversibles | ~5 % |\n| `high` | Projets actifs, préférences importantes | ~20 % |\n| `normal` | La plupart des faits, notes, contexte | ~65 % |\n| `low` | Éphémère, utile à savoir | ~10 % |\n\n> [!WARNING]\n> Ne marquez pas tout `critical`. Si tout est critique, rien ne l'est. Réservez\n> `critical` pour ce qui causerait un réel préjudice si c'était oublié.\n\n## Quand stocker ou non\n\n### Toujours stocker\n\n- Identité utilisateur (nom, email, rôle)\n- Préférences longue durée\n- Décisions de projet et justification\n- Erreurs passées et leçons apprises\n- Engagements pris envers l'utilisateur\n\n### Ne pas stocker\n\n- État transitoire (utilisez plutôt des variables)\n- Historique de conversation verbatim (le système chat gère cela)\n- Données sensibles (mots de passe, clés API)\n- Faits facilement dérivables (date actuelle, contenu de fichiers)\n- Contexte éphémère (utilisez la catégorie `context` avec priorité basse)\n\n## Mettre à jour les mémoires\n\nPOST `/memory` avec la même `category` + `key` met à jour la mémoire existante :\n\n```python\n# Stockage initial\nstore(\"project\", \"project_synapse_status\", \"v1.4.0 deployed\", priority=\"high\")\n\n# Plus tard : mise à jour avec la même clé\nstore(\"project\", \"project_synapse_status\", \"v1.5.0 deployed. CI green.\", priority=\"high\")\n```\n\n> [!TIP]\n> Utilisez des clés stables pour pouvoir mettre à jour sans créer de doublons. Le LLM\n> doit re-POSTer la même clé quand les infos changent, pas créer de nouvelles mémoires.\n\n## Cycle de vie d'une mémoire\n\n```\nCreate → Active → Stale → Archive → Delete\n```\n\n- **Create** : POST /memory avec contexte complet\n- **Active** : Rappeler fréquemment, mettre à jour au besoin\n- **Stale** : Toujours pertinent mais pas activement utilisé (priorité plus basse ?)\n- **Archive** : Définir la priorité sur `low`, conserver pour référence historique\n- **Delete** : DELETE /memory/:id quand plus pertinent\n\n### Nettoyage périodique\n\n```python\n# Trouver les mémoires non mises à jour depuis 90 jours\nold_memories = requests.get(\n    f\"{URL}/memory/search?q=*\",\n    headers={\"Authorization\": f\"Bearer {KEY}\"}\n)\n\nfor mem in old_memories[\"results\"]:\n    if is_stale(mem, days=90):\n        # Soit supprimer, soit abaisser la priorité\n        if is_obsolete(mem):\n            delete_memory(mem[\"id\"])\n        else:\n            update_memory(mem[\"id\"], priority=\"low\")\n```\n\n## Schéma : héritage de mémoire\n\nPour un contexte hiérarchique (projet → sous-projet → tâche) :\n\n```python\n# Projet parent\nstore(\"project\", \"project_synapse\", \"Main Synapse project\", \n      tags=[\"synapse\", \"parent\"], priority=\"high\")\n\n# Sous-projet (les tags lient au parent)\nstore(\"project\", \"project_synapse_docs\", \"Docs system for Synapse\",\n      tags=[\"synapse\", \"docs\", \"synapse-parent\"], priority=\"high\")\n\n# Tâche spécifique (les tags lient au sous-projet)\nstore(\"project\", \"task_docs_loader\", \"Implement docs-loader.ts\",\n      tags=[\"synapse\", \"docs\", \"task\"], priority=\"normal\")\n```\n\nLe LLM peut alors chercher `q=synapse+docs` pour trouver toutes les mémoires liées.\n\n## Schéma : journal de décisions\n\nStockez les décisions avec leur justification pour que le LLM ne les re-questionne\npas :\n\n```python\nstore(\"fact\", \"decision_postgres_over_sqlite\",\n      \"Chose PostgreSQL over SQLite for production. Reason: concurrent writes, \"\n      \"FTS5 native support, better backup story. Date: 2026-06-15. Decided by: Michael.\",\n      tags=[\"decision\", \"database\", \"postgres\", \"sqlite\"],\n      priority=\"high\")\n```\n\n## Schéma : évitement des erreurs\n\nStockez les erreurs avec des instructions d'évitement spécifiques :\n\n```python\nstore(\"mistake\", \"mistake_forget_version_bump\",\n      \"Forgot to bump package.json version after changes. npm publish failed. \"\n      \"FIX: Always run `npm version patch` before pushing. \"\n      \"CI fails with 'version already exists' if you forget.\",\n      tags=[\"npm\", \"ci\", \"publish\", \"version\"],\n      priority=\"high\")\n```\n\n## Anti-schémas à éviter\n\n> [!WARNING]\n> - **Stocker les journaux de conversation** — le système chat gère cela\n> - **Stocker des fichiers entiers** — utilisez le script store ou le stockage externe\n> - **Stocker l'état éphémère** — utilisez des variables\n> - **Stocker des secrets** — utilisez des variables d'environnement\n> - **Dupliquer les mémoires** — utilisez des clés stables\n> - **Sur-tagger** — 2-5 tags par mémoire est idéal\n> - **Tout est critique** — soyez réaliste avec les priorités\n\n## Prochaines étapes\n\n- [API Memory](/docs/api/memory)\n- [Agent LLM persistant](/docs/guides/persistent-llm-agent)\n- [Stratégie de tagging mémoire](/docs/llm-cookbook/memory-tagging-strategy)\n","content_html":"<h1>Bonnes pratiques mémoire</h1>\n<p>La façon dont vous structurez les mémoires détermine leur utilité. Ce guide couvre\nles schémas pour catégoriser, tagger et prioriser les mémoires afin que le LLM puisse\nrappeler la bonne information au bon moment.</p>\n<h2>Catégories : choisissez la plus spécifique</h2>\n<table>\n<thead>\n<tr>\n<th>Catégorie</th>\n<th>Utiliser pour</th>\n<th>Exemple</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>identity</code></td>\n<td>Nom d&#39;utilisateur, rôle, infos de contact</td>\n<td><code>&quot;user_name&quot;: &quot;Michael Schäfer&quot;</code></td>\n</tr>\n<tr>\n<td><code>preference</code></td>\n<td>Goûts, aversions, style de travail</td>\n<td><code>&quot;communication&quot;: &quot;Prefers concise responses&quot;</code></td>\n</tr>\n<tr>\n<td><code>fact</code></td>\n<td>Faits vérifiables</td>\n<td><code>&quot;office_location&quot;: &quot;Berlin, Germany&quot;</code></td>\n</tr>\n<tr>\n<td><code>project</code></td>\n<td>Statut de projet, décisions</td>\n<td><code>&quot;project_synapse&quot;: &quot;v1.5.0 deployed&quot;</code></td>\n</tr>\n<tr>\n<td><code>skill</code></td>\n<td>Compétences de l&#39;utilisateur</td>\n<td><code>&quot;skill_python&quot;: &quot;Advanced, 10+ years&quot;</code></td>\n</tr>\n<tr>\n<td><code>mistake</code></td>\n<td>Erreurs passées à éviter</td>\n<td><code>&quot;mistake_npm_version&quot;: &quot;Always bump version&quot;</code></td>\n</tr>\n<tr>\n<td><code>context</code></td>\n<td>Contexte pertinent à la session</td>\n<td><code>&quot;current_focus&quot;: &quot;Working on docs system&quot;</code></td>\n</tr>\n<tr>\n<td><code>note</code></td>\n<td>Notes diverses</td>\n<td><code>&quot;note_idea&quot;: &quot;Try Redis for caching&quot;</code></td>\n</tr>\n</tbody></table>\n<div class=\"callout callout-ok\">En cas de doute, utilisez `fact` pour les infos vérifiables et `note` pour tout le\nreste. Ne sur-catégorisez pas — mieux vaut avoir un `fact` clair qu'un `context`\nconfus.</div><h2>Clés : identifiants significatifs</h2>\n<p>Le champ <code>key</code> est l&#39;identifiant de la mémoire. Utilisez des clés significatives et\nstables :</p>\n<p><strong>Bonnes clés :</strong></p>\n<ul>\n<li><code>user_name</code></li>\n<li><code>project_synapse_status</code></li>\n<li><code>preference_communication_style</code></li>\n<li><code>mistake_npm_version_bump</code></li>\n</ul>\n<p><strong>Mauvaises clés :</strong></p>\n<ul>\n<li><code>mem_001</code> (non significative)</li>\n<li><code>temp</code> (non descriptive)</li>\n<li><code>2026-06-27-note</code> (la date n&#39;aide pas le rappel)</li>\n</ul>\n<h3>Conventions de nommage des clés</h3>\n<ul>\n<li><code>snake_case</code> (minuscules avec tirets bas)</li>\n<li>Préfixez avec la catégorie : <code>preference_*</code>, <code>project_*</code>, <code>mistake_*</code></li>\n<li>Utilisez des noms descriptifs, pas des verbes</li>\n<li>Gardez en dessous de 50 caractères</li>\n</ul>\n<h2>Tags : pour la recherche et le filtrage</h2>\n<p>Les tags permettent le filtrage et la recherche rapides. Ajoutez 2-5 tags par mémoire :</p>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-punctuation\">{</span>\n  <span class=\"hljs-attr\">&quot;category&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;project&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;key&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;project_synapse_status&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;content&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;Synapse v1.5.0 deployed. Next: v1.6.0 with docs system.&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;tags&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">[</span><span class=\"hljs-string\">&quot;synapse&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;deployment&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;status&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;v1.5.0&quot;</span><span class=\"hljs-punctuation\">]</span>\n<span class=\"hljs-punctuation\">}</span></code></pre><h3>Schémas de tags</h3>\n<ul>\n<li><strong>Noms de projet</strong> : <code>synapse</code>, <code>synapse-mcp</code>, <code>synapse-chat</code></li>\n<li><strong>Sujets</strong> : <code>deployment</code>, <code>ci</code>, <code>database</code>, <code>auth</code></li>\n<li><strong>Statut</strong> : <code>active</code>, <code>completed</code>, <code>blocked</code></li>\n<li><strong>Indicateurs de priorité</strong> : <code>urgent</code>, <code>long-term</code></li>\n</ul>\n<div class=\"callout callout-note\">Les tags sont insensibles à la casse. Utilisez des minuscules pour la cohérence.</div><h2>Priorités : soyez réaliste</h2>\n<table>\n<thead>\n<tr>\n<th>Priorité</th>\n<th>Utiliser pour</th>\n<th>% des mémoires</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>critical</code></td>\n<td>Identité utilisateur, infos légales, décisions irréversibles</td>\n<td>~5 %</td>\n</tr>\n<tr>\n<td><code>high</code></td>\n<td>Projets actifs, préférences importantes</td>\n<td>~20 %</td>\n</tr>\n<tr>\n<td><code>normal</code></td>\n<td>La plupart des faits, notes, contexte</td>\n<td>~65 %</td>\n</tr>\n<tr>\n<td><code>low</code></td>\n<td>Éphémère, utile à savoir</td>\n<td>~10 %</td>\n</tr>\n</tbody></table>\n<div class=\"callout callout-warn\">Ne marquez pas tout `critical`. Si tout est critique, rien ne l'est. Réservez\n`critical` pour ce qui causerait un réel préjudice si c'était oublié.</div><h2>Quand stocker ou non</h2>\n<h3>Toujours stocker</h3>\n<ul>\n<li>Identité utilisateur (nom, email, rôle)</li>\n<li>Préférences longue durée</li>\n<li>Décisions de projet et justification</li>\n<li>Erreurs passées et leçons apprises</li>\n<li>Engagements pris envers l&#39;utilisateur</li>\n</ul>\n<h3>Ne pas stocker</h3>\n<ul>\n<li>État transitoire (utilisez plutôt des variables)</li>\n<li>Historique de conversation verbatim (le système chat gère cela)</li>\n<li>Données sensibles (mots de passe, clés API)</li>\n<li>Faits facilement dérivables (date actuelle, contenu de fichiers)</li>\n<li>Contexte éphémère (utilisez la catégorie <code>context</code> avec priorité basse)</li>\n</ul>\n<h2>Mettre à jour les mémoires</h2>\n<p>POST <code>/memory</code> avec la même <code>category</code> + <code>key</code> met à jour la mémoire existante :</p>\n<pre><code class=\"hljs language-python\"><span class=\"hljs-comment\"># Stockage initial</span>\nstore(<span class=\"hljs-string\">&quot;project&quot;</span>, <span class=\"hljs-string\">&quot;project_synapse_status&quot;</span>, <span class=\"hljs-string\">&quot;v1.4.0 deployed&quot;</span>, priority=<span class=\"hljs-string\">&quot;high&quot;</span>)\n\n<span class=\"hljs-comment\"># Plus tard : mise à jour avec la même clé</span>\nstore(<span class=\"hljs-string\">&quot;project&quot;</span>, <span class=\"hljs-string\">&quot;project_synapse_status&quot;</span>, <span class=\"hljs-string\">&quot;v1.5.0 deployed. CI green.&quot;</span>, priority=<span class=\"hljs-string\">&quot;high&quot;</span>)</code></pre><div class=\"callout callout-ok\">Utilisez des clés stables pour pouvoir mettre à jour sans créer de doublons. Le LLM\ndoit re-POSTer la même clé quand les infos changent, pas créer de nouvelles mémoires.</div><h2>Cycle de vie d&#39;une mémoire</h2>\n<pre><code class=\"hljs language-plaintext\">Create → Active → Stale → Archive → Delete</code></pre><ul>\n<li><strong>Create</strong> : POST /memory avec contexte complet</li>\n<li><strong>Active</strong> : Rappeler fréquemment, mettre à jour au besoin</li>\n<li><strong>Stale</strong> : Toujours pertinent mais pas activement utilisé (priorité plus basse ?)</li>\n<li><strong>Archive</strong> : Définir la priorité sur <code>low</code>, conserver pour référence historique</li>\n<li><strong>Delete</strong> : DELETE /memory/:id quand plus pertinent</li>\n</ul>\n<h3>Nettoyage périodique</h3>\n<pre><code class=\"hljs language-python\"><span class=\"hljs-comment\"># Trouver les mémoires non mises à jour depuis 90 jours</span>\nold_memories = requests.get(\n    <span class=\"hljs-string\">f&quot;<span class=\"hljs-subst\">{URL}</span>/memory/search?q=*&quot;</span>,\n    headers={<span class=\"hljs-string\">&quot;Authorization&quot;</span>: <span class=\"hljs-string\">f&quot;Bearer <span class=\"hljs-subst\">{KEY}</span>&quot;</span>}\n)\n\n<span class=\"hljs-keyword\">for</span> mem <span class=\"hljs-keyword\">in</span> old_memories[<span class=\"hljs-string\">&quot;results&quot;</span>]:\n    <span class=\"hljs-keyword\">if</span> is_stale(mem, days=<span class=\"hljs-number\">90</span>):\n        <span class=\"hljs-comment\"># Soit supprimer, soit abaisser la priorité</span>\n        <span class=\"hljs-keyword\">if</span> is_obsolete(mem):\n            delete_memory(mem[<span class=\"hljs-string\">&quot;id&quot;</span>])\n        <span class=\"hljs-keyword\">else</span>:\n            update_memory(mem[<span class=\"hljs-string\">&quot;id&quot;</span>], priority=<span class=\"hljs-string\">&quot;low&quot;</span>)</code></pre><h2>Schéma : héritage de mémoire</h2>\n<p>Pour un contexte hiérarchique (projet → sous-projet → tâche) :</p>\n<pre><code class=\"hljs language-python\"><span class=\"hljs-comment\"># Projet parent</span>\nstore(<span class=\"hljs-string\">&quot;project&quot;</span>, <span class=\"hljs-string\">&quot;project_synapse&quot;</span>, <span class=\"hljs-string\">&quot;Main Synapse project&quot;</span>, \n      tags=[<span class=\"hljs-string\">&quot;synapse&quot;</span>, <span class=\"hljs-string\">&quot;parent&quot;</span>], priority=<span class=\"hljs-string\">&quot;high&quot;</span>)\n\n<span class=\"hljs-comment\"># Sous-projet (les tags lient au parent)</span>\nstore(<span class=\"hljs-string\">&quot;project&quot;</span>, <span class=\"hljs-string\">&quot;project_synapse_docs&quot;</span>, <span class=\"hljs-string\">&quot;Docs system for Synapse&quot;</span>,\n      tags=[<span class=\"hljs-string\">&quot;synapse&quot;</span>, <span class=\"hljs-string\">&quot;docs&quot;</span>, <span class=\"hljs-string\">&quot;synapse-parent&quot;</span>], priority=<span class=\"hljs-string\">&quot;high&quot;</span>)\n\n<span class=\"hljs-comment\"># Tâche spécifique (les tags lient au sous-projet)</span>\nstore(<span class=\"hljs-string\">&quot;project&quot;</span>, <span class=\"hljs-string\">&quot;task_docs_loader&quot;</span>, <span class=\"hljs-string\">&quot;Implement docs-loader.ts&quot;</span>,\n      tags=[<span class=\"hljs-string\">&quot;synapse&quot;</span>, <span class=\"hljs-string\">&quot;docs&quot;</span>, <span class=\"hljs-string\">&quot;task&quot;</span>], priority=<span class=\"hljs-string\">&quot;normal&quot;</span>)</code></pre><p>Le LLM peut alors chercher <code>q=synapse+docs</code> pour trouver toutes les mémoires liées.</p>\n<h2>Schéma : journal de décisions</h2>\n<p>Stockez les décisions avec leur justification pour que le LLM ne les re-questionne\npas :</p>\n<pre><code class=\"hljs language-python\">store(<span class=\"hljs-string\">&quot;fact&quot;</span>, <span class=\"hljs-string\">&quot;decision_postgres_over_sqlite&quot;</span>,\n      <span class=\"hljs-string\">&quot;Chose PostgreSQL over SQLite for production. Reason: concurrent writes, &quot;</span>\n      <span class=\"hljs-string\">&quot;FTS5 native support, better backup story. Date: 2026-06-15. Decided by: Michael.&quot;</span>,\n      tags=[<span class=\"hljs-string\">&quot;decision&quot;</span>, <span class=\"hljs-string\">&quot;database&quot;</span>, <span class=\"hljs-string\">&quot;postgres&quot;</span>, <span class=\"hljs-string\">&quot;sqlite&quot;</span>],\n      priority=<span class=\"hljs-string\">&quot;high&quot;</span>)</code></pre><h2>Schéma : évitement des erreurs</h2>\n<p>Stockez les erreurs avec des instructions d&#39;évitement spécifiques :</p>\n<pre><code class=\"hljs language-python\">store(<span class=\"hljs-string\">&quot;mistake&quot;</span>, <span class=\"hljs-string\">&quot;mistake_forget_version_bump&quot;</span>,\n      <span class=\"hljs-string\">&quot;Forgot to bump package.json version after changes. npm publish failed. &quot;</span>\n      <span class=\"hljs-string\">&quot;FIX: Always run `npm version patch` before pushing. &quot;</span>\n      <span class=\"hljs-string\">&quot;CI fails with &#x27;version already exists&#x27; if you forget.&quot;</span>,\n      tags=[<span class=\"hljs-string\">&quot;npm&quot;</span>, <span class=\"hljs-string\">&quot;ci&quot;</span>, <span class=\"hljs-string\">&quot;publish&quot;</span>, <span class=\"hljs-string\">&quot;version&quot;</span>],\n      priority=<span class=\"hljs-string\">&quot;high&quot;</span>)</code></pre><h2>Anti-schémas à éviter</h2>\n<div class=\"callout callout-warn\"></div><h2>Prochaines étapes</h2>\n<ul>\n<li><a href=\"/docs/api/memory\">API Memory</a></li>\n<li><a href=\"/docs/guides/persistent-llm-agent\">Agent LLM persistant</a></li>\n<li><a href=\"/docs/llm-cookbook/memory-tagging-strategy\">Stratégie de tagging mémoire</a></li>\n</ul>\n","urls":{"html":"/docs/guides/memory-best-practices","text":"/docs/guides/memory-best-practices?format=text","json":"/docs/guides/memory-best-practices?format=json","llm":"/docs/guides/memory-best-practices?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}