car-memgine 0.48.0

Memgine — graph-based memory engine for Common Agent Runtime
docs.rs failed to build car-memgine-0.48.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: car-memgine-0.23.0

car-memgine

Graph-based memory engine for the Common Agent Runtime.

What it does

Memory is a graph. Nodes represent facts, skills, conversations, identity, and environment. Edges encode relationships: Supersedes, DependsOn, RelatedTo, Triggers, TemporalNext. Skills are learned procedures stored as graph nodes with trigger edges, matched via spreading activation, and tracked for success/failure. Supports distillation from event log traces.

Usage

use car_memgine::{MemgineEngine, MemgineConfig};

let engine = MemgineEngine::new(MemgineConfig::default(), inference_engine);
engine.ingest_fact("user prefers dark mode", "identity").await?;
let hits = engine.retrieve("What theme does the user like?", 5).await?;

Deciding whether a change did anything: context_fingerprint

StateBench's per-track numbers carry a ±15pp noise floor (see the root CLAUDE.md). Between two sweeps whose assembled context was byte-identical on a track, scope_permission moved 85.4% → 70.8%. So before believing a per-track delta, the question to answer is whether the change altered that track's context at all — and that is answerable offline, with no API calls:

use car_memgine::context_fingerprint::{fingerprint_context, diff};

let before = fingerprint_context(&engine.build_context(query));
// … apply the change …
let after = fingerprint_context(&engine.build_context(query));

let d = diff(&before, &after);
println!("{}", d.summary());
if d.identical {
    // Any metric delta on this track is noise. No further eval will say otherwise.
}

diff reports which ## layer changed, so a real delta can be attributed rather than guessed at, and it flags a pure reordering — layers identical, sequence different — because CAR assembles relevance-ascending (most relevant last, for recency attention), so order changes what the model attends to even when no layer's bytes move.

Fingerprints are SHA-256 over exact bytes, comparable across runs and machines. They are equality evidence, not similarity evidence: matching hashes mean byte-identical, differing hashes mean different somehow — read the text to learn what.

This is the interpretability half of item 2 in docs/proposals/shepherd-substrate-adoption.md. The other half — a (component-hash, inputs-hash) cache that reuses unaffected assembly work across runs — needs assemble_context decomposed into components with declared inputs and is still open. Pair this with car_sync::fold_at to hold the memory state fixed at a frontier while varying only the thing under test.

Crate features

  • metal -- Apple Silicon GPU acceleration (via car-inference)
  • cuda -- NVIDIA GPU acceleration (via car-inference)
  • ast -- AST-aware skill representation via car-ast

Part of CAR -- see the main repo for full documentation.