Home / Function/ test_create_agent_async_invoke() — langchain Function Reference

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

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