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(
Extends
Source
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