Core concepts

Agents

An agent owns memory. It is the boundary that decides what a retrieval call can possibly see.

The model

Every fact Recalld stores belongs to exactly one agent. Retrieval never crosses that boundary, so two agents on the same account cannot read each other's memory. If you want isolation between your end users, give each one an agent.

ScopeHoldsShared with
agentEverything written for one agentNothing else
threadOne conversation or session inside an agentOther threads on request, see scope
taskA pool several agents write into and read fromEvery agent using the same task_id

Creating an agent

curl -X POST https://eu.recalld.ai/v1/agents \
  -H "Authorization: Bearer $RECALLD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "support-bot"}'

name is required and is for your benefit only. Nothing in retrieval reads it.

How many agents

Two patterns cover almost everything:

  • One agent per end user. Right when memory is personal and must never leak between people. Use threads inside it for individual sessions.
  • One agent per assistant. Right when memory is about a shared domain, for example a support bot that should accumulate product knowledge across every conversation.

Do not create an agent per conversation. That is what threads are for, and it throws away the cross-session recall that makes memory worth having.

Shared task memory

Passing task_id on ingest and retrieval opts that call into a shared pool. Every agent sending the same task_id reads and writes the same facts, on top of its own private memory. Use it when several agents collaborate on one job and need each other's findings.

Deleting an agent

curl -X DELETE https://eu.recalld.ai/v1/agents/$AGENT_ID \
  -H "Authorization: Bearer $RECALLD_API_KEY"

Deletion removes the memory too

Deleting an agent discards its facts, threads, and sources. There is no undo and no export step built into the call.