agentsclimarketplace

Letta failure modes

Skill AnthonyAlcaraz/agentic-graph-rag-skills/skills/memory/letta-failure-modes

Companion repo for Agentic Graph RAG (O'Reilly, Anthony Alcaraz & Sam Julien) — 50 runnable skills + 8 pedagogical notebooks covering all eight chapters, on one moto-mocked AWS DevOps scenario

Install
npx -y skills add AnthonyAlcaraz/agentic-graph-rag-skills --skill letta-failure-modes

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Reviewer skill: diagnose an agent's memory architecture against the 8 Letta Leaderboard failure modes (Ch4). Takes a memory snapshot (or a description of the architecture) and reports which failure modes are present, with concrete evidence and recommended fixes. Use BEFORE shipping any memory implementation to production and BEFORE root-causing why a deployed agent "forgets" or "drifts." NOT a benchmark (does not produce a single accuracy number), NOT a substitute for production observability (this is a static diagnostic, not a runtime monitor).

SKILL.md

8.7 KB, as published. Nobody here has run it

Letta 8-Failure-Modes Diagnostic

Overview

The Letta Leaderboard for benchmarking agentic memory names eight distinct failure modes that tend to co-occur (Ch4):

  1. No-retrieval-when-available — model fails to recognize when relevant info is already in memory; issues unnecessary searches.
  2. Hierarchy-collapse — trivia in prime memory; critical facts archived or dropped.
  3. In-conversation-misses — agent misses key pieces of info even when present in the immediate context.
  4. Volume-degradation — retrieval accuracy degrades as data volume grows; performance drops at scale.
  5. Silent-overwrite — new info overwrites old facts instead of being layered; system cannot explain how or why things changed.
  6. Cross-reference-failure — related info isolated in separate silos; no pattern recognition.
  7. Temporal-blur — event timelines blur; agent loses temporal coherence.
  8. Threshold-collapse — works at hundreds of facts, quietly collapses at thousands.

This skill takes a snapshot of an agent's memory state (or a structural description) and reports which of these 8 are present, with evidence and recommended fixes. It runs static analysis — no agent inference loop required.

When to Use

  • Pre-launch review of a new memory implementation
  • Root-cause analysis when an agent in production is "forgetting" or "drifting"
  • Periodic audit (weekly / monthly) on long-running agents
  • Code review of a colleague's memory layer

Phrases: "audit my memory architecture", "why is my agent forgetting", "is my memory production-ready", "Letta Leaderboard", "memory diagnostic".

When NOT to Use

  • Single failure mode you've already identified. If you know it's silent-overwrite, just go fix it; this skill's value is the cross-cutting audit, not the depth on one mode.
  • Runtime monitor. This is a static diagnostic. Production needs metrics + alerts, not periodic full-audit invocation.
  • Benchmark/eval. This does not produce a comparable accuracy number. For Letta Leaderboard scoring, run the actual benchmark suite.

Process

StepInputActionOutputVerification
1Memory snapshot dict OR architecture description JSONlib.diagnose(snapshot)DiagnosticReport with 8 entries (one per failure mode)report covers all 8 modes; each entry has status ∈ {ok, warning, present}; severity score 0-3
2Reportlib.format_text(report)Human-readable diagnosticevery "present" mode includes evidence + fix recommendation
3Reportlib.format_json(report)machine-readable JSONround-trip serializable
4Reportlib.total_score(report)int 0-24 (sum of severities)0 = production-ready; ≥10 = ship at risk; ≥18 = do not ship
5Scenario namecli.py scenario broken-vs-cleanshowcase that EXERCISES all 8 modes: an anti-pattern snapshot triggers all 8 (present) and a clean composed snapshot triggers 0broken reports 8 present, clean reports 0

Diagnostic Heuristics (per failure mode)

ModeStatic signalThreshold
No-retrieval-when-availablerecall layer is empty or query log not preservedrecall.size == 0 with mature memory
Hierarchy-collapse>50% short-lived facts in core OR durable facts > 50% in archival vs core(composes with hierarchical-memory.diagnostics)
In-conversation-missesextract_fn not wired up — interactions logged but no facts promotedrecall.size > 5 AND core.size == 0
Volume-degradationretrieval method is linear-scan with no indexflagged via architecture description tag
Silent-overwriteedges have no valid_until mechanism / no invalidation_reasonflagged if bi-temporal-edge primitive is absent
Cross-reference-failureaverage node degree < 1 OR graph is a forest with many disconnected componentscomponents > nodes/10
Temporal-blurtimestamps not preserved on edges / factsfacts without created_at
Threshold-collapsecore_limit OR retrieval pipeline declared O(n) on architecture formsize-test scenario fails at 10x scale

Rationalizations

Agent rationalizationDocumented rebuttal
"My agent works fine on the demo — I'll skip the audit."Demo workloads are small. The Ch4 anchor: "Systems that work acceptably with hundreds of facts quietly collapse when exposed to thousands." Threshold-collapse is the failure mode that hides best in demos.
"I'll fix the failures as users complain."The first 7 failure modes are silent — the agent "feels" wrong without producing a single error log. You will not know which mode to fix unless you scan for them.
"I'll skip diagnostics for short-lived agents."Short-lived agents that suffer in-conversation-misses still produce wrong answers. The discipline is cheap (one call); the failure cost is incident-response time.
"I already use a hierarchical memory — that covers most of these."Letta-style hierarchy covers 1, 2, 3, and partially 8. The other 4 (silent-overwrite, cross-reference-failure, temporal-blur, volume-degradation) are orthogonal and need separate primitives (bi-temporal-edge, graphiti-incremental-update, indexed retrieval). The hierarchy alone is necessary, not sufficient.
"The diagnostic scoring is arbitrary."The 0-24 score is a forcing function. The Ch4 chapter quote — "The quality of memory management directly determines agent performance on long-running tasks" — converts to a single number that goes up when memory degrades. Track the number.

Red Flags

  • All 8 modes flagged ok. Either the diagnostic is broken (likely) or the architecture is exceptional (suspicious — verify by running a size-stress scenario).
  • silent-overwrite flagged with no bi-temporal-edge. The fix is mechanical: integrate bi-temporal-edge for the affected relationships.
  • hierarchy-collapse and volume-degradation both flagged. The memory architecture is unrescuable without a redesign; recommend switching to a structured 3-tier hierarchy (composes with hierarchical-memory).
  • temporal-blur flagged on a regulated-domain agent. Compliance blocker — fix before shipping.

Non-Negotiable Verification

  1. Run the benchmark battery. python cli.py benchmark must report:
    • all 8 failure modes detectable from a synthesized broken memory
    • no false-positives on a known-clean memory built from the other three Ch4 skills (bi-temporal-edge + hierarchical-memory + graphiti-incremental-update)
    • round-trip report serialize / deserialize
  2. Run the showcase scenario. python cli.py scenario broken-vs-clean reports 8 vs 0 failure modes respectively.
  3. Verify CLI help. python cli.py --help exits 0 and prints SKILL.md.

Security Posture

  • Prompt injection. Memory snapshots and architecture descriptions are untrusted input analyzed statically - nothing in them is executed. The risk is a crafted snapshot that hides its failure modes to earn a false clean report; diagnose real exported state, not a hand-written summary.
  • Data exfiltration. Snapshots contain actual memory content (facts, conversation traces). No network calls, no file writes; the diagnostic report goes to stdout and the caller owns where it flows.
  • Privilege escalation. No shell invocation, no eval, no dynamic import. A zero-failure-mode report is advisory - it is a static diagnostic, not a production go-ahead, and does not replace runtime observability.

Source Attribution

Distilled from Agentic GraphRAG (O'Reilly, by Anthony Alcaraz and Sam Julien), Chapter 4 — The Problem section (Letta Leaderboard 8 failure modes). Composes with sibling Ch4 skills: bi-temporal-edge / hierarchical-memory / graphiti-incremental-update.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.