New to configuration?See the Setup Configuration Overview for the complete workflow:install extras → create
.env → choose providers → handle pruning.Supported Providers
Cognee supports multiple graph store options:- Kuzu — Local file-based graph database (default)
- Kuzu-remote — Kuzu with HTTP API access
- Neo4j — Production-ready graph database
- Neptune — Amazon Neptune cloud graph database
- Neptune Analytics — Amazon Neptune Analytics hybrid solution
Configuration
Environment Variables
Environment Variables
Set these environment variables in your
.env file:GRAPH_DATABASE_PROVIDER— The graph store provider (kuzu, kuzu-remote, neo4j, neptune, neptune_analytics)GRAPH_DATABASE_URL— Database URL or connection stringGRAPH_DATABASE_USERNAME— Database username (optional)GRAPH_DATABASE_PASSWORD— Database password (optional)GRAPH_DATABASE_NAME— Database name (optional)
Setup Guides
Kuzu (Default)
Kuzu (Default)
Kuzu is file-based and requires no network setup. It’s perfect for local development and single-user scenarios.Installation: Kuzu is included by default with Cognee. No additional installation required.Data Location: The graph is stored on disk. Path defaults under the Cognee system directory and is created automatically.
Concurrency Limitation: Kuzu uses file-based locking and is not suitable for concurrent use from different agents or processes. For multi-agent scenarios, use Neo4j instead.
Kuzu (Remote API)
Kuzu (Remote API)
Use Kuzu with an HTTP API when you need remote access or want to run Kuzu as a service.Installation: Requires a running Kuzu service exposing an HTTP API.
Neo4j
Neo4j
Neo4j is recommended for production environments and multi-user scenarios.Installation: Install Neo4j extras:Docker Setup: Start the bundled Neo4j service with APOC + GDS plugins:
Neptune (Graph-only)
Neptune (Graph-only)
Use Amazon Neptune for cloud-based graph storage.Installation: Install Neptune extras:Note: AWS credentials should be configured via environment variables or AWS SDK.
Neptune Analytics (Hybrid)
Neptune Analytics (Hybrid)
Use Amazon Neptune Analytics as a hybrid vector + graph backend.Installation: Install Neptune extras:Note: This is the same as the vector store configuration. Neptune Analytics serves both purposes.
Advanced Options
Backend Access Control
Backend Access Control
Enable per-user dataset isolation for multi-tenant scenarios.This feature is available for Kuzu and other supported graph stores.
Provider Comparison
Graph Store Comparison
Graph Store Comparison
| Provider | Setup | Performance | Use Case |
|---|---|---|---|
| Kuzu | Zero setup | Good | Local development |
| Kuzu-remote | Server required | Good | Remote access |
| Neo4j | Server required | Excellent | Production |
| Neptune | AWS required | Excellent | Cloud solution |
| Neptune Analytics | AWS required | Excellent | Hybrid cloud solution |
Important Considerations
Data Location
Data Location
- Local providers (Kuzu): Graph files are created automatically under
SYSTEM_ROOT_DIRECTORY - Remote providers (Neo4j, Neptune): Require running services or cloud setup
- Path management: Local graphs are managed automatically, no manual path configuration needed
Performance Notes
Performance Notes
- Kuzu: Single-file storage with good local performance
- Neo4j: Excellent for production workloads with proper indexing
- Neptune: Cloud-scale performance with managed infrastructure
- Hybrid solutions: Combine graph and vector capabilities in one system
Notes
- Backend Access Control: When enabled, Kuzu supports per-user dataset isolation
- Path Management: Local Kuzu databases are created automatically under the system directory
- Cloud Integration: Neptune providers require AWS credentials and proper IAM permissions