test_create_agent_mixed_sync_async_middleware_async_invoke() — langchain Function Reference
Architecture documentation for the test_create_agent_mixed_sync_async_middleware_async_invoke() function in test_framework.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD ce72b742_24f6_48f4_0387_a35cf0e4e40e["test_create_agent_mixed_sync_async_middleware_async_invoke()"] 8310d669_2524_e019_e333_8473b50a4990["test_framework.py"] ce72b742_24f6_48f4_0387_a35cf0e4e40e -->|defined in| 8310d669_2524_e019_e333_8473b50a4990 08f5c817_8c76_4321_c5f5_654923a10b86["aafter_model()"] ce72b742_24f6_48f4_0387_a35cf0e4e40e -->|calls| 08f5c817_8c76_4321_c5f5_654923a10b86 ef00a503_751e_81db_e7f3_3574b9b9827e["abefore_model()"] ce72b742_24f6_48f4_0387_a35cf0e4e40e -->|calls| ef00a503_751e_81db_e7f3_3574b9b9827e c3635e27_cc14_1814_2662_bc84be46e105["after_model()"] ce72b742_24f6_48f4_0387_a35cf0e4e40e -->|calls| c3635e27_cc14_1814_2662_bc84be46e105 style ce72b742_24f6_48f4_0387_a35cf0e4e40e fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_framework.py lines 700–761
async def test_create_agent_mixed_sync_async_middleware_async_invoke() -> None:
"""Test async invoke with mixed sync and async middleware."""
calls = []
class MostlySyncMiddleware(AgentMiddleware):
def before_model(self, state: AgentState[Any], runtime: Runtime) -> None:
calls.append("MostlySyncMiddleware.before_model")
def wrap_model_call(
self,
request: ModelRequest,
handler: Callable[[ModelRequest], ModelResponse],
) -> ModelCallResult:
calls.append("MostlySyncMiddleware.wrap_model_call")
return handler(request)
async def awrap_model_call(
self,
request: ModelRequest,
handler: Callable[[ModelRequest], Awaitable[ModelResponse]],
) -> ModelCallResult:
calls.append("MostlySyncMiddleware.awrap_model_call")
return await handler(request)
def after_model(self, state: AgentState[Any], runtime: Runtime) -> None:
calls.append("MostlySyncMiddleware.after_model")
class AsyncMiddleware(AgentMiddleware):
async def abefore_model(self, state: AgentState[Any], runtime: Runtime) -> None:
calls.append("AsyncMiddleware.abefore_model")
async def awrap_model_call(
self,
request: ModelRequest,
handler: Callable[[ModelRequest], Awaitable[ModelResponse]],
) -> ModelCallResult:
calls.append("AsyncMiddleware.awrap_model_call")
return await handler(request)
async def aafter_model(self, state: AgentState[Any], runtime: Runtime) -> None:
calls.append("AsyncMiddleware.aafter_model")
agent = create_agent(
model=FakeToolCallingModel(),
tools=[],
system_prompt="You are a helpful assistant.",
middleware=[MostlySyncMiddleware(), AsyncMiddleware()],
)
await agent.ainvoke({"messages": [HumanMessage("hello")]})
# In async mode, both sync and async middleware should work
# Note: Sync wrap_model_call is not called when running in async mode,
# as the async version is preferred
assert calls == [
"MostlySyncMiddleware.before_model",
"AsyncMiddleware.abefore_model",
"MostlySyncMiddleware.awrap_model_call",
"AsyncMiddleware.awrap_model_call",
"AsyncMiddleware.aafter_model",
"MostlySyncMiddleware.after_model",
]
Domain
Subdomains
Source
Frequently Asked Questions
What does test_create_agent_mixed_sync_async_middleware_async_invoke() do?
test_create_agent_mixed_sync_async_middleware_async_invoke() 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_mixed_sync_async_middleware_async_invoke() defined?
test_create_agent_mixed_sync_async_middleware_async_invoke() is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_framework.py at line 700.
What does test_create_agent_mixed_sync_async_middleware_async_invoke() call?
test_create_agent_mixed_sync_async_middleware_async_invoke() calls 3 function(s): aafter_model, abefore_model, after_model.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free