Home / Class/ StateClaudeMemoryMiddleware Class — langchain Architecture

StateClaudeMemoryMiddleware Class — langchain Architecture

Architecture documentation for the StateClaudeMemoryMiddleware class in anthropic_tools.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  7c57ba61_4a2b_4df3_d3e4_a9b47f5e9740["StateClaudeMemoryMiddleware"]
  2e6eda6f_54cd_9575_7c70_af4582d5a816["_StateClaudeFileToolMiddleware"]
  7c57ba61_4a2b_4df3_d3e4_a9b47f5e9740 -->|extends| 2e6eda6f_54cd_9575_7c70_af4582d5a816
  5f8ab4b6_f98f_f653_1208_76332f94ecba["anthropic_tools.py"]
  7c57ba61_4a2b_4df3_d3e4_a9b47f5e9740 -->|defined in| 5f8ab4b6_f98f_f653_1208_76332f94ecba
  4aad3620_5924_9e93_f2ca_05d1f3098ae9["__init__()"]
  7c57ba61_4a2b_4df3_d3e4_a9b47f5e9740 -->|method| 4aad3620_5924_9e93_f2ca_05d1f3098ae9

Relationship Graph

Source Code

libs/partners/anthropic/langchain_anthropic/middleware/anthropic_tools.py lines 611–654

class StateClaudeMemoryMiddleware(_StateClaudeFileToolMiddleware):
    """State-based memory tool middleware.

    Provides Anthropic's memory tool using LangGraph state for storage.
    Files persist for the conversation thread.

    Enforces `/memories` prefix and injects Anthropic's recommended system prompt.

    Example:
        ```python
        from langchain.agents import create_agent
        from langchain.agents.middleware import StateMemoryToolMiddleware

        agent = create_agent(
            model=model,
            tools=[],
            middleware=[StateMemoryToolMiddleware()],
        )
        ```
    """

    def __init__(
        self,
        *,
        allowed_path_prefixes: Sequence[str] | None = None,
        system_prompt: str = MEMORY_SYSTEM_PROMPT,
    ) -> None:
        """Initialize the memory middleware.

        Args:
            allowed_path_prefixes: Optional list of allowed path prefixes.

                Defaults to `['/memories']`.
            system_prompt: System prompt to inject.

                Defaults to Anthropic's recommended memory prompt.
        """
        super().__init__(
            tool_type=MEMORY_TOOL_TYPE,
            tool_name=MEMORY_TOOL_NAME,
            state_key="memory_files",
            allowed_path_prefixes=allowed_path_prefixes or ["/memories"],
            system_prompt=system_prompt,
        )

Frequently Asked Questions

What is the StateClaudeMemoryMiddleware class?
StateClaudeMemoryMiddleware is a class in the langchain codebase, defined in libs/partners/anthropic/langchain_anthropic/middleware/anthropic_tools.py.
Where is StateClaudeMemoryMiddleware defined?
StateClaudeMemoryMiddleware is defined in libs/partners/anthropic/langchain_anthropic/middleware/anthropic_tools.py at line 611.
What does StateClaudeMemoryMiddleware extend?
StateClaudeMemoryMiddleware extends _StateClaudeFileToolMiddleware.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free