Griptape Vector Store Driver: Redis
Redis as a vector store? Only with RediSearch, and here's the catch
- embedding_driver
- DRIVER
Redis is the database you already have lying around, and it can be a vector store - with a serious asterisk. Plain Redis is a key-value store with no concept of similarity search. What makes this driver work is the RediSearch module, which adds vector similarity indexing on top. If your Redis instance doesn't have RediSearch loaded (check MODULE LIST), this node will connect fine and then do nothing useful. Once that's handled, though, it's a genuinely nice option: you bolt semantic memory onto infrastructure that probably isn't costing you anything extra.
How it works
The driver reads connection details from environment variables and builds a RedisVectorStoreDriver that targets a RediSearch vector index. The inputs are all env-var names, not values:
host_env(defaultREDIS_HOST) - your Redis host.port_env(defaultREDIS_PORT) - the port.password_env(defaultREDIS_PASSWORD) - auth, if your instance uses one. The tooltip is blunt: do not put the actual password in this field.index_env(defaultREDIS_INDEX) - the RediSearch index name.embedding_driver- as with the rest of the pack, empty means OpenAI ifOPENAI_API_KEYis set, otherwise a dummy embedding driver.
Output is DRIVER (VECTOR_STORE_DRIVER), wired through the Griptape Structure Config node into Create Agent, then used by the Griptape Vector Store: Query node.
Where the code gets weird
Peek at the source and there's a genuine quirk worth knowing: the node's create method reads the index env var name via a key that doesn't match the index_env field exposed in the UI. The practical effect is that the index environment variable is effectively locked to REDIS_INDEX - changing the name in the field doesn't stick. Fine if you use the default; mildly annoying if you tried to be clever with a custom env name. It's the kind of bug you hit, assume is your fault, and waste an hour on.
The other trap is the RediSearch setup itself. The index isn't created by the driver - you need the module installed and an index defined for your vector dimensions before the first write. Get the vector dimensions wrong and every subsequent query falls over. This is the highest-friction driver in the pack, and I'd only reach for it if Redis is already your stack.
Install
Pack install as usual: ComfyUI Manager → search "Griptape" → INSTALL, or git clone https://github.com/griptape-ai/ComfyUI-Griptape into custom_nodes, restart. Dependencies come with it (griptape[all], python-dotenv), and the standard pack gotcha applies - the bundled torch build can fight ComfyUI's, and the README's torch fix is the cure. For Redis itself, use an image with RediSearch (redis/redis-stack) or you'll be debugging an empty index before you ever see a result.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| embedding_driveropt | EMBEDDING_DRIVER | Select an embedding driver or leave as default. | |
| host_envopt | STRING | REDIS_HOST | Environment variable name for the Redis host |
| port_envopt | STRING | REDIS_PORT | Environment variable name for the Redis port |
| password_envopt | STRING | REDIS_PASSWORD | Environment variable name for the Redis password. Do not include the actual password here. |
| index_envopt | STRING | REDIS_INDEX | Environment variable name for the Redis index |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| DRIVER | VECTOR_STORE_DRIVER | — |