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
Source
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