Home / Function/ test_structured_output_retry_first_attempt_invalid() — langchain Function Reference

test_structured_output_retry_first_attempt_invalid() — langchain Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  439b8d19_8f8e_8001_cabd_9f963fa2cd4b["test_structured_output_retry_first_attempt_invalid()"]
  dd58b626_28b2_b72e_0314_162a5a760201["test_structured_output_retry.py"]
  439b8d19_8f8e_8001_cabd_9f963fa2cd4b -->|defined in| dd58b626_28b2_b72e_0314_162a5a760201
  style 439b8d19_8f8e_8001_cabd_9f963fa2cd4b 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 87–136

def test_structured_output_retry_first_attempt_invalid() -> None:
    """Test structured output retry when first two attempts have invalid output."""
    # First two attempts have invalid tool arguments, third attempt succeeds
    # The model will call the WeatherReport structured output tool
    tool_calls = [
        # First attempt - invalid: wrong type for temperature
        [
            {
                "name": "WeatherReport",
                "id": "1",
                "args": {"temperature": "not-a-float", "conditions": "sunny"},
            }
        ],
        # Second attempt - invalid: missing required field
        [{"name": "WeatherReport", "id": "2", "args": {"temperature": 72.5}}],
        # Third attempt - valid
        [
            {
                "name": "WeatherReport",
                "id": "3",
                "args": {"temperature": 72.5, "conditions": "sunny"},
            }
        ],
    ]

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

    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 Tokyo?")]},
        {"configurable": {"thread_id": "test"}},
    )

    # Verify we got a structured response
    assert "structured_response" in result
    structured = result["structured_response"]
    assert isinstance(structured, WeatherReport)
    assert structured.temperature == 72.5
    assert structured.conditions == "sunny"

    # Verify the model was called 3 times (initial + 2 retries)
    assert model.index == 3

Domain

Subdomains

Frequently Asked Questions

What does test_structured_output_retry_first_attempt_invalid() do?
test_structured_output_retry_first_attempt_invalid() 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_first_attempt_invalid() defined?
test_structured_output_retry_first_attempt_invalid() is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_structured_output_retry.py at line 87.

Analyze Your Own Codebase

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

Try Supermodel Free