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