Skip to main content
Version: 1.0.10

Memory and learning

The graph compounds in value as you use it, through two independent loops: learned edges (automatic) and curated memory (deliberate).

Learned edges — automatic​

Every query records which (seed, discovered) node pairs its traversal connected. When the same pair recurs across at least 2 distinct questions with 3+ total hits, the next run/update promotes it to a learned edge — INFERRED, hits-scored, provenance query_history.

Learned edges flow into clustering, analysis, and every export — the graph remembers which connections you actually keep asking about. High-fidelity traversals (--detail high) filter them like any other INFERRED fact.

Curated memory — deliberate​

Learned edges are automatic; memory is curated. You decide which answers are worth keeping:

astria save-result "where is rate limiting?" \
--answer "BucketMiddleware in src/limiter.rs" \
--outcome useful \
--nodes <cited-node-ids>
astria reflect
  • save-result writes a Q/A memory doc (with an outcome — useful, dead_end, or corrected — and optional corrections) into .astria/memory/, and immediately inserts it into the graph as a document node with references edges to the cited code. Settled questions become part of the graph right away. (Rebuilding the database does not re-ingest saved memory docs — keep .astria/memory/ if you ever recreate a graph from scratch.)
  • reflect aggregates outcomes into .astria/reflections/LESSONS.md with tallies — a running record of which answers held up.

Why two loops​

Learned edges capture what you ask about without any ceremony; memory captures what you settled, including corrections to earlier wrong answers. Together they mean the graph you have after a month of work is measurably more useful than the one a fresh run builds.