BaseCallbackManager Class — langchain Architecture
Architecture documentation for the BaseCallbackManager class in base.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 24bc19d6_d1f4_bd59_6fc4_6ef5b08a4d41["BaseCallbackManager"] 3b53de05_0697_704a_50e8_c5f9aaeba5ae["CallbackManagerMixin"] 24bc19d6_d1f4_bd59_6fc4_6ef5b08a4d41 -->|extends| 3b53de05_0697_704a_50e8_c5f9aaeba5ae e787cbbd_76a7_b640_29ac_5595d6b9afee["base.py"] 24bc19d6_d1f4_bd59_6fc4_6ef5b08a4d41 -->|defined in| e787cbbd_76a7_b640_29ac_5595d6b9afee fb255192_5aed_e5e5_8ecd_b7e483ab04e3["__init__()"] 24bc19d6_d1f4_bd59_6fc4_6ef5b08a4d41 -->|method| fb255192_5aed_e5e5_8ecd_b7e483ab04e3 21f74ec3_56bb_1283_982b_71729892f487["copy()"] 24bc19d6_d1f4_bd59_6fc4_6ef5b08a4d41 -->|method| 21f74ec3_56bb_1283_982b_71729892f487 5a1be959_a33e_5d3a_2ad4_0ce88cdcf3b2["merge()"] 24bc19d6_d1f4_bd59_6fc4_6ef5b08a4d41 -->|method| 5a1be959_a33e_5d3a_2ad4_0ce88cdcf3b2 214497f0_8c6f_6d2f_cfcc_e7b608ab4bfa["is_async()"] 24bc19d6_d1f4_bd59_6fc4_6ef5b08a4d41 -->|method| 214497f0_8c6f_6d2f_cfcc_e7b608ab4bfa 14741891_16ac_1712_0f46_0c996f33bf5f["add_handler()"] 24bc19d6_d1f4_bd59_6fc4_6ef5b08a4d41 -->|method| 14741891_16ac_1712_0f46_0c996f33bf5f 50f1348e_1fbc_b7e0_3fac_6a790292d15d["remove_handler()"] 24bc19d6_d1f4_bd59_6fc4_6ef5b08a4d41 -->|method| 50f1348e_1fbc_b7e0_3fac_6a790292d15d d3ca4cfe_17d5_f870_d94f_bf0e7595143d["set_handlers()"] 24bc19d6_d1f4_bd59_6fc4_6ef5b08a4d41 -->|method| d3ca4cfe_17d5_f870_d94f_bf0e7595143d dc60ed36_69b4_1b87_0566_ea201ad6cd90["set_handler()"] 24bc19d6_d1f4_bd59_6fc4_6ef5b08a4d41 -->|method| dc60ed36_69b4_1b87_0566_ea201ad6cd90 a56e9690_28ab_6e7a_7f60_70921e03b422["add_tags()"] 24bc19d6_d1f4_bd59_6fc4_6ef5b08a4d41 -->|method| a56e9690_28ab_6e7a_7f60_70921e03b422 97e37111_6cf4_f745_857a_a3274612a054["remove_tags()"] 24bc19d6_d1f4_bd59_6fc4_6ef5b08a4d41 -->|method| 97e37111_6cf4_f745_857a_a3274612a054 c98c3756_41e0_73ad_cf46_70fd4638a995["add_metadata()"] 24bc19d6_d1f4_bd59_6fc4_6ef5b08a4d41 -->|method| c98c3756_41e0_73ad_cf46_70fd4638a995 e7520ce1_8ea7_3130_15ac_14209b36644d["remove_metadata()"] 24bc19d6_d1f4_bd59_6fc4_6ef5b08a4d41 -->|method| e7520ce1_8ea7_3130_15ac_14209b36644d
Relationship Graph
Source Code
libs/core/langchain_core/callbacks/base.py lines 898–1114
class BaseCallbackManager(CallbackManagerMixin):
"""Base callback manager."""
def __init__(
self,
handlers: list[BaseCallbackHandler],
inheritable_handlers: list[BaseCallbackHandler] | None = None,
parent_run_id: UUID | None = None,
*,
tags: list[str] | None = None,
inheritable_tags: list[str] | None = None,
metadata: dict[str, Any] | None = None,
inheritable_metadata: dict[str, Any] | None = None,
) -> None:
"""Initialize callback manager.
Args:
handlers: The handlers.
inheritable_handlers: The inheritable handlers.
parent_run_id: The parent run ID.
tags: The tags.
inheritable_tags: The inheritable tags.
metadata: The metadata.
inheritable_metadata: The inheritable metadata.
"""
self.handlers: list[BaseCallbackHandler] = handlers
self.inheritable_handlers: list[BaseCallbackHandler] = (
inheritable_handlers or []
)
self.parent_run_id: UUID | None = parent_run_id
self.tags = tags or []
self.inheritable_tags = inheritable_tags or []
self.metadata = metadata or {}
self.inheritable_metadata = inheritable_metadata or {}
def copy(self) -> Self:
"""Return a copy of the callback manager."""
return self.__class__(
handlers=self.handlers.copy(),
inheritable_handlers=self.inheritable_handlers.copy(),
parent_run_id=self.parent_run_id,
tags=self.tags.copy(),
inheritable_tags=self.inheritable_tags.copy(),
metadata=self.metadata.copy(),
inheritable_metadata=self.inheritable_metadata.copy(),
)
def merge(self, other: BaseCallbackManager) -> Self:
"""Merge the callback manager with another callback manager.
May be overwritten in subclasses.
Primarily used internally within `merge_configs`.
Returns:
The merged callback manager of the same type as the current object.
Example:
```python
# Merging two callback managers`
from langchain_core.callbacks.manager import (
CallbackManager,
trace_as_chain_group,
)
from langchain_core.callbacks.stdout import StdOutCallbackHandler
manager = CallbackManager(handlers=[StdOutCallbackHandler()], tags=["tag2"])
with trace_as_chain_group("My Group Name", tags=["tag1"]) as group_manager:
merged_manager = group_manager.merge(manager)
print(merged_manager.handlers)
# [
# <langchain_core.callbacks.stdout.StdOutCallbackHandler object at ...>,
# <langchain_core.callbacks.streaming_stdout.StreamingStdOutCallbackHandler object at ...>,
# ]
print(merged_manager.tags)
# ['tag2', 'tag1']
```
""" # noqa: E501
# Combine handlers and inheritable_handlers separately, using sets
# to deduplicate (order not preserved)
Defined In
Extends
Source
Frequently Asked Questions
What is the BaseCallbackManager class?
BaseCallbackManager is a class in the langchain codebase, defined in libs/core/langchain_core/callbacks/base.py.
Where is BaseCallbackManager defined?
BaseCallbackManager is defined in libs/core/langchain_core/callbacks/base.py at line 898.
What does BaseCallbackManager extend?
BaseCallbackManager extends CallbackManagerMixin.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free