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_messageshelper function instead of the parsed current dialogue, so character profiles were built from a function repr rather than the conversation. add()without auser_idnow stores memories in the shared"events"scope (matchingadd_batch()), sosearch()can actually retrieve them.search(limit=N)now enforces the limit on the merged result set across scopes; previously it could return up to2Nresults 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 throughadd_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 ofuser_id/agent_id/run_idis 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 telememsetsMEM0_TELEMETRY=Falseunless already set) — see the new Telemetry & Privacy section in the README. mem0aipinned to the tested>=2.0,<2.1range;requirements.txtregenerated from the tested environment.
Install / upgrade
pip install -U telemem