Home / Function/ test_structured_output_retry_preserves_messages() — langchain Function Reference

test_structured_output_retry_preserves_messages() — langchain Function Reference

Architecture documentation for the test_structured_output_retry_preserves_messages() function in test_structured_output_retry.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  6da18ecb_a3a6_6a05_3e0d_06932e3915b3["test_structured_output_retry_preserves_messages()"]
  dd58b626_28b2_b72e_0314_162a5a760201["test_structured_output_retry.py"]
  6da18ecb_a3a6_6a05_3e0d_06932e3915b3 -->|defined in| dd58b626_28b2_b72e_0314_162a5a760201
  style 6da18ecb_a3a6_6a05_3e0d_06932e3915b3 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_structured_output_retry.py lines 317–369

def test_structured_output_retry_preserves_messages() -> None:
    """Test structured output retry preserves error feedback in messages."""
    # First attempt invalid, second succeeds
    tool_calls = [
        [
            {
                "name": "WeatherReport",
                "id": "1",
                "args": {"temperature": "invalid", "conditions": "rainy"},
            }
        ],
        [
            {
                "name": "WeatherReport",
                "id": "2",
                "args": {"temperature": 75.0, "conditions": "rainy"},
            }
        ],
    ]

    model = FakeToolCallingModel(tool_calls=tool_calls)
    retry_middleware = StructuredOutputRetryMiddleware(max_retries=1)

    agent = create_agent(
        model=model,
        tools=[get_weather],
        middleware=[retry_middleware],
        response_format=ToolStrategy(schema=WeatherReport, handle_errors=False),
        checkpointer=InMemorySaver(),
    )

    result = agent.invoke(
        {"messages": [HumanMessage("What's the weather in Seattle?")]},
        {"configurable": {"thread_id": "test"}},
    )

    # Verify structured response is correct
    assert "structured_response" in result
    structured = result["structured_response"]
    assert structured.temperature == 75.0
    assert structured.conditions == "rainy"

    # Verify messages include the retry feedback
    messages = result["messages"]
    human_messages = [m for m in messages if isinstance(m, HumanMessage)]

    # Should have at least 2 human messages: initial + retry feedback
    assert len(human_messages) >= 2

    # The retry feedback message should contain error information
    retry_message = human_messages[-1]
    assert "Error:" in retry_message.content
    assert "Please try again" in retry_message.content

Domain

Subdomains

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free