Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions modules/ROOT/content-nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ Generic Start
** xref:new-console.adoc[New Neo4j Aura console]
** xref:visual-tour/index.adoc[Visual tour]

* xref:graph-analytics/index.adoc[]

* Quick start
** xref:getting-started/create-account.adoc[Create an account]
** xref:getting-started/create-instance.adoc[Create an instance]
Expand Down Expand Up @@ -43,6 +41,10 @@ Generic Start
** xref:import/indexes-and-constraints.adoc[Indexes and constraints]
** xref:import/import.adoc[Run the import]

* xref:graph-analytics/index.adoc[]

* xref:aura-agent.adoc[Aura agent]


* Explore data
** xref:explore/introduction.adoc[What is Explore?]
Expand Down
Binary file added modules/ROOT/images/agent.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added modules/ROOT/images/cypher-template.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added modules/ROOT/images/similarity-search.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added modules/ROOT/images/text2cypher.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
152 changes: 152 additions & 0 deletions modules/ROOT/pages/aura-agent.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
[[aura-agent]]
= Aura Agent
:description: This page describes the creation and capabilities of Aura GraphRAG Agent.

label:AuraDB-Free[]
label:AuraDB-Professional[]
label:AuraDB-Business-Critical[]

Aura Agent is a no/low-code agent-creation platform that allows you to build, test, and deploy GraphRAG agents contextualized by your own knowledge graph in AuraDB.

Aura takes care of the orchestration layer as well as the integration with GenAI model/LLMs and provides different iterative tools that allows your agent to provide the right context to the LLM.

You can test the agent and iterate on it directly in the UI.

Once you are satisfied with your agent, you can either share it internally with other members of your Aura project, or you can make it available externally via an Aura API endpoint and thus integrate it into your system.

To get started you need a knowledge graph in a running AuraDB instance and you need to enable *Generative AI assistance* in the xref:visual-tour/index.adoc#org-settings[Organization settings].

== Creating an Agent

Navigate to *Agents* in the left-hand menu and use the *Create* button to start creating your agent.

[.shadow]
.Create an Agent
image::agent.jpg[width=300]

You need to give the agent a name (it is advisable to use a descriptive name), a description, and prompt instructions.
The more detailed you are in the description and prompt instructions, the better your agent will operate.

Then you need to specify which AuraDB instance the agent should target.
Keep in mind that the selected instance *must* be running.

You can make the agent externally available right away, but it is recommended to keep it internal while testing it.
You can change the agent's availability at any time.

Then you can start adding the tools that will allow your agent to retrieve specific data from your graph, or to convert questions to Cypher queries.
Keep in mind that currently the agent only supports *read only* queries against the database.
The tools are described in detail in the following section.

== Tools

Aura Agent has three tools available:

* *Cypher Template*
* *Similarity Search*
* *Text2Cypher*


Consider your dataset and its underlying datamodel when you configure the tools to ensure your agent has access to the right ways of retrieving *only* the right information.

=== Cypher Template

This tool executes pre-defined, parameterized Cypher queries against the database and returns the results to the agent.
The values for the parameters are provided by the user.
It works in the same way as other Cypher queries you write but are reusable by the agent.

This tool is best for:

* Common and repeated questions
* Predictable results
* Complex queries
* Well-defined business logic patterns

You need to provide a *name* and a *description* for the tool.
Again, the better the description, the better your agent will perform.
If your query contains *parameters*, these need to be defined with a *name*, *data type*, and *description*.

[.shadow]
.Cypher Template tool
image::cypher-template.jpg[width=400]

For best performance, make sure that the query:

* Returns only relevant information
* Returns only select node and relationship properties
* Does not return embeddings or graph elements like node/relationship/paths
* Does not return duplicates

Additionally, it is advisable to limit the results to 10-50 rows to keep the results relevant.
Also, always test the Cypher statement to make sure they work as expected.

=== Similarity Search

This tool uses vector similarity to do a semantic search and is a great complement to the Cypher template tool.
The similarity search finds the semantically similar entities and the Cypher template can find connections between these, which provides relevant context for the agent.

This tool is best for:

* Document search
* Content discovery
* Finding similar clauses or terms
* Semantic matching

Note that the similarity search requires *text embeddings* and the presence of a *vector index* in your database.
Aura Agent currently supports embeddings generated with the following text embedding providers and models:

* OpenAI: `text-embedding-3-small`, `text-embedding-3-large`, and `text-embedding-ada-002`.
* Vertex AI: `gemini-embedding-001`, `text-embedding-005`, and `text-multi-lingual-embedding-00`.

For more information about vectors and embeddings, see the link:{neo4j-docs-base-uri}/cypher-manual/current/indexes/semantic-indexes/vector-indexes/#embeddings[Cypher Manual -> Vectors and embeddings in Neo4j] and link:{{neo4j-docs-base-uri}}/cypher-manual/current/indexes/semantic-indexes/vector-indexes/[Cypher Manual -> Vector indexes].

You need to provide

[.shadow]
.Similarity search tool
image::similarity-search.jpg[width=400]


=== Text2Cypher

This tool transforms natural language questions into Cypher queries and allows the agent to retrieve data dynamically.
In essence, the tool takes the question, adds the database schema and the Text2Cypher system prompt to it, and presents these to a fine-tuned model.
The model then generates a Cypher query for the tool to execute.

The Text2Cypher tool is best for:

* Questions that can't be predicted in advance
* Structural queries like aggregations

[.shadow]
.Text2Cypher tool
image::text2cypher.jpg[width=400]

You need to give the tool a name and a description.
To improve reliability of its answers, it is important that both name and description are as clear as possible to constrain the tool's usage.

The instructions should include:

* When to use the Text2Cypher tool (and when not)
* Specific aspects about your database and domain
* Relevant entities and especially information about searchable categorical properties, e.g. shape of identifiers.
* Which attributes are suitable for aggregation

As a best practice, make sure the description explicitly instructs the agent to use this tool only when no other option applies.

[NOTE]
====
The Text2Cypher tool relies on an LLM and this can potentially result in queries that contain inconsistencies or logical errors.
Therefore, use caution when deploying Text2Cypher in production.
====












Loading