verify
verify lets a search run additional passes. Each pass excludes what earlier passes returned, so a second pass reaches memories the first did not.
Supported on Tablet 2 and newer. Asking an engine that does not implement it is refused before the call is made, so you are never charged for a pass that silently did nothing.
An integer 0-3 on search and recall. It is the number of additional passes, so 3 allows four retrievals. Default 0.
hits = mem.search("what did I eat", verify=3)
# the SDKs hand back the memories; `verify_used` is on the HTTP response (curl tab)No language model runs in that loop
Passes carry the ids already returned; the engine excludes them and searches past them. The query is not reformulated, so results are deterministic for a given request and no model credentials are involved. Your code decides whether to spend another pass.
What you send and what comes back
| Call | What it does |
|---|---|
| verify | 0 to 3. Additional passes permitted. Out of range is rejected with a 400 rather than quietly clamped. |
| verify_used | How many additional passes were actually made. Can be lower than what you asked for. |
Passes stop early when one returns nothing new, and unused passes are not billed. If a later pass fails, the results gathered so far are returned.
Extra passes can lower accuracy when the first pass already held the answer - single-session-user questions on LongMemEval-S drop 4.2 points. The gain scales with how often one retrieval misses, so it is larger on big stores.