Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

MnemeBrain Python SDK

CI PyPI version Python License: MIT Coverage

Python client for MnemeBrain — biological belief memory for LLM agents.

Beliefs carry evidence, confidence, provenance, and revision logic. Unlike flat key-value memory, MnemeBrain can explain, retract, and revise what it knows.

Install

pip install mnemebrain

Requires: Python 3.10+ and a running MnemeBrain backend.

Quick Start

Brain (high-level API)

The Brain class provides a simple interface for experiments and agent integration:

from mnemebrain import Brain

brain = Brain(agent_id="my-agent", base_url="http://localhost:8000")

# Store a belief with evidence
brain.believe(
    claim="user is vegetarian",
    evidence=["msg_12"],
    confidence=0.9,
)

# Query beliefs semantically
result = brain.ask("Is the user vegetarian?")
for belief in result.retrieved_beliefs:
    print(f"{belief.claim} (confidence={belief.confidence:.2f})")

MnemeBrainClient (low-level API)

For full control over the REST API:

from mnemebrain import MnemeBrainClient, EvidenceInput

with MnemeBrainClient(base_url="http://localhost:8000") as client:
    # Store a belief with detailed evidence
    result = client.believe(
        claim="user is vegetarian",
        evidence=[EvidenceInput(
            source_ref="msg_12",
            content="They said no meat please",
            polarity="supports",
            weight=0.8,
            reliability=0.9,
        )],
        belief_type="preference",
        tags=["dietary"],
    )
    print(result.truth_state)  # "true"
    print(result.confidence)   # 0.65

    # Explain a belief
    explanation = client.explain("user is vegetarian")
    if explanation:
        print(f"Supporting: {len(explanation.supporting)}")
        print(f"Attacking: {len(explanation.attacking)}")

    # Search beliefs
    results = client.search(query="dietary preferences", limit=5)
    for hit in results.results:
        print(f"{hit.claim} (sim={hit.similarity:.2f})")

    # List beliefs with filters
    page = client.list_beliefs(truth_state="true", belief_type="preference", limit=20)
    print(f"Total: {page.total}")

    # Revise with new evidence
    client.revise(
        belief_id=result.id,
        evidence=EvidenceInput(
            source_ref="msg_50",
            content="confirmed vegetarian",
            polarity="supports",
            weight=0.9,
            reliability=0.95,
        ),
    )

    # Retract evidence
    client.retract(evidence_id="<uuid>")

WorkingMemoryFrame (multi-step reasoning)

Ephemeral context buffer for complex reasoning tasks:

with MnemeBrainClient(base_url="http://localhost:8000") as client:
    # Open a frame with a reasoning query
    frame = client.frame_open(
        query="should we refactor auth?",
        preload_claims=["auth uses JWT"],
        ttl_seconds=600,
    )

    # Add more beliefs as reasoning progresses
    client.frame_add(frame.frame_id, "JWT tokens expire after 1 hour")

    # Use the scratchpad for intermediate reasoning
    client.frame_scratchpad(frame.frame_id, "step_1", "JWT is well established")

    # Get full context at any point
    ctx = client.frame_context(frame.frame_id)
    print(f"Beliefs: {len(ctx.beliefs)}, Steps: {ctx.step_count}")

    # Commit new beliefs back to the graph
    client.frame_commit(
        frame.frame_id,
        new_beliefs=[{"claim": "auth refactor not needed", "evidence": [], "belief_type": "inference"}],
    )

    # Or close without committing
    # client.frame_close(frame.frame_id)

API Reference

Brain

Method Description
believe(claim, evidence, confidence, belief_type) Store a belief with evidence references
ask(question, query_type, limit) Semantic search returning ranked beliefs
feedback(query_id, outcome) Record query feedback (future use)

MnemeBrainClient

