test_create_agent_async_invoke_multiple_middleware() — langchain Function Reference
Architecture documentation for the test_create_agent_async_invoke_multiple_middleware() function in test_framework.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 5d664451_7d72_b9e8_572e_80bdda07e3dd["test_create_agent_async_invoke_multiple_middleware()"] 8310d669_2524_e019_e333_8473b50a4990["test_framework.py"] 5d664451_7d72_b9e8_572e_80bdda07e3dd -->|defined in| 8310d669_2524_e019_e333_8473b50a4990 08f5c817_8c76_4321_c5f5_654923a10b86["aafter_model()"] 5d664451_7d72_b9e8_572e_80bdda07e3dd -->|calls| 08f5c817_8c76_4321_c5f5_654923a10b86 f207db9d_3f7a_9c6f_d85c_5e48d79f2dee["abefore_model()"] 5d664451_7d72_b9e8_572e_80bdda07e3dd -->|calls| f207db9d_3f7a_9c6f_d85c_5e48d79f2dee style 5d664451_7d72_b9e8_572e_80bdda07e3dd fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_framework.py lines 612–662
async def test_create_agent_async_invoke_multiple_middleware() -> None:
"""Test async invoke with multiple async middleware hooks."""
calls = []
class AsyncMiddlewareOne(AgentMiddleware):
async def abefore_model(self, state: AgentState[Any], runtime: Runtime) -> None:
calls.append("AsyncMiddlewareOne.abefore_model")
async def awrap_model_call(
self,
request: ModelRequest,
handler: Callable[[ModelRequest], Awaitable[ModelResponse]],
) -> ModelCallResult:
calls.append("AsyncMiddlewareOne.awrap_model_call")
return await handler(request)
async def aafter_model(self, state: AgentState[Any], runtime: Runtime) -> None:
calls.append("AsyncMiddlewareOne.aafter_model")
class AsyncMiddlewareTwo(AgentMiddleware):
async def abefore_model(self, state: AgentState[Any], runtime: Runtime) -> None:
calls.append("AsyncMiddlewareTwo.abefore_model")
async def awrap_model_call(
self,
request: ModelRequest,
handler: Callable[[ModelRequest], Awaitable[ModelResponse]],
) -> ModelCallResult:
calls.append("AsyncMiddlewareTwo.awrap_model_call")
return await handler(request)
async def aafter_model(self, state: AgentState[Any], runtime: Runtime) -> None:
calls.append("AsyncMiddlewareTwo.aafter_model")
agent = create_agent(
model=FakeToolCallingModel(),
tools=[],
system_prompt="You are a helpful assistant.",
middleware=[AsyncMiddlewareOne(), AsyncMiddlewareTwo()],
)
await agent.ainvoke({"messages": [HumanMessage("hello")]})
assert calls == [
"AsyncMiddlewareOne.abefore_model",
"AsyncMiddlewareTwo.abefore_model",
"AsyncMiddlewareOne.awrap_model_call",
"AsyncMiddlewareTwo.awrap_model_call",
"AsyncMiddlewareTwo.aafter_model",
"AsyncMiddlewareOne.aafter_model",
]
Domain
Subdomains
Source
Frequently Asked Questions
What does test_create_agent_async_invoke_multiple_middleware() do?
test_create_agent_async_invoke_multiple_middleware() is a function in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_framework.py.
Where is test_create_agent_async_invoke_multiple_middleware() defined?
test_create_agent_async_invoke_multiple_middleware() is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_framework.py at line 612.
What does test_create_agent_async_invoke_multiple_middleware() call?
test_create_agent_async_invoke_multiple_middleware() calls 2 function(s): aafter_model, abefore_model.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free