Official agent skill

Qdrant Model Migration

by qdrant in qdrant/skills

Guides embedding model migration in Qdrant without downtime.

OfficialApache-2.0Auto-check passedAI & LLM Engineering

Install Qdrant Model Migration

skills CLI
$ npx skills add qdrant/skills --skill qdrant-model-migration -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install qdrant/skills qdrant-model-migration --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/qdrant/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/qdrant-model-migration .claude/skills/qdrant-model-migration && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
qdrant-model-migration
GitHub stars
253
Used in
2 other repos
Token cost
~2.3k tokens
SKILL.md length
1,010 words
Files
1
Skills in repo
33
Repo updated
First seen
Licence
Apache-2.0

At a glance

Guides embedding model migration in Qdrant without downtime.

  • Someone asks how to switch embedding models
  • SKILL.md covers Can I Avoid Re-embedding?, Need Zero Downtime, Need Both Models Live… and Dense to Hybrid Search Migration, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • How to migrate vectors

What it does

Qdrant Model Migration is an agent skill from qdrant/skills, published by the product's own GitHub organization. Guides embedding model migration in Qdrant without downtime. Use when someone asks 'how to switch embedding models', 'how to migrate vectors', 'how to update to a new model', 'zero-downtime model change', 'how to re-embed my data', or 'can I use two models at once'. Also use when upgrading model dimensions, switching providers, or A/B testing models.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in AI & LLM Engineering, covering Embeddings and Vector databases. It works with Qdrant. The repository describes itself as: Agent skills for Qdrant vector search: scaling, performance optimization, search quality, monitoring, deployment, model migration, version upgrades, and SDK usage across Python…. The licence is Apache-2.0.

When your agent uses it

  • Someone asks how to switch embedding models
  • How to migrate vectors
  • How to update to a new model
  • Zero-downtime model change

Example prompts

  • “how to switch embedding models”
  • “how to migrate vectors”
  • “how to update to a new model”
  • “/qdrant-model-migration”

What it can do on your machine

Read from SKILL.md and the folder at commit 476a18d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • skills.qdrant.tech

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Qdrant Model Migration loads about 2.3k tokens when it runs. Until then it costs about 94 tokens; SKILL.md has 1,010 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~94
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from qdrant/skills at commit 476a18d, republished under its Apache-2.0 licence (© qdrant). 1,010 words, ~2,285 tokens.

