mentedb-langchain
MenteDB helpers for LangChain and LangGraph: a conversation memory, a retriever, and a chat history, each backed by a local MenteDB database.
Installation
pip install mentedb-langchain
Status
MenteDBMemory, MenteDBRetriever and MenteDBChatHistory follow the method
names of LangChain's memory, retriever and chat history interfaces, but they do
not subclass LangChain's base classes. LangChain rejects them when they are
passed directly to chains such as ConversationChain(memory=...) or
RetrievalQA.from_chain_type(retriever=...) (checked with LangChain 0.3).
Call their methods from your own code or graph nodes, as shown below.
Only one MenteDB instance can open a data directory at a time. Give each
component its own data_dir, or share one object. agent_id, when set, must
be a UUID string.
Components
MenteDBMemory
Stores each turn as an episodic memory and loads the most similar stored memories (top 10 by similarity search) for the next input.
from mentedb_langchain import MenteDBMemory
memory = MenteDBMemory(data_dir="./agent-memory")
memory.save_context(
inputs={"input": "What database should I use for time series data?"},
outputs={"output": "TimescaleDB is a good fit."},
)
context = memory.load_memory_variables({"input": "Tell me more about that database"})
# -> {"history": "User: ...\nAssistant: ..."}
MenteDBRetriever
Similarity search with an optional tag filter (all listed tags must match). Results are dicts shaped like LangChain documents.
from mentedb_langchain import MenteDBRetriever
retriever = MenteDBRetriever(data_dir="./docs-memory", k=10, tags=["backend"])
docs = retriever.get_relevant_documents("database migration decisions")
# -> [{"page_content": ..., "metadata": {"id", "score", "memory_type", "tags"}}]
MenteDBChatHistory
Stores every message in MenteDB as an episodic memory tagged with the session
id. messages returns the messages added through this object as
{"role", "content"} dicts; it does not reload earlier sessions from disk.
from mentedb_langchain import MenteDBChatHistory
history = MenteDBChatHistory(session_id="session-123", data_dir="./chat-memory")
history.add_user_message("What database should I use?")
history.add_ai_message("I recommend PostgreSQL for your use case.")
messages = history.messages
Usage with LangGraph
Use MenteDBMemory as a context source inside graph nodes:
from mentedb_langchain import MenteDBMemory
memory = MenteDBMemory(data_dir="./graph-memory")
def plan_node(state):
context = memory.load_memory_variables({"input": state["task"]})
return {**state, "context": context}
def reflect_node(state):
memory.save_context(
inputs={"input": state["task"]},
outputs={"output": state["result"]},
)
return state
Configuration
| Parameter | Default | Description |
|---|---|---|
data_dir |
./mentedb-data |
Path to the MenteDB data directory |
agent_id |
None |
Optional agent UUID stored as the memory owner (not used to filter searches) |
token_budget |
4096 |
Accepted by MenteDBMemory but currently not applied |
k |
10 |
Number of results to return (MenteDBRetriever) |
tags |
None |
Tag filter for retrieval (MenteDBRetriever) |
License
Apache 2.0
Metadata
Release files for mentedb-langchain 0.41.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mentedb_langchain-0.41.0.tar.gz | 3.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mentedb_langchain-0.41.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.3 kB
Release files / mentedb_langchain-0.41.0.tar.gz
| Download URL | mentedb_langchain-0.41.0.tar.gz |
|---|---|
| Size | 3.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
84e41be3ad76ec7db1c3d350914d3d49187258e65c0515afb0be29674f398323
|
|
BLAKE2b-256 checksum How to use checksums |
eab4c13c58a38f27a12d80ffe4941c83987121020532afbd16492ffc9e52c7a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logRelease files / mentedb_langchain-0.41.0-py3-none-any.whl
| Download URL | mentedb_langchain-0.41.0-py3-none-any.whl |
|---|---|
| Size | 5.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
11a58d31ed1d5f563280fd1addd8cb39ccc890fab34abeb8db69b9d98ea66d82
|
|
BLAKE2b-256 checksum How to use checksums |
b025778ae0a36db4e9d9cccbad83f14cced17c121f4dc5a63f38c3e29a8729d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency log