LangChain Reference home pageLangChain ReferenceLangChain Reference
  • GitHub
  • Main Docs
Deep Agents
LangChain
LangGraph
Integrations
LangSmith
  • Overview
  • MCP Adapters
    • Overview
    • Agents
    • Callbacks
    • Chains
    • Chat models
    • Embeddings
    • Evaluation
    • Globals
    • Hub
    • Memory
    • Output parsers
    • Retrievers
    • Runnables
    • LangSmith
    • Storage
    Standard Tests
    Text Splitters
    ⌘I

    LangChain Assistant

    Ask a question to get started

    Enter to send•Shift+Enter new line

    Menu

    MCP Adapters
    OverviewAgentsCallbacksChainsChat modelsEmbeddingsEvaluationGlobalsHubMemoryOutput parsersRetrieversRunnablesLangSmithStorage
    Standard Tests
    Text Splitters
    Language
    Theme
    Pythonlangchain-classicmemoryvectorstore_token_buffer_memory
    Module●Since v1.0

    vectorstore_token_buffer_memory

    Class for a conversation memory buffer with older messages stored in a vectorstore .

    This implements a conversation memory in which the messages are stored in a memory buffer up to a specified token limit. When the limit is exceeded, older messages are saved to a VectorStore backing database. The VectorStore can be made persistent across sessions.

    Attributes

    attribute
    DEFAULT_HISTORY_TEMPLATE: str
    attribute
    TIMESTAMP_FORMAT: str

    Classes

    class
    ConversationVectorStoreTokenBufferMemory

    Conversation chat memory with token limit and vectordb backing.

    load_memory_variables() will return a dict with the key "history". It contains background information retrieved from the vector store plus recent lines of the current conversation.

    To help the LLM understand the part of the conversation stored in the vectorstore, each interaction is timestamped and the current date and time is also provided in the history. A side effect of this is that the LLM will have access to the current date and time.

    Initialization arguments:

    This class accepts all the initialization arguments of ConversationTokenBufferMemory, such as llm. In addition, it accepts the following additional arguments

    retriever: (required) A VectorStoreRetriever object to use
        as the vector backing store
    
    split_chunk_size: (optional, 1000) Token chunk split size
        for long messages generated by the AI
    
    previous_history_template: (optional) Template used to format
        the contents of the prompt history
    

    Example using ChromaDB:

    from langchain_classic.memory.token_buffer_vectorstore_memory import (
        ConversationVectorStoreTokenBufferMemory,
    )
    from langchain_chroma import Chroma
    from langchain_community.embeddings import HuggingFaceInstructEmbeddings
    from langchain_openai import OpenAI
    
    embedder = HuggingFaceInstructEmbeddings(
        query_instruction="Represent the query for retrieval: "
    )
    chroma = Chroma(
        collection_name="demo",
        embedding_function=embedder,
        collection_metadata={"hnsw:space": "cosine"},
    )
    
    retriever = chroma.as_retriever(
        search_type="similarity_score_threshold",
        search_kwargs={
            "k": 5,
            "score_threshold": 0.75,
        },
    )
    
    conversation_memory = ConversationVectorStoreTokenBufferMemory(
        return_messages=True,
        llm=OpenAI(),
        retriever=retriever,
        max_token_limit=1000,
    )
    
    conversation_memory.save_context({"Human": "Hi there"}, {"AI": "Nice to meet you!"})
    conversation_memory.save_context(
        {"Human": "Nice day isn't it?"}, {"AI": "I love Wednesdays."}
    )
    conversation_memory.load_memory_variables({"input": "What time is it?"})
    deprecatedclass
    ConversationTokenBufferMemory

    Conversation chat memory with token limit.

    Keeps only the most recent messages in the conversation under the constraint that the total number of tokens in the conversation does not exceed a certain limit.

    deprecatedclass
    VectorStoreRetrieverMemory

    Vector Store Retriever Memory.

    Store the conversation history in a vector store and retrieves the relevant parts of past conversation based on the input.

    deprecatedclass
    BaseChatMemory

    Abstract base class for chat memory.

    ATTENTION This abstraction was created prior to when chat models had native tool calling capabilities. It does NOT support native tool calling capabilities for chat models and will fail SILENTLY if used with a chat model that has native tool calling.

    DO NOT USE THIS ABSTRACTION FOR NEW CODE.

    View source on GitHub