Back to Knowledge Base

Agent Memory — Deep Dive

🚀 Part of The Agentic Frontier — 2026 Field Guide → · related: Short-Term Memory → · LLM Judges & Debate →

✅ Implemented in this app — Agent Memory liveA judge-gated episodic memory store (its own Qdrant namespace) lets both agents recall past runs, with versioned updates — never overwritten — and decay-based forgetting.Try it: make agent-memory-selftest

01. What Episodic Memory Is

ELI5 — the plain-language version

Imagine an agent like a tourist exploring a new city with a personal scrapbook. This subsystem is for agents to store their past experiences—thoughts and visual snapshots—so they can recall them later to make smarter decisions as they move through unfamiliar places. Step by step, when the agent encounters a street scene, it writes down its impressions and key visual details into a memory database, much like adding a page to the scrapbook. Later, when planning its next move toward a goal, it flips back through those pages to retrieve what it saw before, using those memories to rate each spot on perceived safety and liveliness. The database holds “thoughts and essential visual information,” and the agent reaches into it “when needed to plan their movement,” building a continuous record that lasts beyond a single moment. The trickiest part is that the memory isn’t a simple list; it must be tied to the agent’s unique virtual personality, which shapes what each agent considers worth remembering—one might care about busy streets, another about quiet alleys. Without this persistent store, the agent would have no way to recall what it encountered, like a tourist whose scrapbook is blank. It would wander aimlessly, unable to avoid dangerous blocks or retrace a safe route, and every decision would start from scratch, trapping it in a loop of repeating the same mistakes.

Agents use a memory database to store information from their interactions. They save their thoughts and key visual details. They retrieve this data when planning their movement. This memory lasts beyond a single moment. It helps agents rate surroundings based on safety and liveliness. Virtual agents exploring urban environments rely on this store. They navigate toward specific goals using past observations. This persistent record lets them build on earlier perceptions. Without it, they would have no way to recall what they encountered. The database keeps the information accessible for future planning steps. That makes it different from a short conversation that disappears quickly. The memory remains available across decisions. It enables the agent to learn from what it has seen. The agents are given virtual personalities to make them distinct. They use street view images to understand their surroundings. This system supports longer-term reasoning about their journey.

Agents store persistent memories in a vector-indexed store for retrieval across interactions.

python
def embed(texts: Sequence[str]) -> list[list[float]]:
    # Replace with an actual embedding function or LangChain embeddings object
    return [[1.0, 2.0] for _ in texts]

store = InMemoryStore(index=IndexConfig(embed=embed, dims=2))
user_id = "my-user"
application_context = "chitchat"
namespace = (user_id, application_context)
store.put(
    namespace,
    "a-memory",
    {
        "rules": [
            "User likes short, direct language",
            "User only speaks English & python",
        ],
        "my-key": "my-value",
    },
)
item = store.get(namespace, "a-memory")
items = store.search(
    namespace, filter={"my-key": "my-value"}, query="language preferences"
)
System design — mechanism, invariant, trade-off

In the FSFM framework, the episodic memory subsystem operates through a structured sequence. First, an agent’s interactions—thoughts, key visual details, and environmental ratings of safety and liveliness—are stored in a vector database. Next, the framework applies one of four forgetting mechanisms from its taxonomy: passive decay-based (allowing memories to fade naturally, modeled on the Ebbinghaus forgetting curve), active deletion-based (explicit removal triggered by policy), safety-triggered (deletion upon detection of malicious inputs or sensitive data), or adaptive reinforcement-based (strengthening memories that prove useful while pruning irrelevant ones). On failure of a forgetting operation—for example, if the safety-triggered mechanism does not activate—the offending memory persists, compromising security and quality.

The design preserves the invariant of selective forgetting, inspired by hippocampal indexing/consolidation theory. This guarantee ensures that only memories contributing to efficient access, high content quality (measured as signal-to-noise ratio), and complete elimination of security risks are retained. The invariant is enforced by the forgetting taxonomy’s ability to dynamically prune outdated preferences, outdated context, and privacy-compromising content, so the agent’s persistent record remains both relevant and safe across planning cycles.

The key trade-off is between universal retention and deliberate forgetting. The obvious alternative—remembering all episodic data indefinitely—is rejected because it would degrade access efficiency, lower content quality with stale or irrelevant information, and retain malicious inputs or sensitive data. By embracing selective forgetting, FSFM avoids these costs, as validated by empirical improvements: access efficiency gains of +8.49%, a +29.2% increase in signal-to-noise ratio, and 100% elimination of security risks. This trade-off is necessary for resource-constrained deployments where memory must be both useful and secure.

A concrete failure mode occurs when the safety-triggered mechanism fails to identify a malicious input, leaving that memory intact. An operator would observe a security alert from downstream monitoring—for instance, a rise in anomalous outputs or a detected breach of privacy boundaries—indicating that the forgetting invariant has been violated. The signal is a measurable degradation in security performance from the expected 100% elimination to a non-zero risk level, prompting investigation into the forgetting pipeline and trigger conditions.

Failure modes — what breaks, what catches it

Memory Database Unavailable

  • Trigger — The storage device or network connection hosting the memory database becomes inaccessible (e.g., disk failure, service crash, network partition).
  • Guard — None specified in source.
  • PostureFail-hard: The agent cannot retrieve past thoughts or visual information, making movement planning and environment rating impossible. The system aborts the current navigation task because persistent recall is fundamental to goal‑directed behavior.
  • Operator signal — The agent stops responding or provides no output when queried for thought processes; no error message is defined in the source.
  • Recovery — No automatic retry or fallback is described. A manual step is required: restart or repair the database service, then re‑initialize the agent from a checkpoint.

Data Corruption

  • Trigger — Hardware faults, software bugs, or storage medium degradation cause byte‑level corruption in the stored thoughts or visual details.
  • Guard — None specified in source (no checksum, redundancy, or integrity validation is mentioned).
  • PostureFail‑soft: Corrupted entries may cause the agent to produce inaccurate environment ratings or plan movement based on false prior observations, but the system continues running with degraded performance.
  • Operator signal — Queried findings reveal nonsensical or inconsistent thought sequences; no specific error metric is defined in the source.
  • Recovery — No automatic repair is provided. A manual inspection of the memory database is required to delete or restore corrupt records.

