Skip to main content

Crate basemyai

Crate basemyai 

Source
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_until vit 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).
AgentStats
Statistiques de la mémoire d’un agent (souvenirs valides à l’instant courant).
ConsolidationInput
Entrée de consolidation : les épisodes bruts + le prompt d’extraction prêt à soumettre. Produit par consolidation_prompt.
ConsolidationReport
Compte-rendu d’une passe de consolidation (observabilité / tests).
ExtractedEntity
Une entité extraite (nœud du graphe).
ExtractedRelation
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 par agent. Toute lecture/écriture est bornée à agent_id au niveau SQL.
ImportReport
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).
MemoryEvent
Événement émis après qu’une écriture mémoire a commité.
MemorySubscription
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§

MemoryError
Erreur de la couche sémantique mémoire.
MemoryEventKind
Nature d’une mutation mémoire diffusée aux abonnés.
MemoryLayer
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_EPISODES ne 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 en semantic (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 portent source = "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érence llm.
consolidation_prompt
Prépare une passe de consolidation : lit les épisodes valides de l’agent et construit le prompt d’extraction. Retourne None s’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.