Skip to content

References and lineage

aizk is a mix of published memory mechanisms, open source infrastructure, product comparisons, and work designed here. This page records which is which, so a reader can trace any behavior back to either a paper or a deliberate choice. A citation on this page does not mean aizk copied an implementation, and it does not mean the cited project endorses aizk. Every code path named here was checked against the tree.

published work ──adopted, follows the design closely──▶ shipped mechanism
published work ──adapted, idea kept, shape changed────▶ shipped mechanism
published work ┄┄compared, no code┄┄▶ product boundary
published work ┄┄workflow, no runtime┄┄▶ how we change the code
designed for aizk ──original──▶ shipped mechanism
Label Meaning
adopted the shipped mechanism follows the cited design closely
adapted the source supplied the idea and aizk changed its shape
compared the source helped define a product boundary but supplied no implementation
workflow the source influenced how the code is changed or checked
original the mechanism was designed for aizk and is not claimed from the cited systems
Feature Lineage What aizk does Code
temporal entity and fact graph adopted from Zep and Graphiti immutable content plus valid-time and recorded-time claims store/models/tables/, store/models/views/live_fact.py
add, update, no-op consolidation adapted from Mem0 rules settle the confident cases and only ambiguity reaches the LLM graph/consolidation.py, graph/writer.py
associative multi-hop recall adapted from HippoRAG 2 personalized PageRank inside the SQL statement, over visible current facts only retrieval/lanes/facts.py
community summaries adapted from GraphRAG and LightRAG communities as a rebuildable global-evidence projection graph/communities.py, retrieval/lanes/vector.py
recursive summary tree adopted from RAPTOR grounded summaries rolled into bounded higher levels graph/raptor.py, retrieval/lanes/overview.py
reflective observations adapted from A-MEM optional observations that never replace their grounding facts graph/insight.py
entity profiles adapted from GAM one evidence-grounded profile per entity and scope set graph/profiles.py
raw evidence as authority supported by Does Memory Need Graphs source chunks stay primary and each graph lane earns its cost in ablation retrieval/lanes/sources.py, eval/plans.py
append-only corrective history supported by APEX-MEM contradicted knowledge has its range closed rather than being deleted store/models/tables/fact.py
speaker-aware group memory adapted from GroupMemBench and Hindsight objective state kept apart from observations, opinions, experiences, preferences provenance.py, graph/grounding.py, eval/groupmem.py
forgetting-aware evaluation adopted from Memora scores current evidence without rewarding expired memory eval/metrics.py
workflow and premise categories planned from LongMemEval-V2 kept in evaluation until a production schema earns them eval/
action-memory boundary compared with Mem2ActBench no action-selection claim is made from a retrieval-only score External benchmarks
dense and lexical fusion adapted from Reciprocal Rank Fusion typed lane ranks fused inside one SQL recall program retrieval/recall/program.py, retrieval/lanes/sources.py
merit ordering and maximal recall original every lane stays available and one cross-encoder ranks the candidates together retrieval/recall/orchestrator.py, retrieval/rerank/rescore.py
public evidence provenance original internal lanes collapse into source, derived, and session evidence with exact scope descriptions retrieval/models/result.py, retrieval/templates/recall.md.j2

Paths in that table are relative to src/. RAPTOR supports hierarchical summaries, GraphRAG supports community summaries, HippoRAG supports associative graph retrieval, and GAM and A-MEM support consolidated representations. None of them argues that the agent on the other side of the API should ever see a lane name. The three public provenance classes are therefore an interface choice made here, based on what a consumer needs in order to judge evidence rather than on how the engine happened to find it.

The split between private and shared memory is informed by Collaborative Memory. aizk turns that paper’s policy graph into one PostgreSQL-native scope lattice, where every row carries a sorted nonempty set of scope UUIDs and a reader has to stand in every member. Scope sets in depth has the mechanics.

The intersection model, full-authority reads with one explicit write destination, and the source-preserving share operation are original. Logto stays authoritative for users, organizations, roles, and public organization metadata, and aizk derives stable IDs from verified token claims without storing an identity or membership mirror at all.