Memory Capacity Exhaustion

  • Trigger — The memory database reaches its maximum storage limit (e.g., disk full, quota exceeded) after accumulating thoughts and visual details over many epochs.
  • Guard — None specified in source (no capacity‑aware control, eviction policy, or early warning is described).
  • PostureFail‑hard: The agent cannot write new observations, halting the accumulation of episodic memory and effectively stopping the learning/planning loop.
  • Operator signal — Write operations fail silently or the agent stops producing new entries; the source does not define a log line for this condition.
  • Recovery — No automatic fallback. An operator must free space (e.g., archive old memories, increase storage) and possibly re‑initialize the database.

Retrieval Failure (Empty or Stale Query Results)

  • Trigger — Query‑specific errors (e.g., malformed retrieval key, indexing delay, or the requested memory not yet written) cause the database to return no results or outdated data.
  • Guard — None specified in source (no uncertainty‑aware loops, fallback to default values, or timestamp checks are mentioned).
  • PostureFail‑soft: The agent proceeds without the expected memory, potentially planning movement based on only current perception or defaulting to random walk. Performance degrades but the simulation does not crash.
  • Operator signal — Queries produce empty lists or stale data; the source only notes that findings are “queried” without error fields.
  • Recovery — No automatic retry or backoff is defined. The agent may eventually overwrite missing data with new observations, but no explicit mechanism is provided.

Write Failure (Thought or Visual Detail Not Saved)

  • Trigger — Transient errors (e.g., database connection timeout, permission issues, or concurrent write conflicts) prevent a new memory record from being persisted.
  • Guard — None specified in source (no retry loop, write‑acknowledgment, or transactional integrity is described).
  • PostureFail‑soft: The agent continues its current iteration without saving the observation. The memory remains incomplete, but the agent does not halt.
  • Operator signal — Later queries show gaps in the memory timeline; no explicit log line or error metric is defined in the source.
  • Recovery — No automatic retry. The omitted memory is permanently lost unless re‑observed later, requiring manual re‑run of the agent in the same environment to recover the data.
STUDY AIDSevidence-backed memory techniques
Recall check

In What Episodic Memory Is, what triggers Memory Database Unavailable — and how is it caught?

Show answer

The storage device or network connection hosting the memory database becomes inaccessible (e.g., disk failure, service crash, network partition).

Recall check

In What Episodic Memory Is, what triggers Data Corruption — and how is it caught?

Show answer

Hardware faults, software bugs, or storage medium degradation cause byte‑level corruption in the stored thoughts or visual details.

02. The Write Gate

ELI5 — the plain-language version

Think of the Write Gate as a librarian who does not let every scrap of paper into the library. The library’s purpose is to help the reader—here, a generative agent—quickly find the exact facts it needs to decide where to go next. So the librarian only shelves the truly important notes, keeping the shelves uncrowded and the search fast.

Now go deeper. When the agent walks through a street, it sees many things: a red car, a barking dog, a bench under a tree. The Write Gate decides which of these become lasting memories in its memory database. It keeps only essential visual information and thoughts that are directly tied to the agent’s goal—like “this park feels safe to pass through.” Later, when the agent retrieves that memory to plan its movement, it finds exactly what it needs without sifting through irrelevant clutter. This filtering step is the real job of the Write Gate: it prevents the database from becoming bloated, so retrieval stays reliable.

The trickiest part is deciding what counts as “essential.” The agent does not have a human to tell it. Instead, it relies on an internal rule: a memory is worth storing only if it will help in future navigation or goal‑completion. For example, a visual impression of a dangerous intersection gets kept, while the color of a passing car is discarded. Without this gate, the library would fill with pointless facts. The agent would waste time searching through endless junk, get confused, and fail to plan a safe route—exactly the kind of breakdown a beginner would feel when the map becomes too messy to read.

Not every new memory earns a place in the store. Generative agents have a memory database for their thoughts and essential visual information. They retrieve it when planning movement. Keeping only what is essential prevents the database from becoming cluttered. This makes retrieval reliable. The agents store what they truly need.

The save_user_info tool implements a write gate, storing only essential user data on demand to prevent clutter.

python
from langchain.agents import create_agent
from langchain.tools import ToolRuntime, tool
from langgraph.store.memory import InMemoryStore

store = InMemoryStore()

@tool
def save_user_info(user_info: UserInfo, runtime: ToolRuntime[Context]) -> str:
    """Save user info."""
    assert runtime.store is not None
    store = runtime.store
    user_id = runtime.context.user_id
    store.put(("users",), user_id, dict(user_info))
    return "Successfully saved user info."
System design — mechanism, invariant, trade-off

The Write Gate subsystem implements a selective memory update mechanism grounded in the ReAct loop architecture described in the source. The ordered mechanism begins when a generative agent generates a new thought or perceives essential visual information; the ReAct loop first evaluates whether this candidate memory passes the utility filter — a decision stage that uses retrieval-augmented generation (RAG) to assess relevance against existing persistent memory. If the candidate is deemed essential, the system writes it into the memory database; on failure (e.g., the RAG query returns a low relevance score or the ReAct loop encounters a hallucination), the write is aborted and the candidate is discarded. The invariant preserved is retrieval reliability: the guarantee that the database remains sufficiently uncluttered so that future queries reliably return only meaningful entries, preventing the brittle behaviour that arises from noise in the memory store.

The key trade-off is between memory completeness and operational robustness. The design rejects the obvious alternative of storing every new memory (full persistence), because that would lead to database clutter and consequent retrieval unreliability — a direct source of the brittleness and emergent coordination failures identified in the source. By accepting the cost of discarding potentially useful but non-essential memories, the subsystem avoids the much higher cost of degraded agent reasoning, where irrelevant or conflicting entries cause hallucination during planning and action. This selective write strategy is explicitly enabled by the RAG pipeline, which acts as a priori relevance filter, and the ReAct loop, which provides the reasoning context to determine essentiality.

A concrete failure mode occurs when the ReAct loop misclassifies a genuinely important memory as non-essential due to a hallucination in the LLM’s reasoning step. The observable signal an operator would see is the agent repeatedly failing to plan a movement because a critical visual cue was never written to the persistent memory store — for example, the agent may navigate toward a known obstacle as if it does not exist. This manifests as a symptom of the brittleness the design aims to mitigate, and the operator would detect it through mismatches between the agent’s stated reasoning and observed behaviour, requiring manual audit of the memory database. The source’s proposed solution to such failures is to strengthen the ReAct loop with causal modeling and automation coordination layers, ensuring that the write gate’s decisions remain aligned with task goals.

Failure modes — what breaks, what catches it

