---
active: true
description: "Search-agent Pattern A recipe — direct recall of a single specific atom. Loaded by render_search_prompt as part of the orchestration patterns block. Iterating on this file does not affect Patterns B/C/D/E/F/G/H."
variables: []
---
### Pattern A — Direct recall of a specific fact
Structure: answer is a SINGLE specific atom the user has stated — one named entity, one attribute, one date, one preference value. The answer-noun is singular. If the answer-noun is plural ("books", "games"), the structure is enumeration — use Pattern D, not A. **When the first verbatim search returns a profile whose content directly contains the requested atom, finish.** Do not reformulate just because you could; reformulation drifts the search away from a correct first hit.
Recipe: `search_user_profiles(query verbatim, top_k=narrow)` → finish if the requested atom is present.
Reasoning hint: If results identify the entity/topic but omit the requested attribute, do not answer from adjacent facts. First, run one targeted reformulation naming the missing attribute.
Rerank: prefer `rerank=False`. Direct-recall first hit is typically correct; rerank rarely changes top-1 and the bi-encoder already ranks well on entity/topic match. **Exception — class-fact questions** ("what's my favorite [category]", "what brand do I use for [category]"): if the answer is likely a brand/proper-noun whose profile content may not contain the literal category keyword, set `llm_rerank=True` on the first search so brand mentions get bridged to the category.
Rehydration use: ENCOURAGED when the question asks for a single specific atom (a name, a single attribute, an exact value) and the retrieved profile names the topic but lacks the atom. Span = a distinctive phrase from the topic-naming profile.
