Overview#
llama-index-agensgraph is the LlamaIndex integration for
AgensGraph. It provides two storage
backends — a property graph store and a vector store — so you can run LlamaIndex’s
PropertyGraphIndex and VectorStoreIndex directly on AgensGraph, with hybrid search,
metadata filtering, and AgensGraph-tuned Text2Cypher.
Components
Class |
What it does |
|---|---|
|
|
|
|
|
|
|
Optional driver connection pool (sync + async), shared by both stores. |
What you get
Property-graph and vector indexing over a single AgensGraph database, on the
agensgraph-python2.0 driver, with the async methods implemented natively (aquery,async_add,aupsert_nodes,avector_query, …).Each node stored on a label named after its type, with its embedding in a column of its own, so
MATCH (n:"Person")reads only that type’s storage.Metadata-filtered vector search honoring LlamaIndex
MetadataFilters(all 14 filter operators plusAND/OR/NOTand nested groups), translated to parameterized, injection-safe Cypher.Hybrid search that fuses HNSW semantic search with full-text keyword search via reciprocal rank fusion, plus text-search and MMR modes. The mode a query asks for is the one that runs.
AgensGraph-dialect Text2Cypher that matches the storage model, avoiding Neo4j-only syntax, with generated Cypher run read-only through
SafeTextToCypherRetriever.
Note
This documentation covers version 0.3.1, on PyPI. 0.3.1 is a documentation release;
its code is 0.3.0’s. 0.3.0 moved every statement onto the agensgraph-python 2.0 driver,
stores each node on a label named after its type with the embedding in its own column,
runs the search mode a query asks for, and shortens a label name over 63 bytes with a
hash of the whole name. It installs no functions or tables of its own (0.2.0 created three
plpgsql functions); the schema is read from the catalogs. It needs AgensGraph 2.17 or later
and Python 3.11–3.14 (see Installation).
Upgrading from 0.1 or 0.2: those versions kept every node on the single "__Node__"
label, with the type in a labels property. 0.3 cannot read that layout. Every node
comes back labelled __Node__, MATCH (n:"Person") finds nothing, and upserting an
existing entity writes a second copy. Drop the graph and ingest again with 0.3.
Vector-store graphs need no change. Also, pass string parameters to structured_query
as a plain str: a json.dumps’d value now matches nothing. And
AgensQueryException.details now carries the server’s message (0.2 raised it under a
detail key, so details read "unknown").
The old AgensGraphStore (the KnowledgeGraphIndex store) was
removed in 0.2.0 — use AgensPropertyGraphStore with PropertyGraphIndex.