← Home

Guide

Qdrant

A vector store is where retrieval actually lives. Connect one you already run — Qdrant Cloud or your own server — and your bot can search it instead of guessing. Same connector on Hermes and OpenClaw.

What This Connector Is, Honestly

This is a connected tool, and a REST one. Your bot gets a scoped HTTP client pointed at your Qdrant endpoint — it can list collections, read collection info, and run queries. What it does not do is build the index for you: embedding your documents and writing the points is a job for your own pipeline, and this connector assumes you have one.

If you were hoping to hand a bot a folder and get retrieval, that is a different tool. Look at RAGFlow for an ingest-and-retrieve service, or at Mem0 if what you want is agent memory rather than document search.

Connect It

  1. Open the dashboard, go to Tools, and pick the running bot. Tools are installed per instance.
  2. Find Qdrant and connect it. Put in your endpoint — for example https://your-cluster.qdrant.io or your own https://qdrant.example.com. It has to be HTTPS; the connector refuses plain HTTP, embedded credentials, and query strings or fragments on the endpoint itself.
  3. Set the auth mode to api-key and paste a key.

Pick api-key and not X-API-Key: Qdrant reads a header named literally api-key, and the connector’s X-API-Key option sends a differently spelled one. Bearer also works — Qdrant accepts an API key as Authorization: Bearer too, and that is the form its Cloud documentation shows — so either of those two is fine, including for a granular-access JWT if you have enabled that.

Use a read-only or otherwise scoped key if your Qdrant supports it. The agent only needs to search.

The steps are identical on Hermes Agent and OpenClaw.

Verify It Properly

Qdrant answers /healthz, /livez and /readyz without a key even when authentication is enabled. That makes them a reachability test and nothing more — a green /healthz tells you the DNS, TLS and firewall are fine, and says nothing about whether your key works.

The call that actually proves the credential is a listing:

# Hermes — reachability only
/opt/data/tools/dashboard-api-connectors/qdrant/tool get /healthz

# OpenClaw — this one needs the key to succeed
/home/node/.openclaw/tools/dashboard-api-connectors/qdrant/tool get /collections

Once it is connected you do not drive the client by hand — the agent does. A query goes to POST /collections/{collection}/points/query with a vector you supply.

What the Connector Will and Will Not Allow

  • Paths stay under your endpoint. If you connect https://qdrant.example.com/v1, the client cannot climb out of /v1. Traversal segments and nested encoding are rejected outright.
  • Redirects are refused. The client will not follow one while holding your key, which is deliberate and occasionally surprising — a URL that only works after a redirect needs to be given in its final form.
  • Responses are bounded. A response over 5 MB is refused outright rather than truncated — you get an error, not a partial answer — and a call that goes 120 seconds without data is dropped. Ask for limit on searches rather than pulling a whole collection.

Where It Lands in Your Bot

  • Hermes Agent: skill at /opt/data/skills/openclaw-launch-qdrant.
  • OpenClaw: skill at /home/node/.openclaw/workspace/skills/openclaw-launch-qdrant.

Troubleshooting

  • 401 on everything except the health checks. Almost always the auth mode or the key itself. Reconnect with api-key (or Bearer) and check the key is for this cluster.
  • Connection refused or a TLS error. A self-hosted Qdrant on port 6333 is usually plain HTTP. Put it behind a reverse proxy with a certificate — the connector will not accept an http:// endpoint.
  • Searches return nothing sensible. Check the query vector came from the same embedding model the collection was built with. Mismatched dimensions error; mismatched models of the same dimension silently return noise, which is worse.
  • Timeouts on large queries. A call that stalls for 120 seconds is dropped. Narrow the filter or lower the limit.

Try It

Connect it, ask the bot which collections exist, then ask it to search one and cite what it found. If it can name your collections, the credential is right and the rest is your index.

Related: the Tools catalog, Mem0, RAGFlow, Hermes memory, OpenClaw memory.