Overview
1
Intent Analysis
Analyze query intent, generate 0-5 typed queries
2
Hierarchical Retrieval
Directory-level recursive search using priority queue
3
Rerank
Scalar filtering + model reranking
4
Results
Return contexts sorted by relevance
find() vs search()
OpenViking provides two retrieval APIs with different trade-offs:- find()
- search()
Simple, fast retrieval without session context
Use
find() for simple lookups, search() for complex tasks requiring multiple context types.Stage 1: Intent Analysis
IntentAnalyzer uses LLM to analyze query intent and generate 0-5 typed queries.Input
- Session Context
- Current Query
Output: TypedQuery
Query Styles by Type
- Skill (Verb-first)
- Resource (Noun phrase)
- Memory (User's XX)
Skills are action-oriented, so queries use verbs:
Special Cases
0 queries - Chitchat
0 queries - Chitchat
Greetings and chitchat that don’t need retrieval:
Multiple queries - Complex tasks
Multiple queries - Complex tasks
Complex tasks may need skill + resource + memory:
Stage 2: Hierarchical Retrieval
HierarchicalRetriever uses priority queue to recursively search directory structure.Algorithm Overview
1
Determine root directories
Based on context_type, get starting directories:
2
Global vector search
Search entire vector index to locate high-score starting directories
3
Merge starting points
Combine root directories with global search results, remove duplicates
4
Recursive search
Use priority queue to explore directories recursively (see algorithm below)
5
Convert to MatchedContext
Return sorted results with URIs, abstracts, and scores
Recursive Search Algorithm
Key insight: Score propagation ensures that contexts in high-score directories are prioritized, even if their individual embedding scores are lower.
Visualization
Key Parameters
Stage 3: Rerank
Rerank refines candidate results in THINKING mode using specialized reranking models.Trigger Conditions
- THINKING Mode
- QUICK Mode
Scoring Method
Usage Points
- Starting point evaluation: Evaluate global search candidate directories
- Recursive search: Evaluate children at each level during recursion
Backend Support
Retrieval Results
MatchedContext
FindResult
Usage Example
Complete Example
Related Concepts
Architecture
System architecture and data flow
Storage
Vector index and AGFS
Context Layers
L0/L1/L2 progressive loading
Context Types
Memory, Resource, and Skill types
