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.
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 ;
let engine = new;
engine.ingest_fact.await?;
let hits = engine.retrieve.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 ;
let before = fingerprint_context;
// … apply the change …
let after = fingerprint_context;
let d = diff;
println!;
if d.identical
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 viacar-ast
Part of CAR -- see the main repo for full documentation.