Home / Class/ CallbackManager Class — langchain Architecture

CallbackManager Class — langchain Architecture

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

Entity Profile

Dependency Diagram

graph TD
  6d562bf2_4eaf_9d7e_e2d7_c0b64e8922fb["CallbackManager"]
  6941cf5d_ae5f_e8ff_093f_1e580e3665f7["BaseCallbackManager"]
  6d562bf2_4eaf_9d7e_e2d7_c0b64e8922fb -->|extends| 6941cf5d_ae5f_e8ff_093f_1e580e3665f7
  35cf5db6_bcb1_b854_6ebb_5e0368e51b58["manager.py"]
  6d562bf2_4eaf_9d7e_e2d7_c0b64e8922fb -->|defined in| 35cf5db6_bcb1_b854_6ebb_5e0368e51b58
  cd740152_3bc4_b1a3_a8cb_24d002dffed8["on_llm_start()"]
  6d562bf2_4eaf_9d7e_e2d7_c0b64e8922fb -->|method| cd740152_3bc4_b1a3_a8cb_24d002dffed8
  5dc6c7e9_f972_73d2_4e22_de91003c2613["on_chat_model_start()"]
  6d562bf2_4eaf_9d7e_e2d7_c0b64e8922fb -->|method| 5dc6c7e9_f972_73d2_4e22_de91003c2613
  4d292b6d_d00a_c565_c01b_5b3add06f430["on_chain_start()"]
  6d562bf2_4eaf_9d7e_e2d7_c0b64e8922fb -->|method| 4d292b6d_d00a_c565_c01b_5b3add06f430
  ab0ddeb1_d3ed_2684_0ad1_3e053d40d3a0["on_tool_start()"]
  6d562bf2_4eaf_9d7e_e2d7_c0b64e8922fb -->|method| ab0ddeb1_d3ed_2684_0ad1_3e053d40d3a0
  0c5084d4_da84_0cc9_2bde_0afad9e0f8e4["on_retriever_start()"]
  6d562bf2_4eaf_9d7e_e2d7_c0b64e8922fb -->|method| 0c5084d4_da84_0cc9_2bde_0afad9e0f8e4
  2e5dbbf3_7483_d224_7983_94f06da7a574["on_custom_event()"]
  6d562bf2_4eaf_9d7e_e2d7_c0b64e8922fb -->|method| 2e5dbbf3_7483_d224_7983_94f06da7a574
  78e5c9a3_0255_b848_db0f_409a59c0db26["configure()"]
  6d562bf2_4eaf_9d7e_e2d7_c0b64e8922fb -->|method| 78e5c9a3_0255_b848_db0f_409a59c0db26

Relationship Graph

Source Code

libs/core/langchain_core/callbacks/manager.py lines 1304–1643

class CallbackManager(BaseCallbackManager):
    """Callback manager for LangChain."""

    def on_llm_start(
        self,
        serialized: dict[str, Any],
        prompts: list[str],
        run_id: UUID | None = None,
        **kwargs: Any,
    ) -> list[CallbackManagerForLLMRun]:
        """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:
            A callback manager for each prompt as an LLM run.

        """
        managers = []
        for i, prompt in enumerate(prompts):
            # Can't have duplicate runs with the same run ID (if provided)
            run_id_ = run_id if i == 0 and run_id is not None else uuid7()
            handle_event(
                self.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(
                CallbackManagerForLLMRun(
                    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,
                    metadata=self.metadata,
                    inheritable_metadata=self.inheritable_metadata,
                )
            )

        return managers

    def on_chat_model_start(
        self,
        serialized: dict[str, Any],
        messages: list[list[BaseMessage]],
        run_id: UUID | None = None,
        **kwargs: Any,
    ) -> list[CallbackManagerForLLMRun]:
        """Run when chat model starts running.

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

        Returns:
            A callback manager for each list of messages as an LLM run.

        """
        managers = []
        for message_list in messages:
            if run_id is not None:
                run_id_ = run_id
                run_id = None
            else:
                run_id_ = uuid7()
            handle_event(

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free