Skip to main content
View source

ArangoDB

View as Markdown

A RocketRide graph database node that translates questions into validated AQL for ArangoDB; choose it for an ArangoDB multi-model database rather than a Cypher graph service.

About ArangoDB​

ArangoDB is a database designed to work with document and graph data. It supports AQL for querying documents, edges, graphs, and search views through one database interface.

What it does​

The node reflects collections, named graphs, and ArangoSearch views, then uses its required LLM connection to build read-only AQL from a question. It can run in a pipeline or as an agent tool. Generated AQL is checked with EXPLAIN, which rejects plans containing data-modification nodes; choose it over graph_falkordb when the data is in ArangoDB and AQL is the target query language.

Connections​

ConnectionRequiredDescription
llmyesLLM used to craft AQL from a question.

Lanes​

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

As a tool​

The registered tool names are the bare method names get_data, get_schema, and get_aql; an agent catalog namespaces them by the pipeline component id, not by the services.json prefix.

FunctionDescription
get_dataRequires a non-empty question; optional limit is clamped. Returns rows, executed AQL, and the applied row limit, or an error with empty rows.
get_schemaAccepts an optional collection filter and returns the database, collections, graphs, and views. An unknown collection returns error.
get_aqlRequires a non-empty question; returns a validated read-only AQL query and valid: true, or error/answer with valid: false.

Configuration​

Configure the endpoint, database, credentials, and an accurate database description before using natural-language queries. The description and reflected schema are provided to the LLM, so improve it when generated AQL targets the wrong collections or relationships.

Database description and validation attempts​

db_description gives the LLM domain context. Start with a concise explanation of the collections and relationships, then add detail if retries produce invalid AQL. max_attempts defaults to five and controls re-generation after EXPLAIN rejects a query; raise it for a difficult schema only if the connected LLM needs more repair attempts.

Result limits and direct execution​

max_execute_rows caps raw QuestionType.EXECUTE results; a query above the cap fails rather than streaming unbounded rows. allow_execute is false by default. Enable it only for a trusted caller, because that path runs raw AQL without LLM translation or the normal read-only gate.

Authentication​

The default userpass method uses user and password; a blank user falls back to root. The token method passes the configured bearer/JWT token to the ArangoDB client. Startup verifies the configured database and performs a RETURN 1 probe, so connection and permission failures surface before processing questions.

Limitations​

The node declares noremote, so it is intended for a deployment that can directly reach its ArangoDB endpoint. Normal natural-language and tool queries are read-only; direct execution is a separate trusted-caller option and must be explicitly enabled.

Notes​

Pipeline question types​

QuestionType.DIALECT emits {"dialect": "arango"} on answers. QuestionType.EXECUTE is rejected with a warning until allow_execute is enabled; when enabled, it may report affected_rows for writes that return no rows.

Upstream docs​

Schema​

FieldTypeDescriptionDefault
arangodb.allow_executebooleanAllow direct query execution
Permit QuestionType.EXECUTE callers to run raw AQL without LLM translation or safety checks. Leave OFF unless a trusted application explicitly needs to issue AQL directly.
false
arangodb.auth_methodstringAuthentication"userpass"
arangodb.databasestringDatabase name
Name of the ArangoDB database to query. '_system' is the built-in default — point this at your application database.
"_system"
arangodb.db_descriptionstringDatabase description
What is this database used for? Describe its collections, graphs and domain — this helps the LLM generate more accurate AQL queries.
""
arangodb.endpointstringConnection endpoint
HTTP(S) endpoint for the ArangoDB server. Use http://host:8529 for self-host/Docker, or https://.arangodb.cloud:8529 for ArangoGraph cloud (TLS).
"http://localhost:8529"
arangodb.max_attemptsintegerMax validation attempts
Maximum number of times to re-ask the LLM if EXPLAIN rejects the generated AQL query
5
arangodb.max_execute_rowsintegerMax result rows
Maximum number of rows returned by a query. Also caps the raw EXECUTE path; a query that exceeds it fails rather than streaming unbounded results.
25000
arangodb.passwordstringPassword
Password to authenticate with the ArangoDB instance.
arangodb.profilestring"default"
arangodb.tokenstringBearer token
JWT bearer token for token-based authentication (e.g. ArangoGraph cloud).
arangodb.userstringUser
Username to authenticate with ArangoDB. Defaults to 'root'.
"root"

Dependencies​

  • python-arango