guidesJune 17, 2026· 5 min read
Giving an agent memory from Python: CMEM in practice
The memory commands from application code — store facts, recall them semantically, and watch consolidation retire the stale ones. A worked example in Python.
Agent memory is a few commands, and from Python it's a few method calls. The pattern: extract durable facts from a conversation, store them scoped to (agent, user), and recall them by meaning on the next turn — letting consolidation keep the picture current.
store, consolidate, recall
from crowkis import CrowkisClient mem = CrowkisClient(host="127.0.0.1", port=6379) AGENT, USER = "support", "u_42" # learn three things across a conversation mem.cmemset(AGENT, USER, "prefers email over phone") mem.cmemset(AGENT, USER, "moved to Berlin in March") mem.cmemset(AGENT, USER, "no longer in Munich") # retires the old location # recall by meaning, top-3, recency-blended facts = mem.cmemget(AGENT, USER, "where does this customer live?", k=3) print(facts[0]) # -> "moved to Berlin in March"
Because memory consolidates, you don't have to hunt down and delete the stale fact — storing the contradicting one retires it automatically. The recall is ranked by relevance blended with recency, so the current answer surfaces first.
extract facts, and honour erasure
# pull durable facts straight out of a transcript (deterministic, no model call) mem.cmemextract(AGENT, USER, transcript_text) # bi-temporal: what did we believe on April 1st? mem.cmemasof(AGENT, USER, "address", at="2026-04-01") # right to be forgotten mem.cmemforget(AGENT, USER, "payment details")
In plain words: Tell the agent facts, ask by meaning, and let it retire what changed. Storing 'moved to Berlin' quietly forgets 'lives in Munich' — no manual cleanup.