Memory Hallucination

  • Trigger — The LLM generates factually incorrect or fabricated content during memory formation, such as false perceptions of the urban environment.
  • Guard — No explicit guard identified in the provided sources; the concept of “retrieval-augmented generation (RAG)” is proposed for retrieval reliability but not applied at the write gate.
  • Posture — Fail-soft: the erroneous memory is stored and later retrieved, degrading the accuracy of subsequent planning and decision-making.
  • Operator signal — No direct log from the write gate; an operator would observe anomalous agent behavior or contradictory movement plans downstream.
  • Recovery — No automatic retry or fallback; manual inspection and removal of the hallucinated memory from the memory database are required.

Memory Database Overflow

  • Trigger — The generative agent attempts to store more memories than the capacity of the memory database allows, exceeding its storage limits.
  • Guard — No explicit guard identified; the design principle of “keeping only what is essential” is stated but no enforcement mechanism (e.g., capacity check) is provided.
  • Posture — Fail-closed: the write gate refuses new entries, preventing further clutter but losing potentially essential new information.
  • Operator signal — Silent failure: the operator would notice missing updates in the memory database or retrieval gaps when querying recent events.
  • Recovery — No automatic recovery; manual deletion of non-essential memories or expansion of the memory database capacity is needed.

Visual Module Corruption

  • Trigger — The movement and visual modules produce corrupted or malformed visual data (e.g., distorted street view images) due to sensor noise or module error.
  • Guard — No guard identified in the source; the modules are used as described but no validation or exception handling for corrupted output is specified.
  • Posture — Fail-soft: the corrupted visual information is stored, leading to incorrect spatial understanding and faulty movement planning.
  • Operator signal — Inconsistent or erratic agent movement patterns; no error message from the write gate itself.
  • Recovery — No automatic retry; the operator must restart or recalibrate the movement and visual modules and manually correct the stored memories.

Coordination Conflict Between Agents

  • Trigger — Multiple generative agents with distinct virtual personalities attempt to write conflicting memories (e.g., different safety ratings for the same location) simultaneously without synchronization.
  • Guard — No guard identified; “automation coordination layers” are proposed as a targeted solution but are not implemented in the described system.
  • Posture — Fail-soft: one memory overwrites another arbitrarily, leading to state inconsistency and unreliable retrieval across agents.
  • Operator signal — Disagreements in agent behavior or contradictory planning outcomes; no explicit log from the write gate.
  • Recovery — No automatic resolution; manual reconciliation of the memory database by reviewing agent histories is necessary.
STUDY AIDSevidence-backed memory techniques
Recall check

In The Write Gate, what triggers Memory Hallucination — and how is it caught?

Show answer

The LLM generates factually incorrect or fabricated content during memory formation, such as false perceptions of the urban environment.

Recall check

In The Write Gate, what triggers Memory Database Overflow — and how is it caught?

Show answer

The generative agent attempts to store more memories than the capacity of the memory database allows, exceeding its storage limits.

03. Never Overwrite

ELI5 — the plain-language version

Imagine an agent like a person keeping a diary where each new thought goes on a fresh page, and nothing ever gets erased or written over. That is exactly what this memory subsystem does: it gives the agent a place to store every experience separately so it never loses track of what it originally saw or thought. The whole point is to let the agent remember its past reliably, without old memories being wiped out by new ones.

Now watch how it actually works step by step. When the agent walks through a street, it uses a memory database—a real storage system named directly in the source—to save both its thoughts and the essential visual information it sees (like a street view). Later, when it needs to plan a journey toward a goal, it reaches back into that database to retrieve the stored details. Each new observation gets its own slot; the database holds onto all previous records, so nothing is ever overwritten. The source confirms the agent stores “thoughts and essential visual information” and can “retrieve it when needed to plan their movement.” That retrieval step is the key mechanism that keeps the agent from trusting a history that might have been altered or forgotten.

The trickiest twist is that this database does not just hold things—it actively prevents the agent from collapsing different times into one blurry mess. Without a separate storage for each entry, the agent might mix up an early safe street with a later dangerous one, because the later memory could overwrite the earlier. The source shows the agents querying their memory to get details about their thought processes, which only works if each thought is preserved independently. Without this subsystem, the agent would forget earlier experiences entirely, making it unable to learn from past mistakes or plan effectively—like a person whose diary pages keep getting erased.

Agents store their thoughts and visual information in a memory database. They can retrieve that information when needed. The database holds onto previous records. This prevents the agent from losing track of what it originally experienced. Storing details separately means each new entry does not erase the old one. An agent can always return to an earlier thought. This gives it a reliable way to check its own history. The memory keeps every piece of information safe. That protects the agent from trusting a history that might have been altered.

Agent reads user info from memory store without overwriting existing data.

python
from langgraph.store.memory import InMemoryStore

store = InMemoryStore()
store.put(
    ("users",),
    "user_123",
    {"name": "John Smith", "language": "English"},
)

@tool
def get_user_info(runtime: ToolRuntime[Context]) -> str:
    """Look up user info."""
    assert runtime.store is not None
    user_info = runtime.store.get(("users",), runtime.context.user_id)
    return str(user_info.value) if user_info else "Unknown user"
System design — mechanism, invariant, trade-off

The subsystem implements an append-only memory store: each new thought or visual record is added as a distinct entry without modifying any prior entry. When the agent needs to retrieve information, it queries the database over the full history. On a storage failure (e.g., a write operation times out or returns an error), the current record is lost, but all previously stored entries remain untouched—the system does not attempt to overwrite or delete them. This ordered mechanism ensures that the agent’s history grows monotonically, with no operation that could alter or remove older data.

The invariant preserved is an immutable history guarantee: every piece of information that was ever stored exists in its original form, and no write can retroactively change or erase it. This corresponds to what the source terms a “never overwrite” design, directly enforcing that “the memory keeps every piece of information safe” and “protects the agent from trusting a history that might have been altered.” It is a strict write boundary—once a record is committed, it is permanently readable.

The key trade‑off is storage growth versus information safety. By rejecting any form of selective forgetting—such as the “passive decay‑based,” “active deletion‑based,” “safety‑triggered,” or “adaptive reinforcement‑based” mechanisms catalogued in the FSFM framework—the design avoids the risk of accidentally discarding critical context or introducing vulnerabilities through malicious deletions. The obvious alternative (e.g., using a forgetting mechanism to prune old data) is rejected because it could compromise the agent’s ability to audit its own past and open the door to history tampering. The cost avoided is the complexity and potential security pitfalls of implementing and auditing a forgetting policy, while the accepted cost is unbounded memory consumption.

