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.