Expand description
§basemyai
Moteur de mémoire pour agents IA, posé sur basemyai_core.
Ajoute au socle agnostique la sémantique mémoire : les 4 couches
(MemoryLayer), le RAG temporel (temporal), l’isolation par
AgentId, le chiffrement obligatoire, et le setup hardware-aware
(module provision).
Ces concepts vivent ici, jamais dans basemyai-core (ADR-001).
Re-exports§
pub use maintenance::AdaptiveForgetting;pub use maintenance::ConsolidationTask;pub use maintenance::ExpiredMemoryGc;pub use provision::AnythingLlmBackend;pub use provision::BASELINE_DIM;pub use provision::BASELINE_MODEL_ID;pub use provision::BackendKind;pub use provision::HardwareProfile;pub use provision::KNOWN_MODELS;pub use provision::KnownModel;pub use provision::LlmOption;pub use provision::LlmProvision;pub use provision::ModelProvision;pub use provision::OllamaBackend;pub use provision::OpenAiCompatBackend;pub use provision::anythingllm_from_env;pub use provision::best_llm_option;pub use provision::choose_llm;pub use provision::detect_hardware;pub use provision::detect_llm_options;pub use provision::propose_models_to_install;pub use provision::provision;pub use provision::provision_with_progress;pub use temporal::Validity;
Modules§
- maintenance
- Tâches de maintenance sémantiques, injectées dans le worker agnostique
du core. Le GC par
valid_untilvit ici (ADR-005/ADR-008) : le core fait tourner la boucle, mais ignore le sens de l’expiration. - provision
- storage
- Frontière moteur de stockage (suivi ADR-019 : « Gradually move SQL/libSQL- specific code behind an engine module… Add backend contract tests before any second backend exists »).
- temporal
- RAG temporel (ADR-005). Chaque mémoire porte une fenêtre de validité ; le recall ne retourne que ce qui est pertinent ET encore valide.
Structs§
- AgentId
- Identifiant d’agent (tenant logique d’une mémoire).
- Agent
Stats - Statistiques de la mémoire d’un agent (souvenirs valides à l’instant courant).
- Consolidation
Input - Entrée de consolidation : les épisodes bruts + le prompt d’extraction prêt à
soumettre. Produit par
consolidation_prompt. - Consolidation
Report - Compte-rendu d’une passe de consolidation (observabilité / tests).
- Extracted
Entity - Une entité extraite (nœud du graphe).
- Extracted
Relation - Une relation extraite (arête du graphe).
- Extraction
- Résultat d’extraction : faits durables + entités + relations.
- Fused
- Une entrée du classement fusionné, avec la provenance des signaux qui l’ont fait remonter (traçabilité, VISION §5.4).
- Graph
- Façade graphe d’un agent : nœuds (
entity) et arêtes (edge) partagent le fichier libSQL de la mémoire, scellés paragent. Toute lecture/écriture est bornée àagent_idau niveau SQL. - Import
Report - Bilan d’un
Memory::import_jsonl: lignes insérées vs déjà présentes (idempotence — un ré-import compte tout en*_skipped). - Memory
- Mémoire d’un agent : moteur de stockage (vecteur natif) + embedder,
scellés par un
AgentId. Le chiffrement est obligatoire (ADR-007). - Memory
Event - Événement émis après qu’une écriture mémoire a commité.
- Memory
Subscription - Abonnement isolé à un flux d’événements mémoire.
- Ranking
- Classement ordonné (meilleur d’abord) produit par un signal nommé.
- Reached
- Une entité atteinte par une traversée du graphe, avec sa profondeur (nombre de sauts depuis le point de départ).
- Record
- Une mémoire retournée par
recall.
Enums§
- Memory
Error - Erreur de la couche sémantique mémoire.
- Memory
Event Kind - Nature d’une mutation mémoire diffusée aux abonnés.
- Memory
Layer - Les 4 couches mémoire (ADR-004). Chacune a son mode d’accès et sa durée de vie.
- Metric
- Métrique de distance pour le KNN.
Constants§
- BMAI_
FORMAT_ VERSION - Version publique du conteneur
.bmai. - EMBEDDING_
DIM - Dimension des embeddings du baseline (
all-MiniLM-L6-v2). - MAX_
TEXT_ LEN - Borne la taille d’un texte mémorisé (octets). Au-delà, un item démesuré
saturerait le prompt de consolidation (
MAX_EPISODESne borne que le nombre d’épisodes, pas leur taille individuelle) — DoS de contexte. Cohérent avec la limite documentée côté REST (openapi-sidecar.yaml). - RRF_K
- Constante d’amortissement RRF standard (k = 60, Cormack et al.).
Traits§
- LlmInference
- Fournisseur d’inférence textuelle, injecté dans la consolidation.
Functions§
- apply_
extraction - Applique une extraction (déjà parsée) à la mémoire : peuple le graphe
(idempotent,
ON CONFLICT) puis promeut les faits ensemantic(dédupliqués par contenu exact et par similarité sémantique, cf. [fact_already_known]). Réutilisable quel que soit le producteur de l’extraction (LLM autonome, agent MCP, import). Les faits promus portentsource = "consolidation"(jamais"user") — la provenance reste tracée même si l’extraction est pilotée par l’agent (ADR-018). - consolidate
- Exécute une passe de consolidation autonome pour l’agent de
memory, en s’appuyant sur le fournisseur d’inférencellm. - consolidation_
prompt - Prépare une passe de consolidation : lit les épisodes valides de l’agent et
construit le prompt d’extraction. Retourne
Nones’il n’y a aucun épisode (rien à consolider). - parse_
extraction - Parse la sortie JSON d’une extraction (tolère les fences/espaces autour).
- rrf_
fuse - Fusionne plusieurs classements par Reciprocal Rank Fusion : le score d’un id
est
Σ 1 / (k + rang)sur tous les signaux où il apparaît (rang 0-indexé). Retourne les ids triés par score décroissant. - schema
- Migrations de la couche mémoire + graphe, à passer à
Store::migrate.
Type Aliases§
- Result
- Alias de résultat de la couche mémoire.