A concrete failure mode is storage quota exhaustion. When the database fills its allocated capacity, new write attempts fail. An operator would see a log entry such as disk full or quota exceeded on the memory store, and the agent would cease recording new thoughts—its knowledge becomes frozen at the last successful append. This signal is direct and unambiguous, requiring manual purging or scaling of storage to restore normal operation.

Failure modes — what breaks, what catches it

Failure 1: Memory Database Write Failure Due to Capacity Exhaustion

  • Trigger — The agent attempts to store a new thought or visual observation into the memory database (Verma et al., 2026), but the underlying storage has reached its maximum capacity. Because the design principle is Never Overwrite, the system cannot overwrite older entries to free space.
  • GuardNone identified in the source. No retry, fallback, or exception handler is described for a full memory database.
  • Posturefail-closed – the write is refused. The agent cannot proceed without storing the new experience, and the database does not allow overwriting, so the operation is denied. The agent’s state becomes frozen for that input.
  • Operator signal — A silent absence of the new entry in the agent’s history. The operator would later observe a gap in the action trace logs (Villacampa-Porta et al., 2025) – the stored sequence of actions does not include the intended observation.
  • Recovery — Manual intervention is required: an operator must delete obsolete entries or increase storage capacity, then re-run the agent’s task to capture the missed memory.

Failure 2: Memory Retrieval Failure Due to Index Corruption

  • Trigger — When the agent tries to retrieve a previously stored thought or visual detail (e.g., a landmark from a street view image), the memory database’s index becomes corrupted (e.g., from an incomplete write or storage fault). The query returns an empty set or a stale result.
  • GuardNone identified in the source. No validation of retrieved data or fallback retrieval mechanism (e.g., a secondary index) is mentioned.
  • Posturefail-soft – the agent continues but with incomplete or incorrect history. Because the system relies on retrieved memories for planning (Verma et al., 2026: “retrieve it when needed to plan their movement”), the agent may choose an erroneous route or fail to recognise a previously visited location.
  • Operator signal — The agent’s plan deviates unexpectedly; the operator would see a discrepancy between the post-analysis (Villacampa-Porta et al., 2025) of the agent’s trajectory and the actual environment. No direct error metric is exposed.
  • Recovery — Automatic retry is absent. The operator must manually verify the memory database corruption (e.g., by inspecting the action trace logs) and restore from a backup or re-index the database, then rerun the agent’s reasoning from before the corrupted read.

Failure 3: Memory Database Write Latency Exceeding Agent Timeout

  • Trigger — The storage device or network backend (if distributed) is slow, causing a write operation to the memory database to take longer than the agent’s internal reasoning timeout. The agent proceeds without having committed the new memory, assuming the write succeeded.
  • GuardNone identified in the source. No timeout handler, asynchronous acknowledge, or write verification is described.
  • Posturefail-soft – the agent continues executing, but the memory is not persisted. The agent becomes inconsistent: it believes it has stored the information, but later retrievals will miss it. This can lead to repeating the same actions or losing context (a form of emergent behavior as noted in Sapkota et al., 2025).
  • Operator signal — The operator sees a growing number of repeated thoughts in the action trace logs (Villacampa-Porta et al., 2025). The agent’s behaviour may appear “forgetful” without any explicit error log.
  • Recovery — No automatic recovery. The operator must detect the pattern, increase the timeout or switch to a synchronous write guarantee, then restart the agent from a known good memory snapshot.

Failure 4: Inconsistent Memory State Due to Concurrent Agent Writes

  • Trigger — In a multi-agent setting (as described in Sapkota et al., 2025: “multi-agent collaboration”), two agents attempt to write to the same memory database entry simultaneously (e.g., both try to record their visual impression of the same street corner). Without a locking mechanism, one write overwrites the other, violating the Never Overwrite principle.
  • GuardNone identified in the source. No mutual exclusion, version control, or transaction mechanism is mentioned for the memory database.
  • Posturefail-soft – the database retains the last writer’s entry, silently discarding the other agent’s memory. This can cause the team of agents to have contradictory histories, leading to coordination failure (Sapkota et al., 2025).
  • Operator signal — The operator would observe conflicting decisions between agents in the action trace logs (Villacampa-Porta et al., 2025); for example, one agent “remembers” a safe route while another “remembers” a hazard at the same location, with no error flagged.
  • Recovery — Manual review of the logs and reconciliation of the conflicting memories. The operator must decide which entry is correct and re-run the affected agent’s planning steps after clearing the database conflict.

Failure 5: Memory Database Permanently Loses a Segment (Silent Data Loss)

  • Trigger — A hardware fault (e.g., uncorrectable bit error in a storage block) silently corrupts a portion of the memory database’s persistent storage. The affected records become irretrievable or return meaningless data.
  • GuardNone identified in the source. No checksum, parity, or redundancy mechanism is mentioned for the memory database.
  • Posturefail-soft – the agent continues, but lost memories cause it to rely on an incomplete history. This is especially dangerous if the lost segment contained critical visual landmarks (Verma et al., 2026: “essential visual information”).
  • Operator signal — The operator may notice a sudden drop in task success rate or strange route choices. The post-analysis (Villacampa-Porta et al., 2025) would show a gap in the sequence of stored thoughts that cannot be explained by normal forgetting.
  • Reconstruction — No automatic recovery. The operator must detect data loss via integrity checks (if added later), restore from a backup, or re-run the entire agent experiment to repopulate the lost memories. Manual step: verify and repair the underlying storage.
STUDY AIDSevidence-backed memory techniques
Recall check

In Never Overwrite, what triggers Memory Database Write Failure Due to Capacity Exhaustion — and how is it caught?

Show answer

