Architecture
Benchmark first
Start with one slice each from BEIR, FEVER, and LongMemEval. They expose retrieval, evidence, updates, temporal reasoning, and abstention. Record quality, latency, tokens, storage, and corpus revision from the first prototype; the same cases become regression gates as components change.
Values cross explicit boundaries. Mari plans and validates; the application performs side effects.
Sourcesprovider APIs
poll
Documentsidentity · revision · ACL
derive
Knowledgefacts · answers · decisions
retrieve
Contextallowed · fresh · cited
Mari supplies |
Application supplies |
|---|---|
Typed values and pure planning functions |
Database and transactions |
Connector polling and cursor contracts |
Credentials, HTTP transport, retries, scheduler |
Strict parsers for generated values |
Model, prompts, and inference |
Retrieval and index serialization |
Embeddings and index lifecycle |
Policy and evaluation functions |
Authorization and agent runtime |
How it works
Provider data is normalized into immutable values. Pure functions transform those values into plans, candidates, reports, or index payloads. The caller validates the return value and commits it through its own transaction boundary. Because network and storage operations are injected, the same input values can be replayed in tests before any side effect occurs.
Research and standards
W3C PROV data modelData pipeline reproducibility
Provenance and reproducibility motivate explicit entities, revisions, activities, and captured configuration. The pure-planning/application-commit split is a Mari engineering contract.