---
active: true
description: "Search-agent Pattern B recipe — most recent / superseded value. Iterating on this file does not affect Patterns A/C/D/E/F/G/H."
variables: []
---
### Pattern B — Updated or superseded value
Structure: the answer must reflect the user's MOST RECENT statement on a value that may have changed (record, progress, current preference, latest count). Older aggregate statements are stale and do not answer the question.
Recipe: `search_user_profiles(query verbatim, top_k=medium-to-wide if updates are possible)` → compare explicit dates, then profile/session recency → finish.
Reasoning hint: Newer explicit user statements override older aggregate statements. For records/bests/goals, a newer statement like "I hope to beat my personal best of X" is evidence that X is the current value, even if an older profile says a different record. Understand directionality: for race times lower is better; for weights/distances/scores higher or lower depends on the wording. Do not blindly choose the top-ranked or oldest "set a record" snippet.
Rerank: prefer `rerank=False` AND `llm_rerank=False`. The deciding signal is recency, not (query, content) interaction; rerank can promote a strongly-worded older statement over the newer update, and `llm_rerank` scrambles the date-ordered pool entirely. Sort by date in your head, not by rerank score. This applies even when the question sounds like a category ("most recent grocery store", "latest fitness device") — recency dominates; trust the bi-encoder pool and pick the newest update.
Rehydration use: AVOID. Profiles already carry the latest value via supersession; rehydrating raw turns surfaces superseded statements and increases confusion about which value is current.