The agent attempts to store a new thought or visual observation into the **memory database** (Verma et al.

Recall check

In Never Overwrite, what triggers Memory Retrieval Failure Due to Index Corruption — and how is it caught?

Show answer

When the agent tries to retrieve a previously stored thought or visual detail (e.g.

04. Ranking What To Recall

ELI5 — the plain-language version

Think of the agent like a busy librarian who keeps a filing cabinet of notes from past travels. When planning a new journey, the librarian must quickly pick the most useful notes—not every scrap of paper. This subsystem is for ranking which memories to pull out, so the agent can decide where to go next without wasting time on useless or outdated information.

The agent stores its thoughts and visual impressions from past trips in a memory database, like the librarian’s cabinet. When it needs to plan a route, it runs a retrieval process that scores each memory by how often it has been helpful before. A piece of memory that proves useful again and again stays in the database—it gets a higher rank, like placing a frequently used travel log on the top shelf. The agent uses these ranked memories to guide its next steps, making it more efficient over time because it does not have to learn everything from scratch every time.

The trickiest part is deciding when a once‑useful memory should be forgotten. The ranking system does not just keep good memories; it also guards against harm. If a stored note turns out to be malicious or contains private information, the system can actively lower its rank or delete it entirely—a mechanism called safety‑triggered forgetting. Without this ranking and selective removal, the agent would pull out irrelevant or dangerous memories, leading to poor decisions, wasted computing power, or even privacy leaks. The librarian would keep handing you the wrong map, and you would get lost.

Agents with language models have a memory system. They keep their thoughts and visual information in a database. When making a plan for a journey, they pull out what they need. This retrieval helps them decide where to go next. A piece of memory that proves useful again and again stays in the database. The agent can call on it whenever it is needed. This makes the agent more efficient over time. The memory database stores details from past travels. The agent uses these details to guide future movement. It does not have to learn everything from scratch each time. The database holds essential visual data and prior thoughts. Retrieving them helps the agent act in a believable way. There is a trade-off. Storing many memories can slow down the retrieval process. But useful memories make planning faster and more accurate. The agent relies on its stored experiences to rate safety and liveliness of places. It queries its memory to get details about its thought processes. This system allows the agent to reuse helpful information without starting over. It builds on what it has already learned. The memory database is a key part of how the agent works. It keeps the agent grounded in past encounters while moving forward.

An agent retrieves stored user information from long-term memory to guide its response.

python
@dataclass
class Context:
    user_id: str

DB_URI = "postgresql://postgres:postgres@localhost:5432/postgres?sslmode=disable"

with PostgresStore.from_conn_string(DB_URI) as store:
    store.setup()
    store.put(("users",), "user_123", {"name": "John Smith", "language": "English"})

    @tool
    def get_user_info(runtime: ToolRuntime[Context]) -> str:
        """Look up user info."""
        assert runtime.store is not None
        user_info = runtime.store.get(("users",), runtime.context.user_id)
        return str(user_info.value) if user_info else "Unknown user"

    agent: Runnable = create_agent(
        "claude-sonnet-4-6",
        tools=[get_user_info],
        store=store,
        context_schema=Context,
    )

    result = agent.invoke(
        {"messages": [{"role": "user", "content": "look up user information"}]},
        context=Context(user_id="user_123"),
    )
System design — mechanism, invariant, trade-off

The agent’s memory system first stores each experience—thoughts, visual data—as a vector embedding in a database. During journey planning, the ranking mechanism proceeds by computing a relevance score for every stored memory, applying the Ebbinghaus forgetting curve to weaken obsolete traces and adaptive reinforcement to boost those repeatedly retrieved. The highest-scored memories are loaded into the agent’s context for action selection. If no memory meets the retrieval threshold, the mechanism invokes an active deletion-based sweep to cull the lowest-utility entries, then retries ranking with the pruned set. On failure of the retry, the system falls back to a passive decay-based timeout: the query is dropped and the agent relies on raw model generation, discarding the need for memory altogether.

The design preserves the invariant of “100% elimination of security risks,” as explicitly stated in the FSFM framework. This guarantee ensures that no malicious input, sensitive data, or privacy-compromising content survives in memory beyond the safety-triggered forgetting cycle. Every write boundary is reinforced by the safety-triggered mechanism, which actively scans newly stored memories for harmful patterns and erases them before they can influence future retrieval. The invariant holds regardless of query success or failure, because the forgetting subsystem runs as a background process independent of the ranking pathway.

The key trade-off is memory utility against resource cost. The obvious alternative—keeping all memories indefinitely—would maximize recall coverage but at the expense of unbounded storage and the risk of retaining harmful data. The FSFM framework rejects that option by embedding selective forgetting as a core function, adopting a layered taxonomy of decay, deletion, safety triggers, and reinforcement. This rejection avoids the cost of manual memory audits and the representational harms documented in system prompt analysis, where opaque configurations can introduce biases. Instead, the system accepts a controlled loss of seldom-used memories, trading recall breadth for guaranteed security and efficient pruning.

A concrete failure mode occurs when the safety-triggered mechanism misses a malicious input due to a misspelled trigger pattern. The agent retains the harmful memory, and the operator would see a security alert flagging a retained entry that violates the “100% elimination” guarantee, logged as a “safety-triggered forgetting failure” event. The ranking mechanism continues to retrieve that memory, corrupting subsequent plans until an administrator manually inspects the database and forces an active deletion sweep. The signal is a persistent, non-zero security risk count on the monitoring dashboard, directly contradicting the invariant.

Failure modes — what breaks, what catches it

Hallucinated Memory Retrieval

  • Trigger — The agent queries the memory database for thoughts or essential visual information relevant to a journey goal, but the retrieval process generates a plausible-seeming memory that does not correspond to any stored fact (model confabulation within the retrieval head).
  • Guard — No dedicated guard for retrieval hallucination is explicitly provided in the source. The paper AI Agents vs. Agentic AI proposes retrieval-augmented generation (RAG) and ReAct loops as general countermeasures against hallucination, but these are not instantiated as code‑level handlers in the described memory subsystem.
  • Posture — Fail‑soft: the agent incorporates the hallucinated memory into its movement plan and continues navigating, because the memory database returns a record (albeit false) and the movement module uses whatever the memory system supplies.
  • Operator signal — The agent’s journey path deviates from expected routes or fails to reach the goal, observed as a discrepancy between planned waypoints and actual outcomes. No explicit error log is emitted by this subsystem.
  • Recovery — No automated retry or fallback is documented. The operator must manually inspect the memory database contents, compare them against ground‑truth visual information, and purge the hallucinated entry.

Empty Memory Retrieval

  • Trigger — The agent’s memory database contains no stored thoughts or essential visual information that matches the current planning context (e.g., a completely novel urban area), so the retrieval call returns an empty set.
  • Guard — No guard is present in the source. The agent is simply “provided a memory database to store their thoughts … and retrieve it when needed”; no fallback or retry logic for empty results is described.
  • Posture — Fail‑hard: without any prior memory to guide movement, the agent cannot formulate a valid journey plan and stalls. The movement module depends on retrieved details to decide the next step.
  • Operator signal — The agent stops moving or repeatedly stays in place. The operator observes a silent absence of any planning output; no log line is specified in the source.
  • Recovery — No automated recovery exists. The operator must manually seed the memory database with relevant information or restart the agent with a richer initial memory.

Brittle Response to Ambiguous or Conflicting Memory

  • Trigger — The memory database returns multiple contradictory thoughts or visual records for the same location (e.g., one entry rates an area as safe, another as unsafe), and the agent’s simple retrieval logic cannot resolve the conflict, causing erratic or inconsistent planning.
  • Guard — No explicit disambiguation or conflict‑resolution mechanism is mentioned. The paper identifies brittleness as a challenge for AI Agents but offers only high‑level solutions such as automation coordination layers and causal modeling, not a specific guard within the memory subsystem.
  • Posture — Fail‑soft: the agent proceeds with whichever memory it first retrieves (or a random selection), leading to inconsistent behavior that degrades journey quality but does not abort the run.
  • Operator signal — The agent’s movement becomes non‑monotonic or oscillates between several paths. The operator would notice that the agent repeatedly changes direction or revisits areas. No metric or log is defined.
  • Recovery — No automated retry or fallback. The operator must manually curate the memory database to remove or reconcile conflicting entries, then re‑run the planning step.

Memory Database Storage Failure

  • Trigger — During a journey, the agent attempts to store new thoughts or essential visual information into the memory database, but the write operation fails (e.g., due to quota limits, locked database, or corrupted index).
  • Guard — No guard is provided. The source states that agents “store details in their memory” and later “query the findings”, but no exception handling, retry, or validation on storage is reported. The Generative agents in the streets paper does not describe any write‑failure mechanism.
  • Posture — Fail‑soft: the agent continues the journey without persisting the new memory. The movement module works from previously stored data only, so learning from the current trip is lost.
  • Operator signal — The agent shows no improvement over repeated journeys in the same environment; the operator sees that memory is not accumulating. No explicit error is logged.
  • Recovery — No automated recovery. The operator must diagnose the database backend and restart the agent after fixing the storage issue.
STUDY AIDSevidence-backed memory techniques
Recall check

In Ranking What To Recall, what triggers Hallucinated Memory Retrieval — and how is it caught?

Show answer

The agent queries the memory database for thoughts or essential visual information relevant to a journey goal

Recall check

In Ranking What To Recall, what triggers Empty Memory Retrieval — and how is it caught?

Show answer

The agent’s memory database contains no stored thoughts or essential visual information that matches the current planning context (e.g.

05. Decay And Forgetting

ELI5 — the plain-language version

Imagine cleaning out a backpack before a hike: you keep only the map, water bottle, and snacks you’ll actually use, and you toss old receipts or crumpled notes that just take up space. This subsystem does the same for an AI agent’s memory—it deliberately forgets what is no longer useful so the agent can stay focused and efficient. That is what decay and forgetting are for: preventing the memory from becoming a cluttered liability.

When the agent stores a thought or a visual detail from its surroundings, it later retrieves only the memories it needs to plan its next movement. If a piece of information is never used again, the system lets it fade away over time—this is called passive decay-based forgetting. For more urgent cleanup, it also uses active deletion-based forgetting, like throwing away an outdated preference that would confuse future decisions. These mechanisms work together so the database holds only essential details, making retrieval faster and more accurate. Both are grounded in the source’s concept of “selective forgetting,” which improves access efficiency and content quality.

The trickiest part is why forgetting also protects security—an edge case beginners often miss. A safety-triggered mechanism actively deletes malicious inputs or sensitive data that could be exploited later. Without it, an attacker could retrieve a harmful memory stored days ago, or a user’s private information could leak. In the source, this achieved “100% elimination of security risks.” If the subsystem were missing, the agent’s memory would slowly fill with junk, outdated plans would mislead its choices, and toxic or private content would sit around waiting to cause real harm—like carrying a forgotten rusty knife in your backpack that might cut you later.

Agents have a memory database to store their thoughts and visual information. They retrieve it when needed to plan their movement. This keeps the store focused on what is essential. Unused details are not kept. That prevents the memory from becoming an ever growing liability. The system relies on retrieval grounded advising. It excels at that. But it needs stronger adaptation platforms to become fully dependable. The memory database holds only the most relevant information for each task. When something is no longer needed, it is not retrieved. Over time, that information fades from active use. This gradual forgetting helps the agent stay efficient. It avoids carrying unnecessary clutter. The agent can then plan better using only the key memories. This design keeps the store useful without overloading it. The trade off is that some older memories might drop below a floor and be lost. But that makes room for new essential details. The system balances storage and retrieval to support effective decision making. Future work will need to improve this balance for more dependable agents.

Agent retrieves stored user information from the memory store to guide its response.

python
@tool
def get_user_info(runtime: ToolRuntime[Context]) -> str:
    """Look up user info."""
    assert runtime.store is not None
    user_info = runtime.store.get(("users",), runtime.context.user_id)
    return str(user_info.value) if user_info else "Unknown user"
System design — mechanism, invariant, trade-off

The subsystem operates through a hierarchically ordered mechanism beginning with passive decay-based forgetting, where memories that are not retrieved over time naturally fade according to the Ebbinghaus forgetting curve. If a memory is accessed during this phase, it may be reinforced and retained longer, but if no retrieval occurs, the system next triggers active deletion-based forgetting to explicitly prune the flagged entries from the vector database. On failure of the decay process—for instance, if reinforcement cycles keep irrelevant data alive—the mechanism escalates to safety-triggered forgetting, which forcibly removes content that violates security or privacy constraints. Finally, adaptive reinforcement-based forgetting adjusts decay rates dynamically based on task relevance, ensuring that only the most essential information persists for retrieval grounded advising.

The design preserves the guarantee of selective forgetting as a core invariant: the memory database maintains a high signal-to-noise ratio by systematically eliminating unused or harmful content, with empirical validation showing a 29.2% improvement in signal-to-noise ratio and 100% elimination of security risks. This invariant ensures that retrieval remains focused on relevant information, preventing the memory store from becoming an ever-growing liability that degrades access efficiency and quality over time.

The key trade-off is favoring proactive forgetting over unconditional retention. This rejects the obvious alternative of maintaining all memories indefinitely, which would avoid the overhead of forgetting logic but incur the cost of memory bloat, degraded retrieval performance, and potential security violations from stale or malicious data. By building the subsystem this way, the design avoids the computational and storage expenses of an unbounded store, as reflected in an 8.49% improvement in access efficiency, while also addressing ethical and regulatory compliance through active removal of sensitive content.

A concrete failure mode occurs when the adaptive reinforcement-based mechanism misidentifies a memory as relevant due to a spurious retrieval pattern, causing the passive decay-based process to skip pruning that memory. An operator would see a drop in content quality metrics, specifically a reduced signal-to-noise ratio below the 29.2% baseline, as outdated or hallucinated information surfaces in agent planning steps, accompanied by increased latency in retrieval as the vector database accumulates non-essential entries.

Failure modes — what breaks, what catches it

Essential Forgetting

  • Trigger — Information stored in the memory database is not retrieved for a long time; the forgetting mechanism treats it as unused and allows it to fade from active use.
  • Guard — None identified in the source. The system has no explicit guard against discarding data that later becomes essential; it relies solely on the assumption that unused details are irrelevant.
  • Posture — Fail-soft. The agent continues operating with an incomplete memory store, degrading its planning quality and task success rate over time.
  • Operator signal — Silent absence. The operator observes a gradual decline in the coherence of the agent’s decisions or in task success metrics, without any explicit error or warning.
  • Recovery — No automatic recovery. The operator must manually review the agent’s performance, identify the forgotten critical information, and re‑inject it into the memory database.

Retrieval Inaccuracy

  • Trigger — The agent issues a query to the memory database, but due to embedding mismatch, indexing errors, or noise, the retrieval returns irrelevant or no results.
  • Guard — None identified in the source. The system performs “retrieval‑grounded advising” but no guard is shown for inaccurate retrieval. The proposed solution of retrieval‑augmented generation (RAG) is aimed at external grounding, not internal memory retrieval.
  • Posture — Fail-soft. The agent uses the (possibly wrong) retrieved information and continues, leading to degraded task execution.
  • Operator signal — The operator sees the agent act on incorrect information, e.g., planning a movement to a wrong location or producing inconsistent reasoning. No error is raised.
  • Recovery — No automatic recovery. Manual intervention is required to correct the retrieval index, retrain embeddings, or adjust the query formulation. The agent does not automatically retry.

Adaptation Failure

  • Trigger — The agent’s task or environment changes, but the memory database still holds information optimized for the previous task and does not adapt.
  • Guard — None identified in the source. The source explicitly states the system “needs stronger adaptation platforms to become fully dependable”, indicating the absence of a current guard.
  • Posture — Fail-soft. The agent continues with outdated memory, resulting in poor performance on the new task.
  • Operator signal — The operator observes a drop in task accuracy or the agent ignoring relevant new stimuli. No error log is generated.
  • Recovery — No automatic recovery. Manual reset or re‑initialization of the memory database is required for the new task context.

Hallucination Propagation

  • Trigger — The LLM generates a hallucinated thought or visual interpretation during the storage phase, and that hallucinated content is written into the memory database.
  • Guard — None identified at the storage point. The source mentions “retrieval‑augmented generation (RAG)” and “ReAct loops” as solutions for hallucination, but they are not integrated into the memory write path.
  • Posture — Fail-soft. The agent retrieves the hallucinated memory and uses it as fact, leading to incorrect plans or reasoning.
  • Operator signal — The operator may notice factual errors or inconsistent behavior in the agent’s output, but no explicit error indicates the hallucination.
  • Recovery — No automatic recovery. The hallucinated memory persists until overwritten by later correct information. Manual clearing of the memory database is needed.

Coordination Failure (Multi‑Agent Inconsistency)

  • Trigger — In a multi‑agent setup, separate memory databases or shared memory diverge as agents act autonomously, leading to conflicting plans or movements.
  • Guard — None identified in the source. The proposed solution “automation coordination layers” is not implemented in the current subsystem.
  • Posture — Fail-soft. Agents continue operating with inconsistent memories, causing coordination breakdowns.
  • Operator signal — The operator observes agents planning contradictory movements, failing to synchronize, or producing conflicting outputs.
  • Recovery — No automatic recovery. Manual reconciliation of the memory stores or a reset of the coordination layer is required.
STUDY AIDSevidence-backed memory techniques
Recall check

In Decay And Forgetting, what triggers Essential Forgetting — and how is it caught?

Show answer

Information stored in the memory database is not retrieved for a long time; the forgetting mechanism treats it as unused and allows it to fade from active use.

Recall check

In Decay And Forgetting, what triggers Retrieval Inaccuracy — and how is it caught?

Show answer

The agent issues a query to the memory database, but due to embedding mismatch, indexing errors, or noise, the retrieval returns irrelevant or no results.

06. Limits Of Agent Memory

ELI5 — the plain-language version

Think of a student who writes everything in a notebook and trusts it completely—if the notebook has wrong facts, every test answer based on it is confidently wrong. This chapter’s subsystem is about recognizing that memory alone cannot make an AI system dependable; you need extra safeguards to prevent bad information from being reused.

When an agent stores experiences in its memory (like a vector database), it later retrieves those memories to guide decisions. But if a stored fact is incorrect—say, a hallucinated medical condition—the agent will repeat that error with false confidence. That is why retrieval-augmented generation (RAG) pulls in real-time information from trusted knowledge bases, acting like a second student who checks the notebook against the library. Additionally, hidden system prompts—invisible directives added by developers—can silently bias the agent’s behavior without the user ever knowing. The analogy works: the notebook may have hidden notes from a teacher that twist the answers, and the student cannot see or remove them.

The trickiest point is that even when the agent’s memory is accurate, hidden prompts remain completely opaque to the user, creating privacy and fairness risks across sessions. The FSFM framework introduces selective forgetting mechanisms (like passive decay or safety-triggered deletion) to actively remove outdated, malicious, or sensitive data—a kind of eraser the student never had. Without this subsystem, the agent would confidently deliver wrong advice (e.g., suggesting a dangerous diet because its memory stored an old, bad recipe), and the user could never detect or correct the hidden instructions shaping those decisions.

Memory alone cannot make a system dependable. When an agent stores incorrect information, it repeats that bad decision with false confidence. The agent thinks it knows, but the memory is flawed. Recall across sessions raises different privacy questions than a single conversation does. In one chat, the user sees what was shared. When data persists across sessions, hidden prompts remain invisible. The user cannot control or detect them. That lack of transparency introduces new risks. A good retrieval index over real documents is essential. Retrieval-augmented generation improves factual consistency by pulling from external sources. It reduces the chance of hallucination by grounding answers in trusted documents. Memory is no substitute for that grounded retrieval. Without it, bad decisions can echo with misplaced certainty.

Agent retrieves persistent user info from a database store; memory alone cannot guarantee factual accuracy without grounded retrieval.

python
@dataclass
    class Context:
        user_id: str


    DB_URI = "postgresql://postgres:postgres@localhost:5432/postgres?sslmode=disable"

    with PostgresStore.from_conn_string(DB_URI) as store:
        store.setup()
        store.put(("users",), "user_123", {"name": "John Smith", "language": "English"})

        @tool
        def get_user_info(runtime: ToolRuntime[Context]) -> str:
            """Look up user info."""
            assert runtime.store is not None
            user_info = runtime.store.get(("users",), runtime.context.user_id)
            return str(user_info.value) if user_info else "Unknown user"

        agent: Runnable = create_agent(
            "claude-sonnet-4-6",
            tools=[get_user_info],
            store=store,
            context_schema=Context,
        )

        result = agent.invoke(
            {"messages": [{"role": "user", "content": "look up user information"}]},
            context=Context(user_id="user_123"),
        )
System design — mechanism, invariant, trade-off

The subsystem described by Neumann et al. (2025) operates through an ordered mechanism where system prompts are processed first, taking precedence over user prompts in text generation. Deployers and third-party developers can append additional directives to the base system prompt without visibility into others' additions, and this layered implementation remains entirely hidden from end-users. On failure—for example, when a system prompt contains demographic information that biases the model—the model still processes the user prompt afterward, but the biased system-level configuration distorts the output before the user has any chance to intervene. The failure is not a crash but a silent misdirection, because the system prompt’s precedence ensures its influence is applied first and remains opaque.

The design preserves the invariant of consistent responses across contexts, as model providers intend system prompts to guide behaviour uniformly. However, the source explicitly identifies a critical guarantee that is broken: the user’s ability to detect or correct biases. The hidden layered implementation violates the principle of transparency, because the user cannot see what directives have been appended by different parties. The invariant of consistent output is maintained only at the surface level, while the deeper guarantee of user-informed interaction is sacrificed.

The key trade‑off is between deployer‑side customizability and end‑user transparency. The obvious alternative rejected here is a fully visible system prompt stack, where every added directive is exposed to the user before interaction. The design chooses hidden layering to avoid the cost of deployers losing control over model behavior—for instance, if users could see and override safety or branding directives, the deployer’s intended guardrails could be bypassed. By keeping system prompts invisible, deployers ensure that their modifications always take effect, but they incur the cost of representational, allocative, and other biases that users cannot detect or correct.

A concrete failure mode occurs when demographic information is placed in the system prompt versus the user prompt. The operator would see a measurable difference in user representation or decision‑making scenarios—for example, a loan‑application agent might approve or deny applicants based on race or gender depending solely on where that demographic information is provided. The signal an operator actually sees is a pattern of skewed outcomes that correlates with the hidden system‑prompt placement, yet no error message or log indicates the source of the bias, because the layered system prompts are invisible and the model continues to generate responses with false confidence.

Failure modes — what breaks, what catches it

Persistence of Incorrect Information

  • Trigger — The agent stores incorrect information, whether from hallucination, user error, or adversarial input. The source states: “When an agent stores incorrect information, it repeats that bad decision with false confidence.”
  • Guard — No guard is shown for this failure. The source proposes retrieval-augmented generation (RAG) and ReAct loops as targeted solutions for hallucination, but not as direct handlers for already‑stored incorrect memory.
  • Posture — fail‑soft. The agent continues operating, repeating the bad decision without aborting or warning.
  • Operator signal — Silent absence of any error; the operator observes repeated erroneous actions in trace logs, but no flag is raised.
  • Recovery — Manual review and correction of the memory contents; no automated retry or rollback described in the source.

Cross‑Session Privacy Breach

  • Trigger — Data persists across sessions, and hidden prompts (part of the memory) remain invisible to the user, who cannot control or detect them. The source notes: “Recall across sessions raises different privacy questions… hidden prompts remain invisible. The user cannot control or detect them.”
  • Guard — No guard is shown. The source mentions system prompt analysis as an auditing process in one paper, but it is not a guard embedded in the memory subsystem.
  • Posture — fail‑soft. The system continues across sessions; the privacy violation is undetected and unhalted.
  • Operator signal — Silent absence. The operator has no visibility into the hidden prompts.
  • Recovery — Requires a manual audit of system prompts and memory persistence policies; no automated recovery is described.

Poor Retrieval Index Undermining RAG

  • Trigger — The retrieval index over real documents is of low quality, causing retrieval‑augmented generation (RAG) to retrieve irrelevant or incorrect documents. The source says: “A good retrieval index over real documents is essential.”
  • Guard — No guard is shown for index quality. The source proposes RAG itself as a way to improve factual consistency, but does not provide a specific guard that ensures the index is good.
  • Posture — fail‑soft. RAG continues to run, but the output degrades in factual accuracy.
  • Operator signal — Degraded factual consistency in agent outputs; no explicit error log from the index.
  • Recovery — Manual improvement of the retrieval index; no automated fallback or retry.

Hallucination from Memory Over‑Confidence

  • Trigger — The agent relies on stored memory without verifying its correctness, leading to hallucinated outputs. The source warns: “The agent thinks it knows, but the memory is flawed.”
  • GuardReAct loops are named in the source as a targeted solution for hallucination. ReAct loops introduce reasoning before acting, potentially catching the flaw.
  • Posture — fail‑soft. If the ReAct loop is in place, the agent may retry and degrade gracefully. Without the guard, the agent continues producing hallucinated content.
  • Operator signal — With the guard: retry count visible in the agent’s action trace logs. Without the guard: repeated hallucinated outputs with no warning.
  • Recovery — With ReAct loops, automatic retry triggered by the loop’s reasoning check. Without it, manual intervention is required.
STUDY AIDSevidence-backed memory techniques
Recall check

In Limits Of Agent Memory, what triggers Persistence of Incorrect Information — and how is it caught?

Show answer

The agent stores incorrect information, whether from hallucination, user error, or adversarial input.

Recall check

In Limits Of Agent Memory, what triggers Cross‑Session Privacy Breach — and how is it caught?

Show answer

Data persists across sessions, and hidden prompts (part of the memory) remain invisible to the user, who cannot control or detect them.

Checkpoint — answer before revealing1 of 4
What does an agentic system do that a standard language model cannot?
Put this into practiceRecalling beats rereading — retrieval practice is the best-supported technique in the evidence base.