Download SKILL.mdSave it as .claude/skills/qdrant-model-migration/SKILL.md (or your agent's skills folder).
name
qdrant-model-migration
description
Guides embedding model migration in Qdrant without downtime. Use when someone asks 'how to switch embedding models', 'how to migrate vectors', 'how to update to a new model', 'zero-downtime model change', 'how to re-embed my data', or 'can I use two models at once'. Also use when upgrading model dimensions, switching providers, or A/B testing models.

What to Do When Changing Embedding Models

Vectors from different models are incompatible. You cannot mix old and new embeddings in the same vector space. On v1.18+, you can add or delete named vector fields on an existing collection — migration no longer always requires a new collection. On v1.17 or earlier, all named vectors must be defined at collection creation time.

Can I Avoid Re-embedding?

Use when: looking for shortcuts before committing to full migration.

You MUST re-embed if: changing model provider (OpenAI to Cohere), changing architecture (CLIP to BGE), or switching to a model with a different dimension count.

You do NOT need to re-embed existing dense vectors if:

  • Adding sparse vectors for hybrid search: generate only the sparse vectors. On v1.18+, add the sparse field to the existing collection and backfill it with UpdateVectors. On v1.17 or earlier, copy the dense vectors into the new collection instead of recomputing them Update vectors
  • Using Matryoshka models: use the dimensions parameter to output lower-dimensional embeddings (some recall loss, good for 100M+ datasets)
  • Changing quantization (binary to scalar): Qdrant re-quantizes automatically Quantization

Need Zero Downtime

Use when: production must stay available. Recommended for model replacement at scale.

  • Enable dual writes before backfill, preserving point IDs. Retry and reconcile failed writes to either destination Migration workflow

  • If the cluster is v1.18 or later AND the collection has named vectors:

    • Add the new vector field directly to the existing collection Update vector schema
    • Write both embeddings on incoming upserts; backfill only the new field with UpdateVectors. Pause updates/deletes to existing points and drain in-flight operations first, or implement conflict handling to prevent stale backfill Named-vector migration
    • After validating completeness and quality, switch the query embedding model and using together; an alias cannot select a vector field
  • If the cluster is v1.17 or earlier OR the collection doesn't have named vectors:

    • Create a new collection with the new model's dimensions and distance metric
    • Dual-write live upserts to both collections; backfill embeddings and payloads with update_mode: insert_only (v1.17+) to preserve points already written live. Pause deletes/partial updates or reconcile them so backfill cannot resurrect deleted data Blue-green migration
    • Point your application at a collection alias instead of a direct collection name
    • Validate completeness and quality before swapping the alias; coordinate the query-model change so requests use the matching vector space Switch collection

Keep dual writes through an observation period for rollback. Retire old vectors or collections only after all readers switch and rollback is no longer needed. Aliases redirect requests; they do not copy payloads.

Need Both Models Live (Side-by-Side)

Use when: A/B testing models, multi-modal (dense + sparse), or evaluating a new model before committing.

For a live collection, apply the write-consistency and cutover safeguards in Need Zero Downtime.

  • If the cluster is v1.18 or later:

  • If the cluster is v1.17 or earlier: You cannot add a named vector to an existing collection. Create a new collection with both vector fields defined upfront:

    • Create new collection with old and new named vectors both defined Collection with multiple vectors
    • Migrate data from old collection, preserving existing vectors in the old named field
    • Backfill new model embeddings incrementally using UpdateVectors Update vectors
    • Compare quality by querying with using: "old_model" vs using: "new_model"
    • Swap alias to new collection once satisfied

Co-locating large multi-vectors (especially ColBERT) with dense vectors degrades ALL queries, even those only using dense. At millions of points, users report 13s latency dropping to 2s after removing ColBERT. Put large vectors on disk during side-by-side migration.

If you anticipate future model migrations, define both vector fields upfront at collection creation.

Show full SKILL.md (385 more words)Show less

Dense to Hybrid Search Migration

Use when: adding sparse/BM25 vectors to an existing dense-only collection. Most common migration pattern.

  • If the cluster is v1.18 or later, add the sparse vector field directly, even if the dense vector is unnamed Update vector schema

    • Generate sparse vectors for existing points and backfill with UpdateVectors; existing dense vectors stay as they are Update vectors
  • If the cluster is v1.17 or earlier, you cannot add sparse vectors to an existing collection. Recreate it:

    • Create new collection with both dense and sparse vector configs defined
    • Scroll the old collection with with_vectors=True to copy the dense vectors, and generate only the sparse vectors
    • Migrate payloads, swap alias

Sparse vectors at chunk level have different TF-IDF characteristics than document level. Test retrieval quality after migration, especially for non-English text without stop-word removal.

Re-embedding Is Too Slow

Use when: dataset is large and re-embedding is the bottleneck.

  • Use update_mode: insert_only (v1.17+) for backfill into a new collection; it skips existing destination points, so it is not a replacement for UpdateVectors when adding embeddings to existing points Update mode
  • Scroll the old collection with with_vectors=False, re-embed in batches, upsert into new collection
  • Upload in parallel batches (64-256 points per request, 2-4 parallel streams) Bulk upload
  • For a new destination collection not yet serving queries, consider raising optimizers_config.indexing_threshold to delay HNSW construction during bulk load. Restore the original value and let indexing finish before cutover; avoid applying this blindly to an in-place migration serving searches Optimizer configuration
  • For Qdrant Cloud inference, switching models is a config change, not a pipeline change Inference docs

For 400GB+ datasets, expect days. For small datasets (<25MB), re-indexing from source is faster than using the migration tool.

What NOT to Do

  • Assume you can add named vectors to an existing collection on v1.17 or earlier servers; check your server version first
  • Delete old vectors or collections before validation, reader cutover, and the rollback observation period
  • Assume dual writes or insert_only alone resolve concurrent deletes and partial updates
  • Forget to update the query embedding model in your application code
  • Skip payload migration when using alias swap (aliases redirect requests, they do not copy data)
  • Keep ColBERT vectors co-located with dense vectors during a long migration (I/O cost degrades all queries)
  • Migrate to hybrid search without testing BM25 quality at chunk level

© qdrant, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/qdrant-model-migration of qdrant/skills.

Open the folder on GitHubat commit 476a18d

Used in 2 other repositories

We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in qdrant/skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Qdrant Model Migration next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Qdrant Model Migration compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Qdrant Model Migration this skillqdrant/skills2532 repos~2.3kAutomated safety check: PassApache-2.0
Codebase Managementgiancarloerra/SocratiCode3.3k1 repos~1.8kAutomated safety check: PassAGPL-3.0
RAG Implementationwshobson/agents40k9 repos~1.1kAutomated safety check: PassMIT
Hunt RAG Vectorelementalsouls/Claude-BugHunter4.8k—~2.6kAutomated safety check: PassMIT
Qdrant Search Quality Diagnosisgithub/awesome-copilot40k1 repos~928Automated safety check: PassMIT
Qdrant Search Qualitygithub/awesome-copilot40k1 repos~336Automated safety check: PassMIT

Similar skills

  • Codebase Management

    giancarloerra/SocratiCode

    Set up, index, and manage SocratiCode codebase indexing. An agent skill from giancarloerra/SocratiCode.

    3.3k GitHub starsUsed in 1 repo~1.8k tokens
    AI & LLM EngineeringAuto-check passed
  • RAG Implementation

    wshobson/agents

    Build retrieval-augmented generation systems: pick a vector database and embedding model, choose retrieval and reranking strategies, and start from a LangGraph pipeline.

    40k GitHub starsUsed in 9 repos~1.1k tokens
    AI & LLM EngineeringAuto-check passed
  • Hunt RAG Vector

    elementalsouls/Claude-BugHunter

    Hunt vector-store / embedding-layer weaknesses in RAG pipelines (OWASP LLM08 Vector and Embedding Weaknesses) — persistent corpus poisoning that survives across sessions and users (distinct from…

    4.8k GitHub stars~2.6k tokensUpdated yesterday
    AI & LLM EngineeringAuto-check passed
  • Qdrant Search Quality Diagnosis

    github/awesome-copilot

    Official

    Diagnoses Qdrant search quality issues. An agent skill from github/awesome-copilot.

    40k GitHub starsUsed in 1 repo~928 tokens
    AI & LLM EngineeringAuto-check passed
  • Qdrant Search Quality

    github/awesome-copilot

    Official

    Diagnoses and improves Qdrant search relevance. An agent skill from github/awesome-copilot.

    40k GitHub starsUsed in 1 repo~336 tokens
    AI & LLM EngineeringAuto-check passed
  • Index

    softspark/ai-toolkit

    Reindexes KB for semantic search via vector store (Qdrant). An agent skill from softspark/ai-toolkit.

    179 GitHub stars~840 tokensUpdated today
    AI & LLM EngineeringAuto-check: notes

More from qdrant/skills

All 33 skills in this repo
  • Qdrant Clients SDK

    qdrant/skills

    Official

    Qdrant provides client SDKs for various programming languages, allowing easy integration with Qdrant deployments.

    253 GitHub starsUsed in 2 repos~752 tokens
    Auto-check: notes
  • Qdrant Advisor

    qdrant/skills

    Official

    Diagnose, troubleshoot, and advise on any Qdrant deployment by loading the latest official Qdrant skills live from skills.qdrant.tech.

    253 GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed
  • Official

    Guides Qdrant deployment selection. An agent skill from qdrant/skills.

    253 GitHub starsUsed in 2 repos~976 tokens
    Auto-check passed
  • Official

    Guides Qdrant search strategy selection. An agent skill from qdrant/skills.

    253 GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Official

    Diagnoses and guides Qdrant horizontal scaling decisions. An agent skill from qdrant/skills.

    253 GitHub starsUsed in 2 repos~833 tokens
    Auto-check passed

Works with

Questions about Qdrant Model Migration

What does Qdrant Model Migration do?

Guides embedding model migration in Qdrant without downtime. Qdrant Model Migration is an agent skill from qdrant/skills, published by the product's own GitHub organization. Guides embedding model migration in Qdrant without downtime.

When should I use Qdrant Model Migration?

Qdrant Model Migration fits situations like: someone asks how to switch embedding models; how to migrate vectors; how to update to a new model; zero-downtime model change.

How do I install Qdrant Model Migration in Claude Code?

Run `npx skills add qdrant/skills --skill qdrant-model-migration -a claude-code`. Or copy the skill folder (skills/qdrant-model-migration in qdrant/skills) into .claude/skills/qdrant-model-migration in your project. Claude Code loads it when a task matches its description.

How do I install Qdrant Model Migration in Codex?

Run `npx skills add qdrant/skills --skill qdrant-model-migration -a codex`. Or copy the skill folder (skills/qdrant-model-migration in qdrant/skills) into .agents/skills/qdrant-model-migration in your project. Codex loads it when a task matches its description.

Can I use Qdrant Model Migration in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add qdrant/skills --skill qdrant-model-migration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/qdrant-model-migration, .gemini/skills/qdrant-model-migration, .github/skills/qdrant-model-migration and .opencode/skills/qdrant-model-migration in your project.

What does Qdrant Model Migration need to run?

SKILL.md names no scripts, command-line tools or credentials: Qdrant Model Migration is instructions for the agent only.

Does Qdrant Model Migration access the network?

SKILL.md names 1 domain. As links in the text: skills.qdrant.tech. This is read from the text; nothing was executed.

Is Qdrant Model Migration safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Qdrant Model Migration use?

Qdrant Model Migration is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Qdrant Model Migration use?

About 2.3k tokens (SKILL.md is roughly 9.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Qdrant Model Migration?

Skills that share tags, products or a category with Qdrant Model Migration: Codebase Management (giancarloerra/SocratiCode, 3.3k stars), RAG Implementation (wshobson/agents, 40k stars), Hunt RAG Vector (elementalsouls/Claude-BugHunter, 4.8k stars) and Qdrant Search Quality Diagnosis (github/awesome-copilot, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Qdrant Model Migration?

qdrant (a GitHub organization, an official publisher) maintains it in qdrant/skills, which has 253 GitHub stars. The repository holds 33 skills in this directory. The repository was last updated on October 6, 2026.

Source: qdrant/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.