Skip to content

v1.8.0 — the "claims = contracts" release

Latest

Choose a tag to compare

@dell-zhang dell-zhang released this 11 Jul 08:26

Every documented argument of the public API now does exactly what the docs say. Full details in the CHANGELOG.

Fixed

  • Character memory extraction: the per-character prompt received the parse_messages helper function instead of the parsed current dialogue, so character profiles were built from a function repr rather than the conversation.
  • add() without a user_id now stores memories in the shared "events" scope (matching add_batch()), so search() can actually retrieve them.
  • search(limit=N) now enforces the limit on the merged result set across scopes; previously it could return up to 2N results without a reranker.

Added

  • add(infer=False) / add_batch(infer=False): verbatim storage with zero LLM calls, message role recorded in metadata.
  • add(prompt=...): custom extraction prompt (system-prompt override), also threaded through add_batch().
  • add(memory_type="procedural_memory") delegates to mem0's pipeline; other values raise instead of being silently ignored.
  • add() validates that at least one of user_id/agent_id/run_id is provided.
  • Offline contract test suite (tests/test_contract.py) pinning the public behavior with deterministic fakes — runs in CI with no API key.
  • Multi-NPC reference example (examples/multi_npc.py): five NPCs share world events while keeping private per-character memories.

Changed

  • Inherited mem0/PostHog telemetry is now disabled by default (import telemem sets MEM0_TELEMETRY=False unless already set) — see the new Telemetry & Privacy section in the README.
  • mem0ai pinned to the tested >=2.0,<2.1 range; requirements.txt regenerated from the tested environment.

Install / upgrade

pip install -U telemem