Skip to main content
OpenViking uses a two-stage retrieval mechanism: intent analysis + hierarchical retrieval + rerank, enabling accurate context discovery across complex directory structures.

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
OpenViking provides two retrieval APIs with different trade-offs:
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

Output: TypedQuery

Query Styles by Type

Skills are action-oriented, so queries use verbs:

Special Cases

Greetings and chitchat that don’t need retrieval:
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

Scoring Method

Usage Points

  1. Starting point evaluation: Evaluate global search candidate directories
  2. Recursive search: Evaluate children at each level during recursion

Backend Support

Retrieval Results

MatchedContext

FindResult

Usage Example

Complete Example

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