test_create_agent_async_invoke() — langchain Function Reference
Architecture documentation for the test_create_agent_async_invoke() function in test_framework.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 46a9b4cd_27be_1c51_4dc2_e384384acb63["test_create_agent_async_invoke()"] 8310d669_2524_e019_e333_8473b50a4990["test_framework.py"] 46a9b4cd_27be_1c51_4dc2_e384384acb63 -->|defined in| 8310d669_2524_e019_e333_8473b50a4990 08f5c817_8c76_4321_c5f5_654923a10b86["aafter_model()"] 46a9b4cd_27be_1c51_4dc2_e384384acb63 -->|calls| 08f5c817_8c76_4321_c5f5_654923a10b86 f207db9d_3f7a_9c6f_d85c_5e48d79f2dee["abefore_model()"] 46a9b4cd_27be_1c51_4dc2_e384384acb63 -->|calls| f207db9d_3f7a_9c6f_d85c_5e48d79f2dee style 46a9b4cd_27be_1c51_4dc2_e384384acb63 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_framework.py lines 551–609
async def test_create_agent_async_invoke() -> None:
"""Test async invoke with async middleware hooks."""
calls = []
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")
request.messages.append(HumanMessage("async middleware message"))
return await handler(request)
async def aafter_model(self, state: AgentState[Any], runtime: Runtime) -> None:
calls.append("AsyncMiddleware.aafter_model")
@tool
def my_tool_async(value: str) -> str:
"""A great tool."""
calls.append("my_tool_async")
return value.upper()
agent = create_agent(
model=FakeToolCallingModel(
tool_calls=[
[{"args": {"value": "yo"}, "id": "1", "name": "my_tool_async"}],
[],
]
),
tools=[my_tool_async],
system_prompt="You are a helpful assistant.",
middleware=[AsyncMiddleware()],
)
result = await agent.ainvoke({"messages": [HumanMessage("hello")]})
# Should have:
# 1. Original hello message
# 2. Async middleware message (first invoke)
# 3. AI message with tool call
# 4. Tool message
# 5. Async middleware message (second invoke)
# 6. Final AI message
assert len(result["messages"]) == 6
assert result["messages"][0].content == "hello"
assert result["messages"][1].content == "async middleware message"
assert calls == [
"AsyncMiddleware.abefore_model",
"AsyncMiddleware.awrap_model_call",
"AsyncMiddleware.aafter_model",
"my_tool_async",
"AsyncMiddleware.abefore_model",
"AsyncMiddleware.awrap_model_call",
"AsyncMiddleware.aafter_model",
]
Domain
Subdomains
Source
Frequently Asked Questions
What does test_create_agent_async_invoke() do?
test_create_agent_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_async_invoke() defined?
test_create_agent_async_invoke() is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_framework.py at line 551.
What does test_create_agent_async_invoke() call?
test_create_agent_async_invoke() 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