Home / Function/ test_summarization_middleware_find_safe_cutoff_preserves_ai_tool_pair() — langchain Function Reference

test_summarization_middleware_find_safe_cutoff_preserves_ai_tool_pair() — langchain Function Reference

Architecture documentation for the test_summarization_middleware_find_safe_cutoff_preserves_ai_tool_pair() function in test_summarization.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  5bf82bf8_8dec_0a07_9b5c_7009042be7ef["test_summarization_middleware_find_safe_cutoff_preserves_ai_tool_pair()"]
  1911a463_b67d_0301_5ef1_5c535dafc14a["test_summarization.py"]
  5bf82bf8_8dec_0a07_9b5c_7009042be7ef -->|defined in| 1911a463_b67d_0301_5ef1_5c535dafc14a
  style 5bf82bf8_8dec_0a07_9b5c_7009042be7ef fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_summarization.py lines 1057–1089

def test_summarization_middleware_find_safe_cutoff_preserves_ai_tool_pair() -> None:
    """Test `_find_safe_cutoff` preserves AI/Tool message pairs together."""
    middleware = SummarizationMiddleware(
        model=MockChatModel(), trigger=("messages", 10), keep=("messages", 3)
    )

    # Messages list: [Human, AI, Tool, Tool, Tool, Human]
    messages: list[AnyMessage] = [
        HumanMessage(content="msg1"),
        AIMessage(
            content="ai",
            tool_calls=[
                {"name": "tool1", "args": {}, "id": "call1"},
                {"name": "tool2", "args": {}, "id": "call2"},
                {"name": "tool3", "args": {}, "id": "call3"},
            ],
        ),
        ToolMessage(content="result1", tool_call_id="call1"),
        ToolMessage(content="result2", tool_call_id="call2"),
        ToolMessage(content="result3", tool_call_id="call3"),
        HumanMessage(content="msg2"),
    ]

    # Target cutoff index is len(messages) - messages_to_keep = 6 - 3 = 3
    # Index 3 is a ToolMessage, we move back to index 1 to include AIMessage
    cutoff = middleware._find_safe_cutoff(messages, messages_to_keep=3)
    assert cutoff == 1

    # With messages_to_keep=2, target cutoff index is 6 - 2 = 4
    # Index 4 is a ToolMessage, we move back to index 1 to include AIMessage
    # This preserves the AI + Tools + Human, more than requested but valid
    cutoff = middleware._find_safe_cutoff(messages, messages_to_keep=2)
    assert cutoff == 1

Domain

Subdomains

Frequently Asked Questions

What does test_summarization_middleware_find_safe_cutoff_preserves_ai_tool_pair() do?
test_summarization_middleware_find_safe_cutoff_preserves_ai_tool_pair() is a function in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_summarization.py.
Where is test_summarization_middleware_find_safe_cutoff_preserves_ai_tool_pair() defined?
test_summarization_middleware_find_safe_cutoff_preserves_ai_tool_pair() is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_summarization.py at line 1057.

Analyze Your Own Codebase

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

Try Supermodel Free