# Installation ## Requirements - **Python** 3.11–3.14. On Python 3.10, pip installs 0.2.0 instead, without an error, and these pages do not describe it. - A running **AgensGraph** 2.17 or later. An older server is refused at connect. - The **pgvector** extension, for the vector store and `AgensStore` semantic search Every database call goes through the [`agensgraph-python`](https://github.com/skaiworldwide-oss/agensgraph-python) 2.0 driver (psycopg 3), which is installed with the package. The integration targets `langchain-core` 1.x and `langgraph` 1.x, and has **no dependency on the archived `langchain-community`**. ## Install ```bash pip install -U langchain-agensgraph ``` or through the `agensgraph-ai` umbrella package, which installs the same thing: ```bash pip install "agensgraph-ai[langchain]" ``` There is no `agensgraph_ai` module; either way you import `langchain_agensgraph`. This documentation covers **0.3.1**. 0.3.1 is a documentation release; its code is 0.3.0's. The examples that embed text or call an LLM use `langchain-openai`, which is not a dependency. Install it separately if you want to run them as written: ```bash pip install langchain-openai ``` ## Set up pgvector AgensGraph does not bundle the `pgvector` extension. Build and install it against your AgensGraph install's `pg_config`: ```bash git clone https://github.com/pgvector/pgvector.git export PG_CONFIG=/path/to/agens/bin/pg_config cd pgvector && make && make install ``` ```sql -- in your AgensGraph database, as a superuser: CREATE EXTENSION IF NOT EXISTS vector; ``` On a large graph, enabling `auto_gather_graphmeta` on the database (`ALTER DATABASE mydb SET auto_gather_graphmeta = on`) makes `DETACH DELETE` much faster. ## Connecting `AgensGraph`, `AgensChatMessageHistory`, `AgensSaver`, and `AgensStore` accept a `conf` dictionary of `psycopg.connect` keyword arguments. The last three can instead take an existing `AgensGraph` as `graph=`: ```python conf = { "dbname": "mydb", "user": "postgres", "password": "postgres", "host": "localhost", "port": 55432, } ``` The vector store takes a libpq `url` instead, such as `postgresql://user:password@localhost:55432/mydb`, or reads it from the `AGENSGRAPH_URL` environment variable. It can also be built on an existing `AgensGraph` (`graph=`). To share one connection pool between the graph store and several vector stores, create an `AgensEngine` and pass it as `engine=`. Pass `create=True` to have the graph store create the graph if it does not exist. See [Usage](usage.md) for full examples.