Home / Class/ AsyncCallbackManager Class — langchain Architecture

AsyncCallbackManager Class — langchain Architecture

Architecture documentation for the AsyncCallbackManager class in manager.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  351e9b50_c4fb_2046_1e46_9c34747d671c["AsyncCallbackManager"]
  6941cf5d_ae5f_e8ff_093f_1e580e3665f7["BaseCallbackManager"]
  351e9b50_c4fb_2046_1e46_9c34747d671c -->|extends| 6941cf5d_ae5f_e8ff_093f_1e580e3665f7
  35cf5db6_bcb1_b854_6ebb_5e0368e51b58["manager.py"]
  351e9b50_c4fb_2046_1e46_9c34747d671c -->|defined in| 35cf5db6_bcb1_b854_6ebb_5e0368e51b58
  36c81985_9246_9991_432b_526c749ee50d["is_async()"]
  351e9b50_c4fb_2046_1e46_9c34747d671c -->|method| 36c81985_9246_9991_432b_526c749ee50d
  41abfd88_66f9_e82d_7179_b787beb61d63["on_llm_start()"]
  351e9b50_c4fb_2046_1e46_9c34747d671c -->|method| 41abfd88_66f9_e82d_7179_b787beb61d63
  87bfe5a6_cfdc_17e5_ff2a_1d40fca2292d["on_chat_model_start()"]
  351e9b50_c4fb_2046_1e46_9c34747d671c -->|method| 87bfe5a6_cfdc_17e5_ff2a_1d40fca2292d
  ddc84dc9_3ff8_b87b_43e9_d2738540d6cc["on_chain_start()"]
  351e9b50_c4fb_2046_1e46_9c34747d671c -->|method| ddc84dc9_3ff8_b87b_43e9_d2738540d6cc
  11dd6125_4d43_b7d6_5903_5934d3a1ca14["on_tool_start()"]
  351e9b50_c4fb_2046_1e46_9c34747d671c -->|method| 11dd6125_4d43_b7d6_5903_5934d3a1ca14
  4905a1fc_f96e_f64e_0585_ac9885370ac9["on_custom_event()"]
  351e9b50_c4fb_2046_1e46_9c34747d671c -->|method| 4905a1fc_f96e_f64e_0585_ac9885370ac9
  153dc2bf_2edc_581a_d68f_33d14a1ed3d2["on_retriever_start()"]
  351e9b50_c4fb_2046_1e46_9c34747d671c -->|method| 153dc2bf_2edc_581a_d68f_33d14a1ed3d2
  cc59e5e2_3c97_43ef_cfa9_3887ae8c9c0d["configure()"]
  351e9b50_c4fb_2046_1e46_9c34747d671c -->|method| cc59e5e2_3c97_43ef_cfa9_3887ae8c9c0d

Relationship Graph

Source Code

libs/core/langchain_core/callbacks/manager.py lines 1777–2163

class AsyncCallbackManager(BaseCallbackManager):
    """Async callback manager that handles callbacks from LangChain."""

    @property
    def is_async(self) -> bool:
        """Return whether the handler is async."""
        return True

    async def on_llm_start(
        self,
        serialized: dict[str, Any],
        prompts: list[str],
        run_id: UUID | None = None,
        **kwargs: Any,
    ) -> list[AsyncCallbackManagerForLLMRun]:
        """Run when LLM starts running.

        Args:
            serialized: The serialized LLM.
            prompts: The list of prompts.
            run_id: The ID of the run.
            **kwargs: Additional keyword arguments.

        Returns:
            The list of async callback managers, one for each LLM run corresponding to
            each prompt.
        """
        inline_tasks = []
        non_inline_tasks = []
        inline_handlers = [handler for handler in self.handlers if handler.run_inline]
        non_inline_handlers = [
            handler for handler in self.handlers if not handler.run_inline
        ]
        managers = []

        for prompt in prompts:
            if run_id is not None:
                run_id_ = run_id
                run_id = None
            else:
                run_id_ = uuid7()

            if inline_handlers:
                inline_tasks.append(
                    ahandle_event(
                        inline_handlers,
                        "on_llm_start",
                        "ignore_llm",
                        serialized,
                        [prompt],
                        run_id=run_id_,
                        parent_run_id=self.parent_run_id,
                        tags=self.tags,
                        metadata=self.metadata,
                        **kwargs,
                    )
                )
            else:
                non_inline_tasks.append(
                    ahandle_event(
                        non_inline_handlers,
                        "on_llm_start",
                        "ignore_llm",
                        serialized,
                        [prompt],
                        run_id=run_id_,
                        parent_run_id=self.parent_run_id,
                        tags=self.tags,
                        metadata=self.metadata,
                        **kwargs,
                    )
                )

            managers.append(
                AsyncCallbackManagerForLLMRun(
                    run_id=run_id_,
                    handlers=self.handlers,
                    inheritable_handlers=self.inheritable_handlers,
                    parent_run_id=self.parent_run_id,
                    tags=self.tags,
                    inheritable_tags=self.inheritable_tags,

Frequently Asked Questions

What is the AsyncCallbackManager class?
AsyncCallbackManager is a class in the langchain codebase, defined in libs/core/langchain_core/callbacks/manager.py.
Where is AsyncCallbackManager defined?
AsyncCallbackManager is defined in libs/core/langchain_core/callbacks/manager.py at line 1777.
What does AsyncCallbackManager extend?
AsyncCallbackManager extends BaseCallbackManager.

Analyze Your Own Codebase

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

Try Supermodel Free