An integration package connecting SurrealDB and LangChain
Project description
The official SurrealDB components for LangChain
langchain-surrealdb
This package contains the LangChain integration with SurrealDB
SurrealDB is a unified, multi-model database purpose-built for AI systems. It combines structured and unstructured data (including vector search, graph traversal, relational queries, full-text search, document storage, and time-series data) into a single ACID-compliant engine, scaling from a 3 MB edge binary to petabyte-scale clusters in the cloud. By eliminating the need for multiple specialized stores, SurrealDB simplifies architectures, reduces latency, and ensures consistency for AI workloads.
Why SurrealDB Matters for GenAI Systems
- One engine for storage and memory: Combine durable storage and fast, agent-friendly memory in a single system, providing all the data your agent needs and removing the need to sync multiple systems.
- One-hop memory for agents: Run vector search, graph traversal, semantic joins, and transactional writes in a single query, giving LLM agents fast, consistent memory access without stitching relational, graph and vector databases together.
- In-place inference and real-time updates: SurrealDB enables agents to run inference next to data and receive millisecond-fresh updates, critical for real-time reasoning and collaboration.
- Versioned, durable context: SurrealDB supports time-travel queries and versioned records, letting agents audit or “replay” past states for consistent, explainable reasoning.
- Plug-and-play agent memory: Expose AI memory as a native concept, making it easy to use SurrealDB as a drop-in backend for AI frameworks.
Installation
Python 3.10+ is required.
# -- Using pip
pip install -U langchain-surrealdb surrealdb
# -- Using uv (preferred for contributors)
uv add langchain-surrealdb surrealdb
Graph QA extra
Experimental graph QA helpers depend on langchain-classic. Install the extra if you
plan to use them:
pip install -U "langchain-surrealdb[graph-qa]"
Local development with uv
# install all dependency groups and extras
uv sync --all-groups --all-extras
# run the test suite
uv run pytest
# run formatting + lint checks
make lint
To exercise the included examples:
cd examples/basic && uv sync && uv run python main.pycd examples/graph && uv sync && uv run python graph.py
Requirements
You can run SurrealDB locally or start with a free SurrealDB cloud account.
For local, two options:
- Install SurrealDB and run SurrealDB. Run in-memory with:
surreal start -u root -p root
docker run --rm --pull always -p 8000:8000 surrealdb/surrealdb:latest start
Simple example
from langchain_core.documents import Document
from langchain_surrealdb.vectorstores import SurrealDBVectorStore
from langchain_ollama import OllamaEmbeddings
from surrealdb import Surreal
conn = Surreal("ws://localhost:8000/rpc")
conn.signin({"username": "root", "password": "root"})
conn.use("langchain", "demo")
vector_store = SurrealDBVectorStore(OllamaEmbeddings(model="llama3.2"), conn)
doc_1 = Document(page_content="foo", metadata={"source": "https://surrealdb.com"})
doc_2 = Document(page_content="SurrealDB", metadata={"source": "https://surrealdb.com"})
vector_store.add_documents(documents=[doc_1, doc_2], ids=["1", "2"])
results = vector_store.similarity_search_with_score(
query="surreal", k=1, custom_filter={"source": "https://surrealdb.com"}
)
for doc, score in results:
print(f"* [SIM={score:3f}] {doc.page_content} [{doc.metadata}]")
Next steps
- look at the basic example. Use the Dockerfile to try it out!
- look at the graph example
- try the jupyter notebook
- Awesome SurrealDB, A curated list of SurrealDB resources, tools, utilities, and applications
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file langchain_surrealdb-0.2.1.tar.gz.
File metadata
- Download URL: langchain_surrealdb-0.2.1.tar.gz
- Upload date:
- Size: 17.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c9f2eadab3e71b3083c6064eba7ea2f06b9f3f2b0c88742295970a124e47fd5
|
|
| MD5 |
ea53a69134dd529788a2939e5ace9108
|
|
| BLAKE2b-256 |
6171a58bf902c70ff3ddfb1fc71f1e52ebd96025a7c24a041b3ec3cdc9d04b53
|
Provenance
The following attestation bundles were made for langchain_surrealdb-0.2.1.tar.gz:
Publisher:
release.yml on surrealdb/langchain-surrealdb
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
langchain_surrealdb-0.2.1.tar.gz -
Subject digest:
0c9f2eadab3e71b3083c6064eba7ea2f06b9f3f2b0c88742295970a124e47fd5 - Sigstore transparency entry: 1109739869
- Sigstore integration time:
-
Permalink:
surrealdb/langchain-surrealdb@6600efc9bf27c59137ddbc0b48e7ede1c7c61c80 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/surrealdb
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6600efc9bf27c59137ddbc0b48e7ede1c7c61c80 -
Trigger Event:
push
-
Statement type:
File details
Details for the file langchain_surrealdb-0.2.1-py3-none-any.whl.
File metadata
- Download URL: langchain_surrealdb-0.2.1-py3-none-any.whl
- Upload date:
- Size: 17.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ab89cdd86bb4825d9d827cf10b3a685c8a2fa09c136a2700c94f6b2cdb984de
|
|
| MD5 |
045646adda8bdee5ce6cfb3e12436ddc
|
|
| BLAKE2b-256 |
3d85ae0f9c9eeec33d068d3eed991b4b02c86bbd8936fbcc94797f5ff8e847d2
|
Provenance
The following attestation bundles were made for langchain_surrealdb-0.2.1-py3-none-any.whl:
Publisher:
release.yml on surrealdb/langchain-surrealdb
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
langchain_surrealdb-0.2.1-py3-none-any.whl -
Subject digest:
4ab89cdd86bb4825d9d827cf10b3a685c8a2fa09c136a2700c94f6b2cdb984de - Sigstore transparency entry: 1109739881
- Sigstore integration time:
-
Permalink:
surrealdb/langchain-surrealdb@6600efc9bf27c59137ddbc0b48e7ede1c7c61c80 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/surrealdb
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6600efc9bf27c59137ddbc0b48e7ede1c7c61c80 -
Trigger Event:
push
-
Statement type: