Class: HydeRetriever
Defined in: packages/agentos/src/cognition/rag/HydeRetriever.ts:166
HyDE retriever: generates a hypothetical answer, embeds it, and searches the vector store with adaptive thresholding.
Constructors
Constructor
new HydeRetriever(
opts):HydeRetriever
Defined in: packages/agentos/src/cognition/rag/HydeRetriever.ts:171
Parameters
opts
config?
Partial<HydeConfig>
embeddingManager
llmCaller
Returns
HydeRetriever
Accessors
enabled
Get Signature
get enabled():
boolean
Defined in: packages/agentos/src/cognition/rag/HydeRetriever.ts:182
Whether HyDE is enabled.
Returns
boolean
Methods
generateHypothesis()
generateHypothesis(
query):Promise<{hypothesis:string;latencyMs:number; }>
Defined in: packages/agentos/src/cognition/rag/HydeRetriever.ts:202
Generate a hypothetical answer for a query.
Parameters
query
string
Returns
Promise<{ hypothesis: string; latencyMs: number; }>
generateMultipleHypotheses()
generateMultipleHypotheses(
query,count?):Promise<{hypotheses:string[];latencyMs:number; }>
Defined in: packages/agentos/src/cognition/rag/HydeRetriever.ts:243
Generate multiple hypothetical documents from different perspectives.
Each hypothesis approaches the query from a different angle, improving recall by covering more of the semantic space. Uses chain-of-thought prompting to ensure diverse, high-quality hypotheses.
The system prompt asks the LLM to generate N diverse hypotheses:
- Hypothesis 1: Technical/formal perspective
- Hypothesis 2: Practical/example perspective
- Hypothesis 3: Overview/summary perspective
- (Additional hypotheses explore further angles)
Parameters
query
string
The user query to generate hypotheses for.
count?
number
Number of hypotheses to generate. Default: config.hypothesisCount (3).
Returns
Promise<{ hypotheses: string[]; latencyMs: number; }>
Generated hypotheses and timing.
Throws
If the LLM call fails.
Example
const { hypotheses, latencyMs } = await retriever.generateMultipleHypotheses(
'How does BM25 scoring work?',
3,
);
// hypotheses[0]: Technical explanation with formulas
// hypotheses[1]: Practical example with code
// hypotheses[2]: High-level conceptual overview
retrieve()
retrieve(
opts):Promise<HydeRetrievalResult>
Defined in: packages/agentos/src/cognition/rag/HydeRetriever.ts:438
Embed the hypothesis and search the vector store. Uses adaptive thresholding: starts at initialThreshold, steps down until results are found or minThreshold is reached.
Parameters
opts
collectionName
string
hypothesis?
string
Pre-generated hypothesis (skip generation if provided).
query
string
queryOptions?
Partial<QueryOptions>
vectorStore
Returns
Promise<HydeRetrievalResult>
retrieveContext()
retrieveContext(
opts):Promise<{chunkCount:number;context:string;effectiveThreshold:number;hypothesis:string;latencyMs:number; }>
Defined in: packages/agentos/src/cognition/rag/HydeRetriever.ts:531
Convenience: retrieve and format as augmented context string.
Parameters
opts
collectionName
string
query
string
queryOptions?
Partial<QueryOptions>
separator?
string
vectorStore
Returns
Promise<{ chunkCount: number; context: string; effectiveThreshold: number; hypothesis: string; latencyMs: number; }>
retrieveMulti()
retrieveMulti(
opts):Promise<HydeMultiRetrievalResult>
Defined in: packages/agentos/src/cognition/rag/HydeRetriever.ts:356
Multi-hypothesis retrieval: generates N diverse hypotheses, searches with each, and merges results by deduplication (keeping the highest score per document).
This dramatically improves recall compared to single-hypothesis HyDE because one bad hypothesis doesn't ruin everything — other hypotheses can still find relevant documents from different angles.
Pipeline:
- Generate N hypotheses via generateMultipleHypotheses
- Embed each hypothesis
- Search the vector store with each embedding
- Union all results, deduplicate by document ID, keep highest score
Parameters
opts
Retrieval options.
collectionName
string
Collection to search in.
hypothesisCount?
number
Override hypothesis count for this call.