Skip to main content

OMEM: trustworthy memory for AI agents

OMEM is a memory layer for AI agents that tracks beliefs over time and handles contradictions instead of silently overwriting them. This is the official Python SDK. It has no third-party dependencies, so it installs instantly and won't clash with anything else in your environment.

Install

pip install omem-infrastructure

The import is short:

from omem import Memory

Run a server in one command

Installing also gives you an omem-server command that starts the full OMEM server (engine and API) locally, with no extra setup:

omem-server

It runs on http://127.0.0.1:8787 and stores its data in an omem-data folder in your current directory. Use a different port with omem-server 9000.

Quickstart

from omem import Memory

mem = Memory(api_key="omem_sk_...", project="proj_...")

# Remember a grounded fact. The agent and entity are created on first use.
mem.remember(agent="support-agent", about="customer:123",
             claim="prefers_annual_billing")

# Ask what's believed.
print(mem.believes(about="customer:123", claim="prefers_annual_billing"))
# -> BELIEVED_TRUE

# Contradictions. Simple negation needs no setup: `X` and `not:X` are paired
# for you, so this alone is enough to get a conflict rather than an overwrite.
mem.remember(agent="billing-agent", about="customer:123", claim="not:prefers_annual_billing")
print(mem.believes(about="customer:123", claim="prefers_annual_billing"))
# -> CONTRADICTED
mem.conflicts()   # both sides, their evidence, and a recommendation

# For claims that oppose each other without being a negation, say so once.
# OMEM never guesses this from wording: deciding that two sentences disagree is
# the judgment call that would stop a belief state being reproducible.
mem.contradict("prefers_annual_billing", "prefers_monthly_billing")

# Recall everything known about an entity, with provenance.
for m in mem.recall(about="customer:123")["memories"]:
    print(m["proposition"], m["state"])

# See why something is believed, with the full provenance chain.
mem.why("a_...")

Cross-agent memory

Memory is private to an agent by default, and you decide what to share.

# Private to one agent. Only agent-a can recall it.
mem.remember(agent="agent-a", about="acme", claim="secret_deal=1",
             scope="agent:agent-a")

# Shared across the whole project. Every agent can recall it.
mem.remember(agent="agent-a", about="acme", claim="tier=enterprise", scope="org")

# Shared with a named team.
mem.remember(agent="agent-a", about="acme", claim="ae=jane", scope="team:sales")

# Promote an existing memory to a wider scope later.
mem.share(assertion_id="a_...", scope="org")

Use it as an MCP server

Installing also gives you an omem-mcp command that speaks MCP over stdio and exposes three safe tools: omem_recall, omem_observe, and omem_why.

OMEM_API_KEY=omem_sk_... OMEM_BASE_URL=https://... OMEM_AGENT=support-agent omem-mcp

Point your MCP client (such as Claude Desktop) at that command. The agent identity is fixed at the process level, so a model can't reach into another agent's private memory.

Self-healing

# Report a failure and let OMEM's policy-gated recovery loop handle it.
mem.healing.report(component="db-pool", error_type="ECONNRESET")
mem.healing.handle(error={"component": "db-pool", "error_type": "ECONNRESET"})
mem.healing.health()   # aggregated component health

How it fits together

Every method maps onto one operation or query in the OMEM engine. The SDK adds authentication, retries on 5xx errors, typed errors (OmemError.reason_code exposes codes like R_DANGLING), automatic registration of agents and entities, and cross-agent scope control. It doesn't invent any new memory behavior of its own; the engine remains the single source of truth.

Download files

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

Source Distribution

omem_infrastructure-0.2.0.tar.gz (241.7 kB view details)

Uploaded Source

Built Distribution

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

omem_infrastructure-0.2.0-py3-none-any.whl (275.0 kB view details)

Uploaded Python 3

File details

Details for the file omem_infrastructure-0.2.0.tar.gz.

File metadata

  • Download URL: omem_infrastructure-0.2.0.tar.gz
  • Upload date:
  • Size: 241.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.10

File hashes

Hashes for omem_infrastructure-0.2.0.tar.gz
Algorithm Hash digest
SHA256 5c7997a73d8938a5c7bc0dd18b74f409d16f553ef028364d9f96e920694ca1ff
MD5 216fb061e6d06dbb36ba0eb2f150e3dc
BLAKE2b-256 80e122566a23ea18f1138b501e11a1437a6348ee64b2e3fcae3c9b5f781517e1

See more details on using hashes here.

File details

Details for the file omem_infrastructure-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for omem_infrastructure-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1c1f405646c0bcb20b872fc8bcbcae787c4da8aca276f88b96e0740f616a7594
MD5 0c09eb3d96b5f1d1bc20e1ae116ad016
BLAKE2b-256 804eb0339f03348702f421fa69a52cbc78b281c5999dc155cfb4d0cd0566c4c1

See more details on using hashes here.

Supported by

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