Agent Memory
Agent memory lets agents persist state across runs so they can continue work instead of starting from scratch each time.
When Agent Memory Is Critical
Agent memory is particularly critical in several scenarios:
- Long-running agents with multi-step executions.
- Flows where each step needs to save data for the next step.
- Cases where generated data is too large to keep only in runtime memory and must be persisted.
- Advanced orchestration patterns where one agent must pass a large amount of information to another agent.
Agent Configuration vs Agent Memory
Do not confuse these two concepts:
| Agent configuration | Agent memory | |
|---|---|---|
| Purpose | How an agent is set up to run | Data the agent reads and writes while operating |
| Examples | Model choice, crawl depth, knowledge sources, persona settings | Discovered leads, draft emails, report payloads, shared vendor fingerprints |
| Scope | Per tenant agent instance (configuration on the instance) | Varies by memory scope (see below) |
Configuration tells an agent how to behave. Memory holds what the agent has learned, produced, or needs for the next step.
How Agent Memory Works
memory_jsonmemory_keymemory_typeworkingdomainorganizationBy default, agent memory is recorded per squad, per tenant agent instance, and per run.
Depending on the orchestration need, memory can also be limited to:
- Per squad and per tenant agent instance ().
SQUAD_AGENT - Per tenant agent instance and per run ().
AGENT_RUN - Per squad and per run ().
SQUAD_RUN - Per squad only () — shared blackboard across agents in the squad.
SQUAD - Per parent agent () — shared across all squads and all instances of that agent type.
AGENT
With different scope limits, agent memory can behave like a common repository, a whiteboard for collaboration, a run-specific handoff buffer, or agent-wide shared data.

Scope Levels
| Scope | Shared across | Typical use |
|---|---|---|
| One run, one tenant agent instance, one squad | Step-by-step handoff inside a single execution |
| One tenant agent instance, one squad (any run) | Durable pipeline state (keywords, domains, drafts) |
| One run, one tenant agent instance (any squad) | Run-scoped state tied to the instance, not the squad |
| One run, one squad (any tenant agent instance) | Squad-wide run context |
| One squad (any tenant agent instance, any run) | Squad blackboard / shared coordination |
| All squads and all instances of the parent agent | Agent-wide shared data |
tenant_agent_idsquad_idrun_idAgent.idAGENT-Scoped Memory
AGENTCharacteristics:
- points to the parent agent definition (for example the AI Opportunity Analyst agent type).
agent_id - ,
tenant_agent_id, andsquad_idare null.run_id - identifies the data set (for example
memory_key).live_chat_vendors - holds arbitrary structured data — there is no fixed schema across agents.
memory_json - Rows are not listed in squad memory APIs; they are loaded explicitly by agents that need them.
Platform Defaults and Tenant Overrides
AGENT- Platform data lives under the system tenant and provides defaults for all customers.
- Tenant data (optional) under the same +
agent_idoverrides or extends those defaults on read.memory_key
Agents merge platform and tenant payloads when loading. The merge rules depend on the data shape — each agent defines how its own keys combine.
Example: Live-Chat Vendor Fingerprints
memory_key = live_chat_vendorsAGENTSee AI Opportunity Analyst for how this data is used in reports.
Squad-Scoped Memory in Workspaces
In workspaces such as Lead Generation, squad-scoped memory powers the pipeline UI — keywords, domains, organisations, contacts, outbound drafts, and generated reports appear as memory rows scoped to the active squad.
SQUAD_AGENTAGENTRelated Documentation
- Lead Discovery Agent — squad-scoped pipeline memory
- AI Opportunity Analyst — AGENT-scoped vendor data for website engagement signals
- Workspaces — where squad memory surfaces in the UI