From d83c3a12bf1a7745864b3b27ee1ae8ac6108370e Mon Sep 17 00:00:00 2001 From: Mason Daugherty Date: Wed, 15 Oct 2025 12:55:23 -0400 Subject: [PATCH] chore(core): delete BaseMemory, move to langchain-classic (#33373) --- .../conversational_retrieval/openai_functions.py | 2 +- .../memory.py => langchain/langchain_classic/base_memory.py} | 3 +-- libs/langchain/langchain_classic/chains/base.py | 2 +- libs/langchain/langchain_classic/chains/conversation/base.py | 2 +- libs/langchain/langchain_classic/memory/buffer.py | 2 +- libs/langchain/langchain_classic/memory/chat_memory.py | 2 +- libs/langchain/langchain_classic/memory/combined.py | 2 +- libs/langchain/langchain_classic/memory/readonly.py | 2 +- libs/langchain/langchain_classic/memory/simple.py | 3 ++- libs/langchain/langchain_classic/memory/vectorstore.py | 2 +- libs/langchain/langchain_classic/schema/__init__.py | 3 ++- libs/langchain/langchain_classic/schema/memory.py | 2 +- libs/langchain/tests/unit_tests/chains/test_base.py | 2 +- libs/langchain/tests/unit_tests/chains/test_conversation.py | 2 +- libs/langchain/tests/unit_tests/chains/test_memory.py | 2 +- 15 files changed, 17 insertions(+), 16 deletions(-) rename libs/{core/langchain_core/memory.py => langchain/langchain_classic/base_memory.py} (99%) diff --git a/libs/langchain/langchain_classic/agents/agent_toolkits/conversational_retrieval/openai_functions.py b/libs/langchain/langchain_classic/agents/agent_toolkits/conversational_retrieval/openai_functions.py index e95a233ec2..5b8ddfc6e1 100644 --- a/libs/langchain/langchain_classic/agents/agent_toolkits/conversational_retrieval/openai_functions.py +++ b/libs/langchain/langchain_classic/agents/agent_toolkits/conversational_retrieval/openai_functions.py @@ -1,7 +1,6 @@ from typing import Any from langchain_core.language_models import BaseLanguageModel -from langchain_core.memory import BaseMemory from langchain_core.messages import SystemMessage from langchain_core.prompts.chat import MessagesPlaceholder from langchain_core.tools import BaseTool @@ -11,6 +10,7 @@ from langchain_classic.agents.openai_functions_agent.agent_token_buffer_memory i AgentTokenBufferMemory, ) from langchain_classic.agents.openai_functions_agent.base import OpenAIFunctionsAgent +from langchain_classic.base_memory import BaseMemory from langchain_classic.memory.token_buffer import ConversationTokenBufferMemory diff --git a/libs/core/langchain_core/memory.py b/libs/langchain/langchain_classic/base_memory.py similarity index 99% rename from libs/core/langchain_core/memory.py rename to libs/langchain/langchain_classic/base_memory.py index ec50cc01e0..eb178bb888 100644 --- a/libs/core/langchain_core/memory.py +++ b/libs/langchain/langchain_classic/base_memory.py @@ -10,11 +10,10 @@ from __future__ import annotations from abc import ABC, abstractmethod from typing import Any -from pydantic import ConfigDict - from langchain_core._api import deprecated from langchain_core.load.serializable import Serializable from langchain_core.runnables import run_in_executor +from pydantic import ConfigDict @deprecated( diff --git a/libs/langchain/langchain_classic/chains/base.py b/libs/langchain/langchain_classic/chains/base.py index 6b9934a791..df2d4b4c3e 100644 --- a/libs/langchain/langchain_classic/chains/base.py +++ b/libs/langchain/langchain_classic/chains/base.py @@ -20,7 +20,6 @@ from langchain_core.callbacks import ( CallbackManagerForChainRun, Callbacks, ) -from langchain_core.memory import BaseMemory from langchain_core.outputs import RunInfo from langchain_core.runnables import ( RunnableConfig, @@ -38,6 +37,7 @@ from pydantic import ( ) from typing_extensions import override +from langchain_classic.base_memory import BaseMemory from langchain_classic.schema import RUN_KEY logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain_classic/chains/conversation/base.py b/libs/langchain/langchain_classic/chains/conversation/base.py index f1c403787d..98bc9a4f12 100644 --- a/libs/langchain/langchain_classic/chains/conversation/base.py +++ b/libs/langchain/langchain_classic/chains/conversation/base.py @@ -1,11 +1,11 @@ """Chain that carries on a conversation and calls an LLM.""" from langchain_core._api import deprecated -from langchain_core.memory import BaseMemory from langchain_core.prompts import BasePromptTemplate from pydantic import ConfigDict, Field, model_validator from typing_extensions import Self, override +from langchain_classic.base_memory import BaseMemory from langchain_classic.chains.conversation.prompt import PROMPT from langchain_classic.chains.llm import LLMChain from langchain_classic.memory.buffer import ConversationBufferMemory diff --git a/libs/langchain/langchain_classic/memory/buffer.py b/libs/langchain/langchain_classic/memory/buffer.py index c356b70da0..5a08db95c7 100644 --- a/libs/langchain/langchain_classic/memory/buffer.py +++ b/libs/langchain/langchain_classic/memory/buffer.py @@ -1,11 +1,11 @@ from typing import Any from langchain_core._api import deprecated -from langchain_core.memory import BaseMemory from langchain_core.messages import BaseMessage, get_buffer_string from langchain_core.utils import pre_init from typing_extensions import override +from langchain_classic.base_memory import BaseMemory from langchain_classic.memory.chat_memory import BaseChatMemory from langchain_classic.memory.utils import get_prompt_input_key diff --git a/libs/langchain/langchain_classic/memory/chat_memory.py b/libs/langchain/langchain_classic/memory/chat_memory.py index 5a86a78024..c775c6ba31 100644 --- a/libs/langchain/langchain_classic/memory/chat_memory.py +++ b/libs/langchain/langchain_classic/memory/chat_memory.py @@ -7,10 +7,10 @@ from langchain_core.chat_history import ( BaseChatMessageHistory, InMemoryChatMessageHistory, ) -from langchain_core.memory import BaseMemory from langchain_core.messages import AIMessage, HumanMessage from pydantic import Field +from langchain_classic.base_memory import BaseMemory from langchain_classic.memory.utils import get_prompt_input_key diff --git a/libs/langchain/langchain_classic/memory/combined.py b/libs/langchain/langchain_classic/memory/combined.py index b19c97edec..3a5781ce01 100644 --- a/libs/langchain/langchain_classic/memory/combined.py +++ b/libs/langchain/langchain_classic/memory/combined.py @@ -1,9 +1,9 @@ import warnings from typing import Any -from langchain_core.memory import BaseMemory from pydantic import field_validator +from langchain_classic.base_memory import BaseMemory from langchain_classic.memory.chat_memory import BaseChatMemory diff --git a/libs/langchain/langchain_classic/memory/readonly.py b/libs/langchain/langchain_classic/memory/readonly.py index 4220612316..85ac1c626e 100644 --- a/libs/langchain/langchain_classic/memory/readonly.py +++ b/libs/langchain/langchain_classic/memory/readonly.py @@ -1,6 +1,6 @@ from typing import Any -from langchain_core.memory import BaseMemory +from langchain_classic.base_memory import BaseMemory class ReadOnlySharedMemory(BaseMemory): diff --git a/libs/langchain/langchain_classic/memory/simple.py b/libs/langchain/langchain_classic/memory/simple.py index 61fb2b2730..c9163c396f 100644 --- a/libs/langchain/langchain_classic/memory/simple.py +++ b/libs/langchain/langchain_classic/memory/simple.py @@ -1,8 +1,9 @@ from typing import Any -from langchain_core.memory import BaseMemory from typing_extensions import override +from langchain_classic.base_memory import BaseMemory + class SimpleMemory(BaseMemory): """Simple Memory. diff --git a/libs/langchain/langchain_classic/memory/vectorstore.py b/libs/langchain/langchain_classic/memory/vectorstore.py index ce09cb3a3a..3f6eef1916 100644 --- a/libs/langchain/langchain_classic/memory/vectorstore.py +++ b/libs/langchain/langchain_classic/memory/vectorstore.py @@ -5,10 +5,10 @@ from typing import Any from langchain_core._api import deprecated from langchain_core.documents import Document -from langchain_core.memory import BaseMemory from langchain_core.vectorstores import VectorStoreRetriever from pydantic import Field +from langchain_classic.base_memory import BaseMemory from langchain_classic.memory.utils import get_prompt_input_key diff --git a/libs/langchain/langchain_classic/schema/__init__.py b/libs/langchain/langchain_classic/schema/__init__.py index 6c8c4f61a0..c957fe8b9a 100644 --- a/libs/langchain/langchain_classic/schema/__init__.py +++ b/libs/langchain/langchain_classic/schema/__init__.py @@ -5,7 +5,6 @@ from langchain_core.caches import BaseCache from langchain_core.chat_history import BaseChatMessageHistory from langchain_core.documents import BaseDocumentTransformer, Document from langchain_core.exceptions import LangChainException, OutputParserException -from langchain_core.memory import BaseMemory from langchain_core.messages import ( AIMessage, BaseMessage, @@ -36,6 +35,8 @@ from langchain_core.prompts import BasePromptTemplate, format_document from langchain_core.retrievers import BaseRetriever from langchain_core.stores import BaseStore +from langchain_classic.base_memory import BaseMemory + RUN_KEY = "__run" # Backwards compatibility. diff --git a/libs/langchain/langchain_classic/schema/memory.py b/libs/langchain/langchain_classic/schema/memory.py index d2f3d73e61..238d328393 100644 --- a/libs/langchain/langchain_classic/schema/memory.py +++ b/libs/langchain/langchain_classic/schema/memory.py @@ -1,3 +1,3 @@ -from langchain_core.memory import BaseMemory +from langchain_classic.base_memory import BaseMemory __all__ = ["BaseMemory"] diff --git a/libs/langchain/tests/unit_tests/chains/test_base.py b/libs/langchain/tests/unit_tests/chains/test_base.py index a0e21fab2b..a607eada5b 100644 --- a/libs/langchain/tests/unit_tests/chains/test_base.py +++ b/libs/langchain/tests/unit_tests/chains/test_base.py @@ -6,10 +6,10 @@ from typing import Any import pytest from langchain_core.callbacks.manager import CallbackManagerForChainRun -from langchain_core.memory import BaseMemory from langchain_core.tracers.context import collect_runs from typing_extensions import override +from langchain_classic.base_memory import BaseMemory from langchain_classic.chains.base import Chain from langchain_classic.schema import RUN_KEY from tests.unit_tests.callbacks.fake_callback_handler import FakeCallbackHandler diff --git a/libs/langchain/tests/unit_tests/chains/test_conversation.py b/libs/langchain/tests/unit_tests/chains/test_conversation.py index 0913204b77..7ff07f45da 100644 --- a/libs/langchain/tests/unit_tests/chains/test_conversation.py +++ b/libs/langchain/tests/unit_tests/chains/test_conversation.py @@ -6,10 +6,10 @@ from typing import Any import pytest from langchain_core.callbacks import CallbackManagerForLLMRun from langchain_core.language_models import LLM -from langchain_core.memory import BaseMemory from langchain_core.prompts.prompt import PromptTemplate from typing_extensions import override +from langchain_classic.base_memory import BaseMemory from langchain_classic.chains.conversation.base import ConversationChain from langchain_classic.memory.buffer import ConversationBufferMemory from langchain_classic.memory.buffer_window import ConversationBufferWindowMemory diff --git a/libs/langchain/tests/unit_tests/chains/test_memory.py b/libs/langchain/tests/unit_tests/chains/test_memory.py index 2be4384c39..0894d5f92d 100644 --- a/libs/langchain/tests/unit_tests/chains/test_memory.py +++ b/libs/langchain/tests/unit_tests/chains/test_memory.py @@ -1,6 +1,6 @@ import pytest -from langchain_core.memory import BaseMemory +from langchain_classic.base_memory import BaseMemory from langchain_classic.chains.conversation.memory import ( ConversationBufferMemory, ConversationBufferWindowMemory,