Neo4j
The Neo4jTools toolkit enables agents to interact with Neo4j graph databases for querying and managing graph data.
Neo4jTools enables agents to interact with Neo4j graph databases for querying and managing graph data.
Prerequisites
The following example requires the neo4j library.
uv pip install -U neo4jYou will also need a Neo4j database. The following example uses a Neo4j database running in a Docker container.
docker run -d -p 7474:7474 -p 7687:7687 --name neo4j -e NEO4J_AUTH=neo4j/password neo4jMake sure to set the NEO4J_URI environment variable to the URI of the Neo4j database.
export NEO4J_URI=bolt://localhost:7687
export NEO4J_USERNAME=neo4j
export NEO4J_PASSWORD=password
export OPENAI_API_KEY=xxxInstall dependencies
uv pip install -U neo4j openai agnoExample
The following agent can interact with Neo4j graph databases:
from agno.agent import Agent
from agno.tools.neo4j import Neo4jTools
agent = Agent(
instructions=[
"You are a graph database assistant that helps with Neo4j operations",
"Execute Cypher queries to analyze graph data and relationships",
"Provide insights about graph structure and patterns",
"Help with graph data modeling and optimization",
],
tools=[Neo4jTools()],
)
agent.print_response("Show me the schema of the graph database", stream=True)Save the code above as neo4j_tools.py, then run:
python neo4j_tools.pyToolkit Params
| Parameter | Type | Default | Description |
|---|---|---|---|
uri | Optional[str] | None | Neo4j connection URI. Uses NEO4J_URI if not set, then bolt://localhost:7687. |
user | Optional[str] | None | Neo4j username. Uses NEO4J_USERNAME if not set. |
password | Optional[str] | None | Neo4j password. Uses NEO4J_PASSWORD if not set. |
database | Optional[str] | None | Database name to connect to. Defaults to neo4j. |
enable_list_labels | bool | True | Enable listing node labels. |
enable_list_relationships | bool | True | Enable listing relationship types. |
enable_get_schema | bool | True | Enable schema information retrieval. |
enable_run_cypher | bool | True | Enable Cypher query execution. |
all | bool | False | Enables all functionality when set to True. |
Toolkit Functions
| Function | Description |
|---|---|
list_labels | List all node labels in the graph database. |
list_relationship_types | List all relationship types in the graph database. |
get_schema | Get comprehensive schema information about the graph. |
run_cypher_query | Execute Cypher queries on the graph database. |