Qdrant Edge
QdrantOfficialPublished by Qdrant
- Skill
- Tool integration
- Data and AI
- Apache-2.0
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
Qdrant Edge is an in-process vector engine for Python and Rust. This skill provides essential guidance on managing local shards, implementing synchronization patterns between Edge and Qdrant Cloud, and leveraging built-in features like BM25 and hybrid search. It emphasizes avoiding common pitfalls such as manual snapshot manipulation or redundant implementation of features already supported by the engine.
What it does
- Explains the dual-shard pattern for keeping local data in sync with remote server snapshots.
- Details how to implement hybrid search using built-in BM25 and fusion capabilities.
- Provides instructions for manual shard optimization and index management.
- Clarifies the division of responsibility between the Edge engine and application-level code.
- Outlines the correct usage of snapshot tools for data updates and backups.
When to use it
- When designing synchronization logic between local devices and a central Qdrant server.
- When implementing keyword or hybrid search within an embedded application.
- When troubleshooting stale search results or performance issues after bulk data inserts.
- When determining whether a feature is natively supported by Edge or requires custom implementation.
Advantages
- Prevents redundant development by highlighting built-in engine capabilities.
- Ensures stable and performant shard operations through recommended maintenance patterns.
- Provides clear architectural guidance for handling offline-first or edge-computing scenarios.
- Reduces integration errors by defining the boundaries of the embedded engine's API.
Usage examples
- “How do I keep my local Qdrant Edge shard updated with my Qdrant Cloud collection?”
- The agent explains the dual-shard pattern, recommending an immutable shard for server data and a mutable shard for local writes, and outlines the process for applying partial snapshots.
- “Why are my search results empty after I insert data into Qdrant Edge?”
- The agent identifies that Edge lacks a background optimizer and instructs the user to call the optimize method to build indexes and reclaim space.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/qdrant/qdrant-edge/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip qdrant-edge.zip -d .agents/skills
Documentation by Qdrant
Building on Qdrant Edge
Edge is the Qdrant engine embedded in your process (Python or Rust), not a thin local vector store to wrap. The failure mode is rebuilding what the shard already ships: keyword scoring, snapshot apply, faceting, counting. Before writing any of that, check the shard API. One thing Edge does NOT give you is a one-call cloud sync, so knowing what is built in keeps you from both reinventing built-ins and expecting capabilities Edge lacks. Edge is single-node and shares the server's data format.
Edge is in beta: pin your version, the API drifts between releases Qdrant Edge.
Syncing a Shard with a Qdrant Server
Use when: seeding a shard from a server, keeping it fresh, backing it up, or aggregating many devices into one collection.
There is no built-in .sync(). Sync is a pattern you assemble from shard helpers plus your own transport, so do not go looking for one call.
Follow the documented dual-shard pattern: a
mutableshard for local writes plus animmutableshard restored from a server snapshot, query both, refresh on a schedule Edge synchronization guide.You write the snapshot download (plain HTTP to the shard snapshot endpoint), then apply it with
unpack_snapshotandupdate_from_snapshot. Do not untar or merge segments by hand Synchronization patterns.Refresh incrementally with a partial snapshot built from
snapshot_manifest, not a full snapshot every cycle Synchronization patterns.Push is your own dual-write: on each local upsert, enqueue the point and let a background worker upsert it to the server, buffering while offline Synchronization patterns.
Keyword and Hybrid Search on Device
Use when: you need exact-term or BM25 matching, alone or alongside vectors.
BM25 is built into Edge (
Bm25,Bm25Config,embed_document,embed_query) with the IDFModifieronEdgeSparseVectorParams, and is wire-compatible with the server's sparse vector BM25 model (Edge BM25 docs cover only the sparse vector variant): a shard seeded from a server snapshot answers local BM25 queries without re-indexing. Do not ship a second BM25 library Edge BM25Dense embeddings are NOT in Edge: generate them on device with the separate
fastembedpackage FastEmbed embeddingsFor hybrid search, run the dense and sparse legs as
prefetchesand fuse them with aFusionquery in a singlequerycall, instead of combining rankings in application code Reading data
Operating the Shard
Use when: writes have accumulated, search looks stale after inserts, or a backup is larger than the data.
Edge has NO background optimizer. Call
optimizeafter bulk writes: it builds indexes (including the sparse index) and reclaims deleted points. Skip it and that data stays unindexed Edge quickstartFaceting, counting, and enumeration are built in (
facet,count,scroll); index the fields you filter or facet withcreate_field_indexrather than aggregating in application code Edge quickstartThe write-ahead log is pre-allocated to 32 MB and inflates apparent disk and backup size. Shrink it with
wal_options(Rust), and do not treat raw file size as real usage Edge quickstart
What NOT to Do
Expect a bidirectional
.sync()or a built-in push path: Edge gives you snapshot apply, you own the transport and the dual-writeUntar or merge snapshot segments by hand instead of using
unpack_snapshotandupdate_from_snapshotShip a custom or third-party BM25 when Edge has one built in
Use
embed_documentfor queries orembed_queryfor documents: the weighting differs and results go wrongCombine dense and sparse rankings in application code: Edge
queryacceptsprefetchesand fuses them with aFusionqueryAssume a background optimizer like the server's: nothing is indexed or compacted until you call
optimizeReach for Edge when you need distributed or multi-node search: it is single-node Qdrant Edge
Claim support for a language beyond Python and Rust, or an OS or accelerator the Edge docs do not state
Files
- ATTRIBUTION.mdAdded by AutoGineer834 B
- LICENSELicence file added by AutoGineer11.1 KiB
- SKILL.md5.3 KiB
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs Node.js
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- Qdrant
- Publisher
- Qdrant (Official)
- Source
- qdrant/skills · skills/qdrant-edge · commit 9f55f6a
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Qdrant.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download qdrant-edge.zip