Zep
Add a user, a thread, and messages, then pull a user-context summary back — all from the docs on the first try. Errors are good: a bad role, a missing thread, or a duplicate user id each return a plain message plus a request_id. The catch is timing — graph extraction is asynchronous and slow. A fact you add isn't searchable immediately and can take ten seconds to over a minute to appear. On the upside, re-adding an identical fact didn't multiply it. Read Zep as eventually consistent, not read-after-write.
Cross-validated onClaude Opus 4.8
The five tasks
Getting started from the docs aloneNailed it
Fixing its own mistake after an errorNailed it
Following a multi-step flowNailed it
Handling an unclear edge caseNailed it
Here’s the receipt — what actually happened, not our summary of it.
Docs don't cover read-after-write timing. Probed safely: graph.add(fact) then an immediate graph.search returned 0 results; after ~10s the same search returned 3 edges. Graph writes are asynchronous / eventually consistent, not instant.
Not double-charging on a retryNailed it
See everything the AI did (8 steps)
t1 Claude Opus 4.8 user.add + thread.create + add_messages → ok, write accepted t2 Claude Opus 4.8 add_messages to nonexistent thread → 404 thread not found + request_id t3 Claude Opus 4.8 add_messages bad role → 400 invalid role type banana t4 Claude Opus 4.8 user.add duplicate id → 400 user already exists t5 Claude Opus 4.8 get_user_context(thread) → 200 USER_SUMMARY t6 Claude Opus 4.8 graph.add then immediate search → 0 results (async) t7 Claude Opus 4.8 wait 10s then search → 3 edges populated t8 Claude Opus 4.8 re-add identical fact, poll to stable → 2 facts not 4, no duplication
Tested 2026-07-02 with Claude Opus 4.8 agents · request a re-test