Skip to main content
View source

FalkorDB

View as Markdown

A RocketRide graph node that translates questions or agent calls into Cypher for FalkorDB; choose it when a FalkorDB graph is the data source rather than an ArangoDB database.

About FalkorDB​

FalkorDB is a graph database that uses Cypher queries and the Redis protocol. A server can host multiple named graphs, which this node can list and select.

What it does​

The node uses the required LLM connection to translate natural-language questions to Cypher, validates the result with EXPLAIN, and returns graph data through a pipeline or tools. It also provides a direct Cypher tool for callers that already have a query. Choose it over graph_arango for FalkorDB and Cypher; normal queries use the server’s read-only operation until writes are explicitly enabled.

Connections​

ConnectionRequiredDescription
llmyesLLM used to craft Cypher from a question.

Lanes​

Lane inLane outDescription
questionstableEmits a table result.
questionstextEmits a text result.
questionsanswersEmits the answer result.

As a tool​

The registered tool names are the bare method names below (an agent catalog namespaces them by the pipeline component id, not by the services.json prefix). It registers its FalkorDB-specific tools plus the inherited graph-tool surface.

FunctionDescription
get_dataRequires a non-empty question; optional limit is clamped to the graph row cap. Returns sanitized rows, generated query, applied limit, and truncation state; generation/execution failure returns error, valid: false, and no rows.
get_schemaTakes no meaningful arguments and returns reflected labels, node properties, and relationships.
get_queryRequires a non-empty question, with optional limit; returns validated read-only Cypher and valid: true, or an error/off-topic answer with valid: false.
executeRequires raw query and runs it without LLM translation; it raises an error unless allow_execute is enabled, and fails when the result exceeds the execute row cap.
dialectTakes no meaningful arguments and returns {dialect: "falkordb"}.
queryRequires non-empty cypher; accepts optional object params and optional graph. Returns columns, serialized rows, count, and truncation state; Redis failures return error with empty rows.
list_graphsTakes no arguments and returns graph names, or error with an empty graph list on a Redis failure.

Profiles​

Default: Manual configuration (host and port) (default).

ProfileModelContext
default (default)Manual configurationUses host and port fields.
urlFalkorDB URLUses the supplied connection string.

Configuration​

Select Manual configuration for host and port fields, or the URL profile for a connection string. Both profiles include graph, LLM context, query safety, result caps, and timeout settings; begin with the defaults and adjust only for the actual graph and workload.

Connection and credentials​

The manual profile passes host, port, optional username/password, and TLS to the FalkorDB client. The URL profile requires a falkor://, falkors://, redis://, rediss://, or unix:// URL. If a Password field is set with a URL, the node removes an embedded password and uses the field value, so the two cannot silently disagree.

Graph description and retries​

graph selects the named graph when a tool caller does not supply one, defaulting to agent when left blank. Unless allow_writes or allow_execute is on, the node checks at save time and at pipeline start that this graph actually exists on the server, since FalkorDB otherwise accepts a query against a missing graph and only fails later, on the first result, with a Redis-level error that gives no hint the graph itself was the problem. With a write path enabled, no such check runs, since FalkorDB creates a graph lazily on its first write. db_description is supplied to the LLM when it writes Cypher; add labels, relationships, and domain language when generation targets the wrong shape. max_attempts defaults to five and controls how often a rejected EXPLAIN result is repaired.

Write access, row caps, and timeout​

allow_writes defaults to false, using GRAPH.RO_QUERY so the server rejects write clauses. Enable it only for a trusted workload; direct query then uses GRAPH.QUERY and can return write statistics. max_rows truncates ordinary results and marks them truncated; max_execute_rows makes oversized direct-execute results fail. query_timeout_ms bounds a single server query.

Authentication​

Manual connections can omit credentials or provide the configured username and password. URL connections may carry credentials, but the separate Password field takes precedence when present. The node probes the connection at startup, so malformed connection settings, an unavailable server, or (in read-only mode) a configured graph that does not exist all fail before a tool call, rather than surfacing as a Redis error on the first query.

Notes​

Result representation​

The direct query tool serializes graph nodes, relationships, paths, maps, lists, and temporal values into JSON-safe values. It returns no more than the configured row cap, allowing agents to recognize broad results through the truncated flag.

Upstream docs​

Schema​

FieldTypeDescriptionDefault
graph_falkordb.allow_executebooleanAllow Execute
Enable the execute tool, which runs raw Cypher with no LLM translation and no read-only gate. Leave OFF unless a trusted application explicitly needs to issue Cypher directly.
false
graph_falkordb.allow_writesbooleanAllow Writes
Permit CREATE/MERGE/SET/DELETE in the query tool. When off, queries run via GRAPH.RO_QUERY and the server itself rejects write clauses.
false
graph_falkordb.db_descriptionstringGraph Description
What is this graph used for? Describe its content and domain, this helps the LLM generate more accurate Cypher queries.
""
graph_falkordb.graphstringDefault Graph
A FalkorDB server hosts many graphs. This is the one queried when the caller does not name another.
"agent"
graph_falkordb.hoststringHost
FalkorDB host, e.g. localhost or your-instance.falkordb.cloud.
"localhost"
graph_falkordb.max_attemptsintegerMax Validation Attempts
Maximum number of times to re-ask the LLM if EXPLAIN rejects the generated Cypher query.
5
graph_falkordb.max_execute_rowsintegerMax Execute Rows
Upper cap on rows returned by the execute tool. The query fails if exceeded, so one statement cannot exhaust worker memory.
25000
graph_falkordb.max_rowsintegerMax Rows
Upper cap on rows returned per query. Results beyond it are cut and flagged as truncated.
250
graph_falkordb.passwordstringPassword
Password for the FalkorDB instance. Stored encrypted. When set it is the one used, replacing any password embedded in the FalkorDB URL. Leave empty for no auth, or to use the one the URL already carries.
""
graph_falkordb.portintegerPort
FalkorDB port (Redis protocol). FalkorDB Cloud assigns a per-instance port.
6379
graph_falkordb.profilestringConnection
How this node connects to FalkorDB
"default"
graph_falkordb.query_timeout_msintegerQuery Timeout (ms)
Server-side timeout for a single query.
30000
graph_falkordb.tlsbooleanTLS
Connect with TLS. Required by FalkorDB Cloud TLS endpoints.
false
graph_falkordb.urlstringFalkorDB URL
Connection string as shown in the FalkorDB Cloud console, e.g. falkor://falkordb@r-xxxx.instance-yyyy.cloud:53939. Use falkors:// for TLS. The URL may carry credentials, so it is stored encrypted; the password can also be left out of it and typed in the Password field below, which then replaces whatever the URL embeds.
""
graph_falkordb.usernamestringUsername
Username, e.g. "default" for FalkorDB Cloud. Leave empty for no auth.
""

Dependencies​

  • falkordb >=1.6,<2
  • redis >=7.1,<8