agentsclimarketplace

Letta failure modes

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

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).From its SKILL.md

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.

2 things to look at

  • 5 stars5 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.
  • runs commandsInstructs the agent to run 3 commands, including `python cli.py benchmark` and 2 more.

SKILL.md

8.7 KB, ~1.8k tokens by cl100k_base, 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.

What ships with it: 2 files

21.7 KB alongside SKILL.md, 2 of them executable

Keep looking

Skills are one crate of 325,949. 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.