Home / Class/ LoggingMiddleware Class — langchain Architecture

LoggingMiddleware Class — langchain Architecture

Architecture documentation for the LoggingMiddleware class in test_dynamic_tools.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  4e1e32a7_84a8_0e2b_9494_e371b02d0ac2["LoggingMiddleware"]
  949c7cf4_56fe_f3b4_cd89_9631a7e9cb1e["AgentMiddleware"]
  4e1e32a7_84a8_0e2b_9494_e371b02d0ac2 -->|extends| 949c7cf4_56fe_f3b4_cd89_9631a7e9cb1e
  ed3bf1bf_abaf_832a_a548_adfcdbed05b3["test_dynamic_tools.py"]
  4e1e32a7_84a8_0e2b_9494_e371b02d0ac2 -->|defined in| ed3bf1bf_abaf_832a_a548_adfcdbed05b3
  de4f2fba_d293_7100_41e8_5af621b313ae["__init__()"]
  4e1e32a7_84a8_0e2b_9494_e371b02d0ac2 -->|method| de4f2fba_d293_7100_41e8_5af621b313ae
  a863f7c6_2833_0127_d959_f352a118a8d8["wrap_model_call()"]
  4e1e32a7_84a8_0e2b_9494_e371b02d0ac2 -->|method| a863f7c6_2833_0127_d959_f352a118a8d8
  ed3a9571_b04a_1815_dec2_1242427f0937["awrap_model_call()"]
  4e1e32a7_84a8_0e2b_9494_e371b02d0ac2 -->|method| ed3a9571_b04a_1815_dec2_1242427f0937
  1ea5936a_6fbd_698f_ab12_c23421e6c22a["wrap_tool_call()"]
  4e1e32a7_84a8_0e2b_9494_e371b02d0ac2 -->|method| 1ea5936a_6fbd_698f_ab12_c23421e6c22a
  a972f76f_db4d_2e76_d6e7_7869dfa7e45e["awrap_tool_call()"]
  4e1e32a7_84a8_0e2b_9494_e371b02d0ac2 -->|method| a972f76f_db4d_2e76_d6e7_7869dfa7e45e

Relationship Graph

Source Code

libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_dynamic_tools.py lines 351–385

    class LoggingMiddleware(AgentMiddleware):
        def __init__(self, label: str) -> None:
            self._label = label

        def wrap_model_call(
            self,
            request: ModelRequest,
            handler: Callable[[ModelRequest], ModelResponse],
        ) -> ModelCallResult:
            call_log.append(f"{self._label}_model")
            return handler(request)

        async def awrap_model_call(
            self,
            request: ModelRequest,
            handler: Callable[[ModelRequest], Awaitable[ModelResponse]],
        ) -> ModelCallResult:
            call_log.append(f"{self._label}_model")
            return await handler(request)

        def wrap_tool_call(
            self,
            request: ToolCallRequest,
            handler: Callable[[ToolCallRequest], ToolMessage | Command[Any]],
        ) -> ToolMessage | Command[Any]:
            call_log.append(f"{self._label}_tool")
            return handler(request)

        async def awrap_tool_call(
            self,
            request: ToolCallRequest,
            handler: Callable[[ToolCallRequest], Awaitable[ToolMessage | Command[Any]]],
        ) -> ToolMessage | Command[Any]:
            call_log.append(f"{self._label}_tool")
            return await handler(request)

Extends

Frequently Asked Questions

What is the LoggingMiddleware class?
LoggingMiddleware is a class in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_dynamic_tools.py.
Where is LoggingMiddleware defined?
LoggingMiddleware is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_dynamic_tools.py at line 351.
What does LoggingMiddleware extend?
LoggingMiddleware extends AgentMiddleware.

Analyze Your Own Codebase

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

Try Supermodel Free