Home / Class/ FullyTypedMiddleware Class — langchain Architecture

FullyTypedMiddleware Class — langchain Architecture

Architecture documentation for the FullyTypedMiddleware class in test_middleware_typing.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  65247640_c159_b36a_7d6d_271095e4d6a9["FullyTypedMiddleware"]
  689eac1f_5845_440c_f60b_988968e02ee6["test_middleware_typing.py"]
  65247640_c159_b36a_7d6d_271095e4d6a9 -->|defined in| 689eac1f_5845_440c_f60b_988968e02ee6
  278e4e8a_5a7f_447e_0b93_cfcd45db0ebb["wrap_model_call()"]
  65247640_c159_b36a_7d6d_271095e4d6a9 -->|method| 278e4e8a_5a7f_447e_0b93_cfcd45db0ebb

Relationship Graph

Source Code

libs/langchain_v1/tests/unit_tests/agents/middleware_typing/test_middleware_typing.py lines 192–211

class FullyTypedMiddleware(
    AgentMiddleware[AgentState[AnalysisResult], UserContext, AnalysisResult]
):
    """Middleware with both ContextT and ResponseT fully specified."""

    def wrap_model_call(
        self,
        request: ModelRequest[UserContext],
        handler: Callable[[ModelRequest[UserContext]], ModelResponse[AnalysisResult]],
    ) -> ModelResponse[AnalysisResult]:
        # Access context with full type safety
        _user_id: str = request.runtime.context["user_id"]

        response = handler(request)

        # Access structured response with full type safety
        if response.structured_response is not None:
            _sentiment: str = response.structured_response.sentiment

        return response

Frequently Asked Questions

What is the FullyTypedMiddleware class?
FullyTypedMiddleware is a class in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware_typing/test_middleware_typing.py.
Where is FullyTypedMiddleware defined?
FullyTypedMiddleware is defined in libs/langchain_v1/tests/unit_tests/agents/middleware_typing/test_middleware_typing.py at line 192.

Analyze Your Own Codebase

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

Try Supermodel Free