Method Description
health() Check backend health
believe(claim, evidence, belief_type, tags, source_agent) Store a belief with detailed evidence
explain(claim) Get full justification chain for a belief
search(query, limit, alpha, conflict_policy) Semantic search with ranking
retract(evidence_id) Invalidate evidence and recompute beliefs
revise(belief_id, evidence) Add new evidence to an existing belief
list_beliefs(truth_state, belief_type, tag, ...) List beliefs with filters and pagination
frame_open(query, preload_claims, ttl_seconds) Open a working memory frame
frame_add(frame_id, claim) Add a belief to an active frame
frame_scratchpad(frame_id, key, value) Write to frame scratchpad
frame_context(frame_id) Get full frame context
frame_commit(frame_id, new_beliefs, revisions) Commit frame to belief graph
frame_close(frame_id) Close frame without committing

Models

Model Description
BeliefResult Result from believe/revise (id, truth_state, confidence, conflict)
EvidenceInput Evidence to attach (source_ref, content, polarity, weight, reliability)
ExplanationResult Full justification chain (supporting, attacking, expired evidence)
SearchResult Search hit (belief_id, claim, similarity, rank_score)
AskResult Brain.ask result (query_id, retrieved_beliefs)
RetrievedBelief Simplified belief (claim, confidence, similarity)
BeliefListItem Belief in list response (id, claim, type, confidence, timestamps)
BeliefListResponse Paginated belief list (beliefs, total, offset, limit)
BeliefSnapshot Belief snapshot in a frame (belief_id, claim, confidence, conflict)
FrameOpenResult Frame open result (frame_id, beliefs_loaded, conflicts, snapshots)
FrameContextResult Frame context (query, beliefs, scratchpad, conflicts, step_count)
FrameCommitResult Frame commit result (frame_id, beliefs_created, beliefs_revised)

Enums

Enum Values
TruthState TRUE, FALSE, BOTH (contradiction), NEITHER (insufficient)
BeliefType FACT, PREFERENCE, INFERENCE, PREDICTION
Polarity SUPPORTS, ATTACKS

Full documentation: docs/api-reference.md

Proof the Claim: 7B + MnemeBrain vs 70B

The examples/proof_the_claim/ directory contains a complete experiment demonstrating that a 7B model with MnemeBrain can outperform a 70B model on knowledge-intensive tasks.

# 1. Start the MnemeBrain backend
cd mnemebrain-lite && uv run python -m mnemebrain_core

# 2. Download data
pip install mnemebrain[experiment]
cd examples/proof_the_claim
python 1_download_data.py

# 3. Load knowledge into MnemeBrain
python 2_load_brain.py

# 4. Run the 3-condition evaluation
ollama pull mistral
ollama pull llama3.1:70b  # or set USE_GROQ=1 GROQ_API_KEY=...
python 3_evaluate.py

Development

git clone git@github.com:mnemebrain/mnemebrain-sdk.git
cd mnemebrain-sdk
uv sync --extra dev
uv run pytest tests/ -v --cov=mnemebrain --cov-fail-under=100
uv run ruff check src/ tests/

See CONTRIBUTING.md for full guidelines.

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mnemebrain-1.0.0a4.tar.gz (187.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mnemebrain-1.0.0a4-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file mnemebrain-1.0.0a4.tar.gz.

File metadata

  • Download URL: mnemebrain-1.0.0a4.tar.gz
  • Upload date:
  • Size: 187.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mnemebrain-1.0.0a4.tar.gz
Algorithm Hash digest
SHA256 5c647ab899859d3f93c5a169726bbeccced437c6486fd1b12993052d95b8396e
MD5 669fd63cb13bbda12b78a9e6fbaadc4c
BLAKE2b-256 d00cd43a38e19d499804273d358e6460b41eb2f84a726f5970d08132b0da1533

See more details on using hashes here.

File details

Details for the file mnemebrain-1.0.0a4-py3-none-any.whl.

File metadata

  • Download URL: mnemebrain-1.0.0a4-py3-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mnemebrain-1.0.0a4-py3-none-any.whl
Algorithm Hash digest
SHA256 dd8d49796dee7bf00b9bca3d25f16b10fc60f3473db0e2864a24e1c207b8b5a2
MD5 5dbf6f2ff8ab52557eb44e424259e60b
BLAKE2b-256 b033fb723df6483adc80d32b0eece2ffae7a71d05836168f10bbc1d9d45a98bc

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.0a4 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page