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.

  • Python — client.memory.add(content, confidence=1.0, memory_class='semantic', session_id=None)
  • TypeScript — add(content, opts)
  • Go — Add(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.

  • Python — client.memory.forget(memory_id)
  • TypeScript — forget(memoryId)
  • Go — Forget(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.

  • Python — client.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)
  • TypeScript — search(query, opts)
  • Go — Search(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)`

  • Python — client.memory.add_batch(items, session_id=None)
  • TypeScript — addBatch(items, opts)
  • Go — AddBatch(items)

Parameters: items, session_id=None

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

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

  • Python — client.memory.associate(source_id, target_id, relation, confidence=1.0)
  • TypeScript — associate(sourceId, targetId, relation, opts)
  • Go — Associate(sourceID, targetID, relation)

Parameters: source_id, target_id, relation, confidence=1.0

batch_search(queries, top_k=5)

batch_search(queries, top_k=5)`

  • Python — client.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)`

  • Python — client.memory.episodes(session_id=None, as_of=None)
  • TypeScript — episodes(opts)
  • Go — Episodes()

Parameters: session_id=None, as_of=None

get(memory_id)

get(memory_id)`

  • Python — client.memory.get(memory_id)
  • TypeScript — get(memoryId)
  • Go — Get(memoryID)

Parameters: memory_id

justify(memory_id)

justify(memory_id)`

  • Python — client.memory.justify(memory_id)
  • TypeScript — justify(memoryId)
  • Go — Justify(memoryID)

Parameters: memory_id

resolve(memory_id)

resolve(memory_id)`

  • Python — client.memory.resolve(memory_id)
  • TypeScript — resolve(memoryId)
  • Go — Resolve(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)`

  • Python — client.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)
  • TypeScript — searchDetailed(query, opts)
  • Go — SearchDetailed(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)`

  • Python — client.memory.summarise(source_ids, summary_content=None)
  • TypeScript — summarise(sourceIds, opts)
  • Go — Summarise(sourceIDs)

Parameters: source_ids, summary_content=None

update(memory_id, content)

update(memory_id, content)`

  • Python — client.memory.update(memory_id, content)
  • TypeScript — update(memoryId, content)
  • Go — Update(memoryID, content)

Parameters: memory_id, content

RelataClient

forget(id)

forget(id)`

  • TypeScript — forget(id)

Parameters: id

recall(query, opts)

recall(query, opts)`

  • TypeScript — recall(query, opts)

Parameters: query, opts

remember(content, opts)

remember(content, opts)`

  • TypeScript — remember(content, opts)

Parameters: content, opts