Nodes/ComfyUI Griptape Nodes/Griptape Vector Store Driver: Redis
ComfyUI Node

Griptape Vector Store Driver: Redis

Redis as a vector store? Only with RediSearch, and here's the catch

By griptape-ai·Created 2 years ago·Updated about a year ago· 238
Griptape Vector Store Driver: Redis
  • embedding_driver
  • DRIVER
host_envREDIS_HOST
port_envREDIS_PORT
password_envREDIS_PASSWORD
index_envREDIS_INDEX

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 (default REDIS_HOST) - your Redis host.
  • port_env (default REDIS_PORT) - the port.
  • password_env (default REDIS_PASSWORD) - auth, if your instance uses one. The tooltip is blunt: do not put the actual password in this field.
  • index_env (default REDIS_INDEX) - the RediSearch index name.
  • embedding_driver - as with the rest of the pack, empty means OpenAI if OPENAI_API_KEY is 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.

CategoryGriptape/Agent Drivers/Vector Store

Inputs (5)

NameTypeDefaultDescription
embedding_driveroptEMBEDDING_DRIVERSelect an embedding driver or leave as default.
host_envoptSTRINGREDIS_HOSTEnvironment variable name for the Redis host
port_envoptSTRINGREDIS_PORTEnvironment variable name for the Redis port
password_envoptSTRINGREDIS_PASSWORDEnvironment variable name for the Redis password. Do not include the actual password here.
index_envoptSTRINGREDIS_INDEXEnvironment variable name for the Redis index

Outputs (1)

NameTypeDescription
DRIVERVECTOR_STORE_DRIVER