Agent Memory

Memory is governed agent memory: every verb runs through ACL + purpose + audit, and forget is a governed retract (not a hard delete). Recall blends hybrid search with recency and a confidence/stability model — the cognitive substrate for LangChain/LlamaIndex/CrewAI/AutoGen/LangGraph adapters.

16 methods across this domain. Signatures, parameters (incl. keyword-only tunable defaults), and the three SDK spellings are ported from the live SDK source; flagship methods carry a hand-written When to use + example.

Memory

add(content, confidence=1.0, memory_class='semantic', session_id=None)

When to use. Remember — store a memory with confidence/class; returns its id.

  • Pythonclient.memory.add(content, confidence=1.0, memory_class='semantic', session_id=None)
  • TypeScriptadd(content, opts)
  • GoAdd(content)

Parameters: content, confidence=1.0, memory_class='semantic', session_id=None

Example

from relata import Memory
with Memory(url, purpose="agent-notes") as m:
    mid = m.add("Alice prefers dark mode", confidence=0.9)

forget(memory_id)

When to use. Governed retract of a memory — audit-logged, not a hard delete.

  • Pythonclient.memory.forget(memory_id)
  • TypeScriptforget(memoryId)
  • GoForget(memoryID)

Parameters: memory_id

Example

m.forget(mid, reason="stale-preference")

search(query, top_k=5, session_id=None, as_of=None, min_confidence=None, recency_half_life_secs=None, budget_tokens=None, stability_days=None, cancel_threshold=None)

When to use. Recall — hybrid + recency memory retrieval.

  • Pythonclient.memory.search(query, top_k=5, session_id=None, as_of=None, min_confidence=None, recency_half_life_secs=None, budget_tokens=None, stability_days=None, cancel_threshold=None)
  • TypeScriptsearch(query, opts)
  • GoSearch(query)

Parameters: query, top_k=5, session_id=None, as_of=None, min_confidence=None, recency_half_life_secs=None, budget_tokens=None, stability_days=None, cancel_threshold=None

Example

for hit in m.search("ui preferences", top_k=5):
    print(hit["content"], hit["score"])

add_batch(items, session_id=None)

add_batch(items, session_id=None)`

  • Pythonclient.memory.add_batch(items, session_id=None)
  • TypeScriptaddBatch(items, opts)
  • GoAddBatch(items)

Parameters: items, session_id=None

associate(source_id, target_id, relation, confidence=1.0)

associate(source_id, target_id, relation, confidence=1.0)`

  • Pythonclient.memory.associate(source_id, target_id, relation, confidence=1.0)
  • TypeScriptassociate(sourceId, targetId, relation, opts)
  • GoAssociate(sourceID, targetID, relation)

Parameters: source_id, target_id, relation, confidence=1.0

batch_search(queries, top_k=5)

batch_search(queries, top_k=5)`

  • Pythonclient.memory.batch_search(queries, top_k=5)

Parameters: queries, top_k=5

episodes(session_id=None, as_of=None)

episodes(session_id=None, as_of=None)`

  • Pythonclient.memory.episodes(session_id=None, as_of=None)
  • TypeScriptepisodes(opts)
  • GoEpisodes()

Parameters: session_id=None, as_of=None

get(memory_id)

get(memory_id)`

  • Pythonclient.memory.get(memory_id)
  • TypeScriptget(memoryId)
  • GoGet(memoryID)

Parameters: memory_id

justify(memory_id)

justify(memory_id)`

  • Pythonclient.memory.justify(memory_id)
  • TypeScriptjustify(memoryId)
  • GoJustify(memoryID)

Parameters: memory_id

resolve(memory_id)

resolve(memory_id)`

  • Pythonclient.memory.resolve(memory_id)
  • TypeScriptresolve(memoryId)
  • GoResolve(memoryID)

Parameters: memory_id

search_detailed(query, top_k=5, session_id=None, as_of=None, min_confidence=None, recency_half_life_secs=None, budget_tokens=None, stability_days=None, cancel_threshold=None)

search_detailed(query, top_k=5, session_id=None, as_of=None, min_confidence=None, recency_half_life_secs=None, budget_tokens=None, stability_days=None, cancel_threshold=None)`

  • Pythonclient.memory.search_detailed(query, top_k=5, session_id=None, as_of=None, min_confidence=None, recency_half_life_secs=None, budget_tokens=None, stability_days=None, cancel_threshold=None)
  • TypeScriptsearchDetailed(query, opts)
  • GoSearchDetailed(query)

Parameters: query, top_k=5, session_id=None, as_of=None, min_confidence=None, recency_half_life_secs=None, budget_tokens=None, stability_days=None, cancel_threshold=None

summarise(source_ids, summary_content=None)

summarise(source_ids, summary_content=None)`

  • Pythonclient.memory.summarise(source_ids, summary_content=None)
  • TypeScriptsummarise(sourceIds, opts)
  • GoSummarise(sourceIDs)

Parameters: source_ids, summary_content=None

update(memory_id, content)

update(memory_id, content)`

  • Pythonclient.memory.update(memory_id, content)
  • TypeScriptupdate(memoryId, content)
  • GoUpdate(memoryID, content)

Parameters: memory_id, content

RelataClient

forget(id)

forget(id)`

  • TypeScriptforget(id)

Parameters: id

recall(query, opts)

recall(query, opts)`

  • TypeScriptrecall(query, opts)

Parameters: query, opts

remember(content, opts)

remember(content, opts)`

  • TypeScriptremember(content, opts)

Parameters: content, opts