openadapt-retrieval

January 17, 2026 ยท View on GitHub

Multimodal trajectory retrieval for few-shot policy learning.

Repository: OpenAdaptAI/openadapt-retrieval

Installation

pip install openadapt[retrieval]
# or
pip install openadapt-retrieval

Overview

The retrieval package enables:

  • Semantic search over demonstration trajectories
  • Few-shot example selection for policy learning
  • Multimodal similarity (text + image)
  • Demonstration library management

Use Cases

Few-Shot Policy Learning

Find similar demonstrations to use as examples when learning agent policies.

Trajectory Transfer

Retrieve relevant demonstration trajectories for new tasks.

Demonstration Discovery

Search your library of demonstration trajectories.

Python API

from openadapt_retrieval import DemoIndex, retrieve_similar

# Build an index over your demonstrations
index = DemoIndex()
index.add_demonstrations(["task-1", "task-2", "task-3"])

# Retrieve similar demonstration trajectories
observation = load_screenshot()
similar = index.search(
    query_image=observation,
    query_text="click the submit button",
    top_k=3
)

for result in similar:
    print(f"{result.demonstration_name}: {result.similarity:.2f}")

Integration with Policy Learning

from openadapt_ml import AgentPolicy
from openadapt_retrieval import DemoIndex

# Create policy with retrieval augmentation
index = DemoIndex.load("demo_index.pkl")
policy = AgentPolicy.from_checkpoint(
    "model.pt",
    retrieval_index=index
)

# Policy uses similar trajectory examples for few-shot learning
observation = load_screenshot()
action = policy.predict(observation, use_retrieval=True)

CLI Commands

Build Index

openadapt retrieval index --captures task-1 task-2 task-3
openadapt retrieval search --image screenshot.png --text "click submit"

List Indexed Demonstrations

openadapt retrieval list

Key Exports

ExportDescription
DemoIndexDemonstration trajectory index
retrieve_similarSimilarity search
EmbeddingVector embedding
SearchResultSearch result data

Embedding Models

ModelDimensionsModality
clip-vit-l768Image + Text
siglip-so400m1152Image + Text
custom--

Index Storage

Indexes are stored as pickle files:

indexes/
  demo_index.pkl      # Main index
  embeddings.npy      # Vector embeddings
  metadata.json       # Demonstration metadata

Performance

Index SizeSearch TimeMemory
100 demos<10ms50MB
1,000 demos<50ms500MB
10,000 demos<200ms5GB