&memory: Capability Deep DiveThe &memory namespace describes what an agent can store, retrieve, enrich, consolidate, and replay across time.
In the [&] Protocol, memory is not treated as a single binary feature. An agent does not simply “have memory” or “not have memory.” Instead, memory is modeled as a family of capability interfaces with distinct semantics, retrieval patterns, and downstream composition behavior.
This page explains:
why memory is a first-class protocol primitive
how &memory maps to cognitive and systems research
the major memory subtypes in the protocol
common architecture patterns
schema and contract shapes for memory capabilities
example providers
example pipelines that use memory capabilities
&memory exists as a primitiveMemory is one of the clearest places where agent architecture becomes more than prompt engineering.
Real agent systems often need to:
recall prior incidents
retrieve documents or prior conversations
maintain durable state across sessions
preserve audit-relevant facts
enrich current context with historical relationships
replay prior episodes or workflows
consolidate repeated observations into a more durable representation
These are not all the same task.
A graph-based incident memory behaves differently from a vector retrieval layer. An episodic replay system behaves differently from a semantic knowledge store. The protocol therefore treats memory as a namespace of capabilities, not a single implementation detail.
In protocol terms, &memory answers the question:
What can this agent remember, and in what form?
The &memory primitive is informed by long-standing distinctions in cognitive science and practical distinctions in modern AI systems.
Several research threads motivate treating memory as plural rather than singular:
Atkinson & Shiffrin introduced a staged view of memory with distinct storage roles.
Tulving distinguished episodic and semantic memory.
Baddeley developed the concept of working memory as an active, limited-capacity system.
Squire and later memory-systems work reinforced the idea that memory is composed of different functional systems rather than one undifferentiated store.
The [&] Protocol does not attempt to reproduce neuroscience literally, but these distinctions are useful because they map well to engineering concerns:
semantic retrieval
durable structured knowledge
experience replay
short-lived context scaffolding
consolidation and long-term retention
Modern agent architectures already separate memory into operational categories such as:
vector retrieval memory
graph knowledge memory
episodic conversation history
scratchpads or working context
durable event logs
long-term knowledge consolidation
That convergence suggests memory is ready to be treated as a protocol concern.
If memory remains implicit, then every framework invents its own hidden model of:
what memory means
how memory is queried
how memory interacts with reasoning
what guarantees memory provides
how memory participates in provenance
By modeling memory as a protocol namespace, the [&] Protocol makes those choices explicit and composable.
&memory namespaceThe primitive root is:
&memory
Common subtypes include:
&memory.graph
&memory.vector
&memory.episodic
Future subtypes may include patterns such as:
&memory.working
&memory.semantic
&memory.cache
&memory.eventlog
The protocol keeps the primitive set small but allows subtype growth through namespacing.
&memory.graph&memory.graph represents graph-structured memory.
Use it when the agent needs:
entity and relationship recall
cross-event linkage
incident or causal graph navigation
enrichment from connected prior knowledge
durable structure over time
Typical operations:
recall
learn
consolidate
enrich
Typical strengths:
relationship-aware retrieval
explainable linked context
incident and dependency modeling
durable, structured long-term memory
Good fit for:
infrastructure operations
research knowledge graphs
policy and dependency modeling
multi-step causal analysis
&memory.vector&memory.vector represents vector or embedding-based semantic retrieval.
Use it when the agent needs:
semantic nearest-neighbor search
retrieval over documents or chunks
knowledge base lookup
dense similarity matching
lightweight enrichment from unstructured text
Typical operations:
search
upsert
enrich
Typical strengths:
efficient semantic retrieval
broad compatibility with document corpora
simple integration with retrieval-augmented systems
strong performance for textual memory use cases
Good fit for:
knowledge assistants
customer support search
research retrieval
FAQ and documentation assistants
&memory.episodic&memory.episodic represents remembered experiences, prior sessions, or replayable sequences.
Use it when the agent needs:
prior interaction history
experience replay
route or workflow history
conversation continuity
case-by-case recall rather than abstracted knowledge only
Typical operations:
recall
store
replay
enrich
Typical strengths:
preserves sequence and narrative structure
useful for case memory and interaction continuity
supports “what happened before?” workflows
natural fit for session-based systems
Good fit for:
customer support agents
route history systems
workflow assistants
longitudinal research assistants
Memory often gets confused with neighboring capabilities. The protocol keeps these boundaries explicit.
&memory vs &reason&memory stores or retrieves what is known
&reason evaluates, argues, plans, or decides
Memory may enrich reasoning, but it should not be conflated with reasoning.
&memory vs &time&memory is about retained knowledge
&time is about temporal patterns, forecasts, anomalies, and sequence-aware temporal behavior
A time capability may produce signals that memory stores or enriches, but the two are distinct.
&memory vs &space&memory stores knowledge
&space models where things are, how they are distributed, or how routes/regions constrain behavior
Memory can preserve spatial context, but space is still its own primitive.
Different systems use different memory architectures. The protocol is designed to describe them without forcing one implementation.
Pattern:
store documents or summaries in vector form
retrieve semantically relevant material
pass results into reasoning
Typical capability:
&memory.vector
Best for:
document-heavy systems
support and research workflows
broad semantic recall
Pattern:
represent facts, events, or incidents as nodes and edges
enrich current tasks by traversing links and related cases
Typical capability:
&memory.graph
Best for:
operations systems
causal tracing
dependency-rich environments
long-term structured knowledge
Pattern:
store replayable episodes or sequences
enrich the current task with similar prior experiences
Typical capability:
&memory.episodic
Best for:
customer interactions
route or workflow history
case-handling systems
“similar past situation” analysis
Pattern:
combine graph, vector, and episodic memory
use each memory form for different retrieval needs
Example composition:
&memory.graph for durable relationships
&memory.vector for document retrieval
&memory.episodic for session history
This is often the most realistic production architecture.
Pattern:
ingest raw observations
store short-term or episodic traces
consolidate repeated or related observations into more durable memory
Typical flow:
capture observations
store near-term experience
consolidate patterns into graph or semantic memory
enrich future reasoning from consolidated memory
This pattern is especially useful for long-running systems.
&memoryAt the declaration level, memory capabilities are represented inside ampersand.json.
Example:
~~~json { "$schema": "https://protocol.ampersandboxdesign.com/schema/v0.1.0/ampersand.schema.json", "agent": "ResearchAgent", "version": "0.1.0", "capabilities": { "&memory.vector": { "provider": "pgvector", "config": { "index": "papers", "namespace": "research-corpus" } }, "&reason.argument": { "provider": "deliberatic", "config": { "governance": "evidence-first" } } }, "provenance": true } ~~~
Memory capability keys follow the same capability identifier rule as the rest of the protocol:
&memory
&memory.graph
&memory.vector
&memory.episodic
With explicit binding:
~~~json { "&memory.graph": { "provider": "graphonomous", "config": { "instance": "infra-ops" } } } ~~~
With auto resolution:
~~~json { "&memory.episodic": { "provider": "auto", "need": "customer interaction history with replayable escalation context" } } ~~~
&memoryMemory becomes operationally important when paired with contracts.
A memory contract describes:
supported operations
input and output types
adjacency rules
optional A2A skill mappings
Example contract for &memory.graph:
~~~json { "$schema": "https://protocol.ampersandboxdesign.com/schema/v0.1.0/capability-contract.schema.json", "capability": "&memory.graph", "provider": "graphonomous", "version": "0.1.0", "description": "Graph-structured memory for relationship-aware recall and enrichment.", "operations": { "recall": { "in": "query_context", "out": "memory_hits" }, "learn": { "in": "observation", "out": "ack" }, "consolidate": { "in": "memory_batch", "out": "graph_update" }, "enrich": { "in": "anomaly_set", "out": "enriched_context" } }, "accepts_from": [ "&time.*", "&reason.*", "query_context", "observation" ], "feeds_into": [ "&reason.*", "&space.*", "output" ], "a2a_skills": [ "graph-memory-recall", "context-enrichment" ] } ~~~
Example contract for &memory.vector:
~~~json { "$schema": "https://protocol.ampersandboxdesign.com/schema/v0.1.0/capability-contract.schema.json", "capability": "&memory.vector", "provider": "pgvector", "version": "0.1.0", "description": "Semantic retrieval memory over embedded documents.", "operations": { "search": { "in": "query_context", "out": "retrieval_hits" }, "upsert": { "in": "document_batch", "out": "ack" }, "enrich": { "in": "query_context", "out": "enriched_context" } }, "accepts_from": [ "&reason.*", "query_context", "document_batch" ], "feeds_into": [ "&reason.*", "output" ], "a2a_skills": [ "semantic-retrieval", "knowledge-base-enrichment" ] } ~~~
The protocol is provider-agnostic, but current example providers include:
graphonomous
neo4j-memory
pgvector
weaviate
pinecone
graphonomous
custom or application-specific implementations
The protocol position is:
the capability is the interface
the provider is an implementation that satisfies it
That is why &memory.graph is more important than any one vendor name.
Memory capabilities often interact directly with governance.
Examples of governance constraints that frequently apply to memory:
never store private customer data without policy justification
never reveal one user’s memory context to another user
always preserve audit trail for learned incident context
prefer retrieving policy-grounded evidence over unsupported recollection
Memory is therefore not only a retrieval concern. It is also a policy-sensitive capability.
Example:
~~~json { "governance": { "hard": [ "Never reveal private customer data to another customer", "Always preserve an audit trail for memory-backed account changes" ], "soft": [ "Prefer policy-grounded retrieval over speculative recollection" ], "escalate_when": { "confidence_below": 0.75, "hard_boundary_approached": true } } } ~~~
Memory is one of the most provenance-sensitive capabilities in the protocol.
Why?
Because downstream decisions often depend on:
which memory source was queried
which provider answered
what was retrieved
how retrieved context was transformed
whether recall was based on semantic similarity, graph structure, or episodic replay
A provenance-aware memory operation should preserve at least:
source capability, such as &memory.graph
provider, such as graphonomous
operation, such as recall or enrich
timestamp
input hash
output hash
parent hash
Example provenance record:
~~~json { "source": "&memory.graph", "provider": "graphonomous", "operation": "enrich", "timestamp": "2026-03-14T14:23:07Z", "input_hash": "sha256:1a2b...", "output_hash": "sha256:7c8d...", "parent_hash": "sha256:0000..." } ~~~
This is critical for:
debugging
audits
trust
post-incident analysis
policy review
~~~json { "$schema": "https://protocol.ampersandboxdesign.com/schema/v0.1.0/ampersand.schema.json", "agent": "InfraOperator", "version": "1.0.0", "capabilities": { "&memory.graph": { "provider": "graphonomous", "config": { "instance": "infra-ops" } }, "&time.anomaly": { "provider": "ticktickclock", "config": { "streams": ["cpu", "mem"] } }, "&reason.argument": { "provider": "deliberatic", "config": { "governance": "constitutional" } } }, "provenance": true } ~~~
Why memory matters here:
prior incidents can enrich anomaly interpretation
related infrastructure dependencies can be recalled
new outcomes can be learned into the graph
~~~json { "$schema": "https://protocol.ampersandboxdesign.com/schema/v0.1.0/ampersand.schema.json", "agent": "ResearchAgent", "version": "0.1.0", "capabilities": { "&memory.vector": { "provider": "pgvector", "config": { "index": "papers", "namespace": "research-corpus" } }, "&reason.argument": { "provider": "deliberatic", "config": { "governance": "evidence-first" } } }, "governance": { "hard": [ "Always preserve citation traceability" ] }, "provenance": true } ~~~
Why memory matters here:
retrieval quality directly affects reasoning quality
provenance matters for evidence traceability
semantic memory is more important than graph structure in many literature workflows
~~~json { "$schema": "https://protocol.ampersandboxdesign.com/schema/v0.1.0/ampersand.schema.json", "agent": "CustomerSupport", "version": "0.1.0", "capabilities": { "&memory.episodic": { "provider": "graphonomous", "config": { "instance": "customer-support-history", "retention_days": 90 } }, "&memory.vector": { "provider": "pgvector", "config": { "index": "support-kb", "namespace": "help-center" } }, "&reason.argument": { "provider": "deliberatic", "config": { "governance": "customer-safe" } } }, "provenance": true } ~~~
Why memory matters here:
episodic memory preserves prior customer context
vector memory supports policy and knowledge retrieval
the combination supports both continuity and grounding
This is a classic infrastructure pattern:
~~~text stream_data
~~~
What happens:
temporal capability detects anomalies
graph memory enriches the anomaly set with similar incidents or related dependencies
reasoning evaluates action options
resulting decision or outcome is learned back into memory
This is a good example of memory as both:
enrichment layer
long-term learning surface
A research or policy workflow:
~~~text query_context
~~~
What happens:
vector memory searches relevant materials
retrieved context is enriched
reasoning operates on grounded evidence rather than unsupported recall
A continuity-focused workflow:
~~~text customer_case
~~~
What happens:
prior interaction history is recalled
policy and knowledge base context is retrieved
reasoning generates a response or decision
the new case state is stored as a new episode
&memory.graph when you need:relationships
causality
incident linkage
explainable structure
durable knowledge graphs
&memory.vector when you need:semantic document retrieval
dense search
broad textual recall
quick retrieval over corpora
knowledge base enrichment
&memory.episodic when you need:interaction continuity
replayable prior experiences
session or case history
sequence-aware recall
hybrid retrieval
both structure and semantic search
both historical episodes and durable knowledge
different memory surfaces for different downstream tasks
&memoryUse:
&memory.graph
not “Graphonomous memory” as the protocol-level concept
Do not collapse all memory use cases into one abstraction.
A memory capability should describe:
what it accepts
what it outputs
what it can enrich
what can follow it in a pipeline
Memory-backed decisions should be auditable.
Sensitive retrieval and storage behavior should be constrained declaratively.
Useful future extensions for the &memory namespace may include:
working-memory or scratchpad-oriented subtypes
stronger retention and expiration metadata
cross-memory consolidation semantics
richer privacy and access-control traits
more formal distinction between semantic and episodic retrieval contracts
standardized memory quality metrics
These are appropriate areas for protocol growth, but the current namespace is already useful without overfitting too early.
&memory is one of the most important primitives in the [&] Protocol because it turns “agent memory” from a vague feature into a composable capability family.
It provides a vocabulary for:
graph-structured memory
vector retrieval memory
episodic memory
future subtype expansion
It also provides a place to standardize:
typed memory operations
compatibility with downstream reasoning
governance-sensitive storage and recall
provenance-aware context enrichment
In short:
&memorydefines what the agent can remember, how it remembers it, and how that remembered context composes with the rest of the system.
docs/capabilities/reason.md
docs/capabilities/time.md
docs/capabilities/space.md
docs/architecture.md
protocol/schema/v0.1.0/ampersand.schema.json
protocol/schema/v0.1.0/capability-contract.schema.json