Home / File/ test_agent_async.py — langchain Source File

test_agent_async.py — langchain Source File

Architecture documentation for test_agent_async.py, a python file in the langchain codebase. 10 imports, 0 dependents.

File python CoreAbstractions MessageSchema 10 imports 8 functions 1 classes

Entity Profile

Dependency Diagram

graph LR
  d57678ad_5878_3e2f_3216_13d8ccff0182["test_agent_async.py"]
  8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3["typing"]
  d57678ad_5878_3e2f_3216_13d8ccff0182 --> 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3
  80d582c5_7cc3_ac96_2742_3dbe1cbd4e2b["langchain_core.agents"]
  d57678ad_5878_3e2f_3216_13d8ccff0182 --> 80d582c5_7cc3_ac96_2742_3dbe1cbd4e2b
  e8ec017e_6c91_4b34_675f_2a96c5aa9be6["langchain_core.callbacks.manager"]
  d57678ad_5878_3e2f_3216_13d8ccff0182 --> e8ec017e_6c91_4b34_675f_2a96c5aa9be6
  89934eed_a823_2184_acf2_039f48eed5f9["langchain_core.language_models.llms"]
  d57678ad_5878_3e2f_3216_13d8ccff0182 --> 89934eed_a823_2184_acf2_039f48eed5f9
  d758344f_537f_649e_f467_b9d7442e86df["langchain_core.messages"]
  d57678ad_5878_3e2f_3216_13d8ccff0182 --> d758344f_537f_649e_f467_b9d7442e86df
  81c04601_d095_a27d_4af1_55e771bb2b6b["langchain_core.runnables.utils"]
  d57678ad_5878_3e2f_3216_13d8ccff0182 --> 81c04601_d095_a27d_4af1_55e771bb2b6b
  43d88577_548b_2248_b01b_7987bae85dcc["langchain_core.tools"]
  d57678ad_5878_3e2f_3216_13d8ccff0182 --> 43d88577_548b_2248_b01b_7987bae85dcc
  91721f45_4909_e489_8c1f_084f8bd87145["typing_extensions"]
  d57678ad_5878_3e2f_3216_13d8ccff0182 --> 91721f45_4909_e489_8c1f_084f8bd87145
  37814a67_ff56_3f91_8aa4_794e5ef7a906["langchain_classic.agents"]
  d57678ad_5878_3e2f_3216_13d8ccff0182 --> 37814a67_ff56_3f91_8aa4_794e5ef7a906
  39828c68_7b4a_bb1d_5dbd_04e185eb91c6["tests.unit_tests.callbacks.fake_callback_handler"]
  d57678ad_5878_3e2f_3216_13d8ccff0182 --> 39828c68_7b4a_bb1d_5dbd_04e185eb91c6
  style d57678ad_5878_3e2f_3216_13d8ccff0182 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"""Unit tests for agents."""

from typing import Any

from langchain_core.agents import AgentAction, AgentStep
from langchain_core.callbacks.manager import CallbackManagerForLLMRun
from langchain_core.language_models.llms import LLM
from langchain_core.messages import AIMessage, HumanMessage
from langchain_core.runnables.utils import add
from langchain_core.tools import Tool
from typing_extensions import override

from langchain_classic.agents import AgentExecutor, AgentType, initialize_agent
from tests.unit_tests.callbacks.fake_callback_handler import FakeCallbackHandler


class FakeListLLM(LLM):
    """Fake LLM for testing that outputs elements of a list."""

    responses: list[str]
    i: int = -1

    @override
    def _call(
        self,
        prompt: str,
        stop: list[str] | None = None,
        run_manager: CallbackManagerForLLMRun | None = None,
        **kwargs: Any,
    ) -> str:
        """Increment counter, and then return response in that index."""
        self.i += 1
        print(f"=== Mock Response #{self.i} ===")  # noqa: T201
        print(self.responses[self.i])  # noqa: T201
        return self.responses[self.i]

    def get_num_tokens(self, text: str) -> int:
        """Return number of tokens in text."""
        return len(text.split())

    async def _acall(self, *args: Any, **kwargs: Any) -> str:
        return self._call(*args, **kwargs)

    @property
    def _identifying_params(self) -> dict[str, Any]:
        return {}

    @property
    def _llm_type(self) -> str:
        """Return type of llm."""
        return "fake_list"


def _get_agent(**kwargs: Any) -> AgentExecutor:
    """Get agent for testing."""
    bad_action_name = "BadAction"
    responses = [
        f"I'm turning evil\nAction: {bad_action_name}\nAction Input: misalignment",
        "Oh well\nFinal Answer: curses foiled again",
    ]
// ... (308 more lines)

Subdomains

Classes

Dependencies

  • langchain_classic.agents
  • langchain_core.agents
  • langchain_core.callbacks.manager
  • langchain_core.language_models.llms
  • langchain_core.messages
  • langchain_core.runnables.utils
  • langchain_core.tools
  • tests.unit_tests.callbacks.fake_callback_handler
  • typing
  • typing_extensions

Frequently Asked Questions

What does test_agent_async.py do?
test_agent_async.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, MessageSchema subdomain.
What functions are defined in test_agent_async.py?
test_agent_async.py defines 8 function(s): _get_agent, test_agent_bad_action, test_agent_invalid_tool, test_agent_stopped_early, test_agent_stream, test_agent_tool_return_direct, test_agent_tool_return_direct_in_intermediate_steps, test_agent_with_callbacks.
What does test_agent_async.py depend on?
test_agent_async.py imports 10 module(s): langchain_classic.agents, langchain_core.agents, langchain_core.callbacks.manager, langchain_core.language_models.llms, langchain_core.messages, langchain_core.runnables.utils, langchain_core.tools, tests.unit_tests.callbacks.fake_callback_handler, and 2 more.
Where is test_agent_async.py in the architecture?
test_agent_async.py is located at libs/langchain/tests/unit_tests/agents/test_agent_async.py (domain: CoreAbstractions, subdomain: MessageSchema, directory: libs/langchain/tests/unit_tests/agents).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free