agentcairn
officielMémoire agent locale d'abord : un coffre Obsidian en Markdown simple sert de source de vérité, avec un index DuckDB reconstruisible pour la récupération hybride BM25 + vectorielle + par graphe.
Que pouvez-vous faire avec Agentcairn MCP ?
- Rappeler les souvenirs pertinents — Demandez à votre assistant de
recalldes faits durables depuis votre coffre Markdown, avec un classement tenant compte du projet et des permaliens cités. - Stocker de nouvelles connaissances — Utilisez
rememberpour écrire atomiquement une note Markdown et mettre à jour l’index, la rendant immédiatement rappelable. - Importer la mémoire de Claude Code — Exécutez
cairn import claude-memorypour prévisualiser ou migrer les fichiersMEMORY.mdexistants vers le coffre partagé avec provenance. - Analyser les transcriptions pour capture — Déclenchez
cairn sweeppour lire les magasins de transcriptions pris en charge hors bande et distiller le contexte durable dans le coffre. - Gérer la santé du coffre — Exécutez
cairn doctoroucairn index-statuspour vérifier l’intégrité du coffre et reconstruire le cache DuckDB jetable aveccairn reindex. - Lier les notes connexes — Exécutez
cairn linkpour écrire des voisinsrelated:déterministes basés sur[[wikilinks]]pour un graphe natif Obsidian.
Documentation
Une mémoire durable pour les agents de codage pris en charge.
Votre coffre Markdown est la référence. DuckDB est le cache de récupération remplaçable.
Site web · PyPI · Compagnon Obsidian · Benchmarks
Un cairn balise le sentier pour ceux qui suivent. agentcairn fait de même pour les agents de codage : il capture le contexte durable des outils que vous utilisez, le stocke sous forme de Markdown inspectable avec provenance, et ne rappelle que les éléments les plus pertinents lorsqu'un autre agent en a besoin.
Une preuve que vous pouvez inspecter
La mémoire n'est pas cachée derrière une console d'administration ou une base de données hébergée. Le compagnon séparé agentcairn-obsidian lit les mêmes fichiers Markdown que les agents et expose la provenance, l'actualité, l'importance, la supplantation et les liens related:.
Un véritable coffre agentcairn dans Obsidian. La liste est une vue sur les fichiers—pas un second stockage de mémoire.
Instantané dogfood · 2026-07-15. Sur 417 rappels locaux, le coffre du mainteneur a renvoyé un contexte environ
262× smallerque de charger l'intégralité du coffre à chaque fois—soit une estimation de136.6M tokens of full-vault context avoidedau total. Les comptages de jetons utilisent environ quatre caractères par jeton. Il ne s'agit pas d'économies de jetons facturés, et agentcairn n'envoie aucune télémétrie.
Installation
Le chemin le plus court est un plugin de première classe. Il regroupe le serveur MCP, la compétence mémoire et les hooks ambiants spécifiques à l'hôte—sans installation séparée du paquet agentcairn. Le plugin se lance via uvx, donc installez uv d'abord si uvx --version n'est pas déjà disponible.
Claude Code
claude plugin marketplace add ccf/agentcairn
claude plugin install agentcairn@agentcairn
Claude Code bénéficie d'un rappel par tour limité au projet, de la capture de session/compaction, et des commandes /agentcairn:recall, /agentcairn:remember, /agentcairn:memory, /agentcairn:savings et /agentcairn:ingest.
Codex
codex plugin marketplace add ccf/agentcairn
codex plugin add agentcairn@agentcairn
Codex bénéficie des outils MCP groupés et de la compétence mémoire, d'un rappel SessionStart vérifié en direct, et d'une capture SessionEnd avec cairn sweep comme filet de sécurité hors bande.
Configuration assistée par agent
Vous utilisez déjà skills.sh ou un workflow find-skills ? Installez l'assistant de configuration public :
npx skills add ccf/agentcairn --skill agentcairn-setup -g
Puis demandez à votre agent : Use $agentcairn-setup to preview, install, and verify AgentCairn for this coding agent.
Cela installe uniquement des conseils de configuration—pas le runtime AgentCairn, le serveur MCP, le plugin ou les hooks. L'assistant délègue ces modifications à l'installateur natif prévisualisation-d'abord d'AgentCairn et vérifie l'intégration résultante. Les commandes de plugin Claude Code et Codex ci-dessus restent le chemin le plus court.
Le coffre par défaut est ~/agentcairn et est créé lors de la première utilisation. Un nouveau coffre vide n'a encore rien d'utile à rappeler, donc prouvez explicitement toute la boucle :
You → Remember this durable fact: staging deploys use blue-green.
Agent → written and indexed
You → Recall the staging deploy strategy.
Agent → staging deploys use blue-green. ↳ <memory permalink>
remember écrit la note Markdown et l'entrée d'index ensemble, donc le rappel immédiat fait partie du contrat. La première exécution locale peut télécharger et préchauffer les modèles d'intégration/reranking configurés.
Le contrat
| Promesse | Ce que cela signifie en pratique |
|---|---|
| Markdown est la référence | Notes, frontmatter et [[wikilinks]] constituent la mémoire durable. Modifiez un fait à la main ; la prochaine lecture réconciliée le respecte. |
| L'index est jetable | DuckDB est un cache dérivé. Le supprimer ou le reconstruire ne supprime pas le coffre Markdown. |
| Un coffre traverse les agents | Les hôtes pris en charge partagent le même coffre configuré au lieu de construire des mémoires isolées par outil. |
| L'historique est sans perte | Les notes dérivées n'effacent pas silencieusement les notes stockées ; les faits supplantés et expirés restent inspectables et sont rétrogradés plutôt que cachés. |
| Chaque résultat a un contexte | Projet, statut de validité et permaliens accompagnent le rappel pour qu'un agent puisse distinguer les preuves locales actuelles de l'historique inter-projets. |
Comment cela fonctionne
- Capture : les hooks hôtes améliorent l'immédiateté ;
cairn sweeplit les magasins de transcriptions pris en charge hors bande comme filet de sécurité durable. AgentCairn masque les identifiants reconnus, déduplique, filtre par importance et distille avant ses écritures automatisées en texte clair. - Réconciliation : la première transaction de lecture synchronise l'index du coffre avec le Markdown. Une reconstruction échouée préserve le dernier bon cache et les fichiers durables restent intacts.
- Rappel : les vecteurs BM25 et sémantiques sont fusionnés avec Reciprocal Rank Fusion, puis éventuellement rerankés. Les échecs de modèle/fournisseur retombent visiblement sur BM25 avec des diagnostics au lieu de renvoyer des vecteurs incompatibles.
- Mémorisation : l'outil MCP écrit atomiquement une note Markdown et met à jour l'index sous un seul verrou d'écriture, rendant un enregistrement réussi immédiatement rappelable.
Conçu pour la confiance
- Local par défaut. FastEmbed s'exécute localement, le serveur MCP utilise stdio, aucun démon ou base de données externe n'est requis, et il n'y a pas de télémétrie.
- Frontières claires. Le coffre synchronisé contient du Markdown ; par défaut, l'index
.duckdbreconstruisible reste en dehors. Les liens symboliques du coffre qui s'échappent de la racine configurée sont rejetés. - Corrections sensibles au temps.
valid_from,valid_untiletsuperseded_bygardent les anciennes preuves visibles tout en faisant passer les faits actuels en premier. - Graphe déterministe.
[[wikilinks]]et les voisins optionnelscairn linkcréent un graphe natif Obsidian sans demander à un LLM d'inventer des entités. - Rappel conscient du projet. Le projet actuel est boosté par défaut ; les résultats inter-projets restent disponibles et sont étiquetés. Le rappel automatique est limité au projet sauf si vous optez explicitement pour tous les projets.
Agents pris en charge
Chaque hôte résout le même coffre configuré. cairn install prévisualise les hôtes détectés sans écrire. Les écritures de configuration MCP sont sauvegarde-d'abord et préservent les serveurs non liés ; les installations de plugin-hôte délèguent au CLI propre de l'hôte.
| Hôte | Intégration | Configuration avec | Mémoire ambiante |
|---|---|---|---|
| Claude Code | Plugin + MCP + compétence | cairn install claude-code | ✅ rappel par tour + SessionStart ; capture SessionEnd/PreCompact |
| Codex | Plugin + MCP + compétence | cairn install codex | ✅ rappel SessionStart ; capture SessionEnd + balayage |
| Cursor | MCP + compétence + ingestion | cairn install cursor | ◐ balayage hors bande |
| OpenCode | Plugin + MCP + ingestion | cairn install opencode | ✅ rappel par tour + capture inactif/compact |
| Hermes Agent | MemoryProvider natif | integrations/hermes/ | ✅ auto-rappel + capture fin de session |
| Antigravity | Plugin + ingestion | cairn install antigravity --source <dir> | ◐ balayage hors bande |
| VS Code (Copilot) | Serveur MCP | cairn install vscode | — |
| Claude Desktop | Serveur MCP | cairn install claude-desktop | — |
| Tout autre hôte MCP | Serveur MCP portable | uvx agentcairn | dépend de l'hôte |
Le SessionStart de Codex a été vérifié en direct de bout en bout avec agentcairn 0.24.2 / plugin 0.1.2. La distribution de commande SessionEnd installée et le balayage détaché passent des sondes de gestionnaire exactes ; cairn sweep reste le filet de sécurité de capture hors bande. Voir l'intégration OpenCode et l'intégration Hermes pour leurs détails de cycle de vie natifs.
Utilisation directe
Le plugin est la voie la plus simple, mais agentcairn est aussi un CLI autonome et un serveur MCP à la demande. Les installations autonomes nécessitent Python 3.11+.
uv tool install agentcairn
cairn init ~/agentcairn
cairn sweep --vault ~/agentcairn
cairn recall "how did we fix the auth bug?" --vault ~/agentcairn
cairn doctor --vault ~/agentcairn
Emportez la mémoire de Claude Code avec vous
L'auto-mémoire de Claude Code peut alimenter le coffre partagé sans modifier ses fichiers sources. La commande prévisualise uniquement le dépôt actuel par défaut ; ajoutez --apply pour écrire les notes masquées et actualiser l'index.
cairn import claude-memory # preview; writes nothing
cairn import claude-memory --apply # import this repository
cairn import claude-memory --project ../other --apply
L'import unidirectionnel lit MEMORY.md et ses fichiers Markdown de sujets—jamais CLAUDE.md ou .claude/rules/. Les notes importées conservent la provenance Claude Code, projet et fichier source. Lorsqu'une source change, la version précédente reste inspectable mais est supplantée ; lorsqu'elle disparaît, sa version importée expire. Un petit registre .agentcairn/native-memory/ préserve ce cycle de vie sans indexer deux fois le contenu source. Utilisez --source <dir> pour un répertoire mémoire Claude personnalisé, géré ou remplacé par session, ou --no-reindex pour des importations par lots.
Préférez un processus éphémère :
uvx agentcairn # MCP server
uvx --from agentcairn cairn recall "..." # CLI; plain `uvx cairn` is a different package
Maintenance et automatisation CLI
cairn schedule install --vault ~/agentcairn # launchd on macOS / user crontab on Linux
cairn schedule status
cairn link --vault ~/agentcairn # write deterministic related: neighbors
cairn reindex ~/agentcairn # rebuild the disposable cache
cairn savings # local context-efficiency estimate
cairn index-status --vault ~/agentcairn
Sur d'autres systèmes d'exploitation, exécutez cairn sweep depuis le planificateur de votre choix.
Configuration et niveaux cloud optionnels
Les paramètres se trouvent dans ~/.agentcairn/config.toml ; la précédence est drapeau CLI → environnement → fichier de configuration → défaut.
cairn config --init
cairn config
auto_recall = true
auto_recall_k = 3
auto_recall_scope = "project" # use "all" only as an explicit cross-project opt-in
Les intégrations locales nomic-embed-text-v1.5 sont la valeur par défaut. Voyage, les intégrations compatibles OpenAI et le juge de durabilité Anthropic sont opt-in. Avec un fournisseur cloud activé, les morceaux de notes restants masqués des secrets et les requêtes quittent la machine ; changer le modèle d'intégration ré-intègre le coffre et peut entraîner une latence réelle ou un coût API.
Benchmarks mesurés
Le dépôt fournit un harnais LongMemEval-S + LoCoMo reproductible et épinglé à une révision. La valeur par défaut est nomic-embed-text-v1.5 local plus le reranker cross-encoder.
| Jeu de données / granularité | Métrique | BM25 seul | Hybride RRF | Hybride + reranker |
|---|---|---|---|---|
| LoCoMo · tour | recall@5 | 0.527 | 0.562 | 0.662 |
| LongMemEval-S · session | recall@5 | 0.920 | 0.954 | 0.969 |
| LongMemEval-S · tour | recall@5 | 0.680 | 0.640 | 0.788 |
Le contexte renvoyé au k=10 par défaut est bien plus petit que l'historique indexé complet :
| Jeu de données | Historique complet moyen | Rappelé moyen | Réduction |
|---|---|---|---|
| LoCoMo (3 conversations) | 25 646 jetons | 529 jetons | 51,1× |
| LongMemEval-S (500 complets) | 136 552 jetons | 2 207 jetons | 64,7× |
Lisez les chiffres honnêtement :
- Le rappel de récupération n'est pas la précision de QA. Ces tableaux comparent des bras de récupération contrôlés, pas la qualité de réponse de l'utilisateur final ni le score d'un classement d'un autre produit.
- Les comptages de jetons utilisent une heuristique d'environ quatre caractères par jeton. La réduction compare la botte de foin indexée avec les morceaux renvoyés ; ce n'est pas une économie de coût facturé.
- Le boost de graphe est inerte sur ces corpus de chat car ils ne contiennent pas de graphe
[[wikilink]]natif. Il est conçu pour de véritables coffres interconnectés. - Le juge QA optionnel utilise Anthropic plutôt que la configuration GPT-4o des articles, donc ces résultats QA sont utiles pour des ablations relatives—pas des comparaisons de classements publiés.
Les métriques complètes, les balayages d'intégration, les mesures de latence, les licences, les commandes et les mises en garde se trouvent dans benchmarks/README.md.
Confidentialité et limites
- Le coffre est en texte clair par conception, pas un stockage chiffré. AgentCairn masque les modèles d'identifiants reconnus avant ses écritures automatisées de corps/titre/balises ; les modèles inconnus et les modifications manuelles restent de votre responsabilité.
- Les fichiers du coffre sont réservés au propriétaire (
0600/0700). Comme le coffre est en texte clair et que le masquage est au mieux, le mode de fichier est en pratique son seul contrôle d'accès. Les configurations avec GID partagé (par ex. deux conteneurs Docker sur le même groupe mais avec des UID différents) nécessitent un accès de groupe, doncvault_group_writable = trueélargit les nouvelles notes et répertoires du coffre à0660/0770. C'est volontairement opt-in : sur macOS, le groupe principal de chaque utilisateur local eststaff, donc un défaut lisible par le groupe exposerait vos mémoires aux autres comptes de la machine. Le réglage n'élargit jamais rien en dehors du coffre — l'index, les registres, les fichiers de verrouillage et~/.agentcairn/config.tomlrestent privés. - Les fonctionnalités cloud sont des sorties explicites. Le défaut reste local. Opter pour un embedder cloud ou un juge LLM envoie le texte masqué restant à ce fournisseur.
- Le projet est en version bêta. L'utilisation autonome nécessite Python 3.11+, et le premier chargement du modèle local peut prendre du temps. Les preuves de récupération publiées sont les plus solides pour la mémoire conversationnelle, pas une revendication universelle de recherche de code.
- Le comportement ambiant varie selon l'hôte. La matrice ci-dessus est intentionnelle : Cursor et Antigravity reposent sur la capture par balayage ; les hôtes MCP génériques peuvent exposer des outils sans hooks de cycle de vie.
- L'automatisation est spécifique à la plateforme. La planification gérée cible launchd de macOS et crontab utilisateur de Linux ; utilisez votre propre planificateur ailleurs.
Développement
agentcairn utilise uv exclusivement pour la gestion des dépendances et les outils.
uv sync
uv run pre-commit install
uv run pytest
uv run ruff format .
uv run ruff check --fix .
uv run pre-commit run --all-files
Exécutez la régression de référence hors ligne sans clés API :
uv run pytest benchmarks/tests/
Licence
Licence Apache 2.0 — permissive, avec une concession de brevet explicite. Copyright © 2026 Charles C. Figueiredo.