Concern Source The aizk boundary
identity and organization authority Logto OIDC discovery, signed tokens, current org roles, no local identity tables
OAuth protected MCP FastMCP dynamic client registration and an OIDC proxy over persistent encrypted state
database authorization PostgreSQL row security and the house rlsalchemy package forced policies on both content and scoped claims
multi-user memory model Collaborative Memory private, organization, and intersection scopes with immutable capture provenance
Responsibility Project Use in aizk
relational, temporal, lexical, vector, and policy execution PostgreSQL one durable state engine and the preferred place for filtering, ranking, hashing, and temporal logic
vector index VectorChord and pgvector low-memory production vector search with a portable fallback
ORM and validation SQLModel, SQLAlchemy, Pydantic typed models, PostgreSQL statements, and wire contracts
durable jobs PgQueuer graph projection and scheduled passes without a bespoke workflow ledger
document conversion Docling and Docling Serve private conversion of accepted bytes into structured JSON and normalized Markdown
immutable object bytes SeaweedFS and obstore private S3-compatible storage behind opaque keys
malware scanning ClamAV fail-closed streaming scan before any object is persisted
log collection, storage, inspection Grafana Alloy, Loki, Grafana labeled Docker logs, one bounded store, a loopback-only viewer
log event vocabulary OpenTelemetry Logs Data Model structured events while PostgreSQL stays the durable usage authority
MCP transport and OAuth FastMCP the public tools and the Logto OIDC proxy
browser application SvelteKit and @logto/sveltekit the optional web interface over the browser JSON API
model serving vLLM with structured outputs replaceable OpenAI-compatible endpoints with grammar-constrained extraction
typed LLM calls and judging Pydantic AI and Pydantic Evals schema-constrained extraction and isolated evaluation
chunking Chonkie bounded prose and source windows
fast entity gate GLiNER2 a cheap GPU gate and an experimental extractor, never the production graph authority
production embedding Qwen3-VL-Embedding-2B text and image vectors through a generic client
production reranking Qwen3-Reranker-4B cross-encoder merit ordering across every lane
production extraction Gemma 4 12B grounded graph extraction through the generic LLM client
profiling, environments, remote runs the house mainboard, chefe, and lote packages stage timing, reproducible tasks, and deployment
typed patterns and SQL primitives the house patos package shared model, registry, and patos.sql column abstractions

Model names are deployment choices and not domain names in the code. Embedding, reranking, gating, and extraction each sit behind a client, so another compatible provider can take over without any part of the memory engine being renamed.

Several mature systems separate an authoritative original from replaceable interpretation, which is exactly the shape the artifact path takes.

Reference Useful mechanism The aizk adaptation
Paperless-ngx preserve the original, track checksums, index the derivative one original blob stays authoritative while Markdown and structured data live in PostgreSQL
Docling formats emit normalized Markdown plus a lossless structured document both derivatives are stored against the exact original revision
Unstructured elements normalize many formats into typed elements with source metadata source metadata is retained without adopting a second element store
ColPali retrieve pages visually rather than through lossy text one supplemental image vector beside authoritative Docling structure
VisRAG answer from page images authorized files stay available on demand, and recall transfers no bytes
M3DocRAG combine visual and textual evidence page-level and video retrieval stay deferred until they measure better
Source Inherited idea The aizk adaptation
The PARA Method Projects are finite outcomes and Areas are ongoing responsibilities Areas and Projects are ontology entities rather than folders
Second Brain and Zettelkasten PARA gives action context while a Zettelkasten gives atomic durable knowledge one maintained brief per Area or Project, with atomic notes tagged into it
the author’s own Zettelkasten structure notes #project and #area identify structure notes key-value source tags name an exact entity of any live ontology kind and imply no status or access

Cite the following as design done here rather than attributing it to one upstream paper.

  • Arbitrary nonempty scope sets with intersection visibility under forced PostgreSQL RLS.
  • Content-addressed graph content held separate from scoped bi-temporal claims.
  • Full-authority recall paired with one explicit write destination.
  • A source-preserving share that creates provenance-linked copies rather than moving a row.
  • One maximal recall plan whose cross-encoder orders every lane by merit.
  • A single prompt-ready MCP recall string produced by a token-budget prefix.
  • Exact artifact revision resources that stay authorized by PostgreSQL and transfer no bytes during recall.
  • An original-only blob model with database derivatives, metadata fallback, adaptive compression, shared physical bytes, a fail-closed scan gate, and no Redis anywhere.
  • Durable actor and scope usage accounting kept apart from expiring operational logs.
  • A health snapshot that checks schema, policy, jobs, models, scopes, graph freshness, and a real recall in under five seconds.

The Bun Rust rewrite report and its original PORTING.md commit shaped how large refactors are run here and not the runtime. The reusable parts are a written mapping before a broad change, small trial cells, bounded ownership, an independent adversarial audit, errors treated as a work queue, and a test suite as the final authority. No Bun code is copied, and compiling is never taken as proof of behavior.