AsyncRootListenersTracer Class — langchain Architecture
Architecture documentation for the AsyncRootListenersTracer class in root_listeners.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD a10e05b7_8a18_0e17_1c03_e7ac470fe677["AsyncRootListenersTracer"] b3ab8001_c14c_4191_ca53_2dbabc99917f["AsyncBaseTracer"] a10e05b7_8a18_0e17_1c03_e7ac470fe677 -->|extends| b3ab8001_c14c_4191_ca53_2dbabc99917f cc8ba568_e178_2f0e_b70b_f9448e561f12["root_listeners.py"] a10e05b7_8a18_0e17_1c03_e7ac470fe677 -->|defined in| cc8ba568_e178_2f0e_b70b_f9448e561f12 52bfd423_b702_638e_0981_174791c13ff8["__init__()"] a10e05b7_8a18_0e17_1c03_e7ac470fe677 -->|method| 52bfd423_b702_638e_0981_174791c13ff8 c7869097_5c97_72c1_61d7_3286d7cdd417["_persist_run()"] a10e05b7_8a18_0e17_1c03_e7ac470fe677 -->|method| c7869097_5c97_72c1_61d7_3286d7cdd417 5675113f_efde_1b0e_b0d7_5923081cc436["_on_run_create()"] a10e05b7_8a18_0e17_1c03_e7ac470fe677 -->|method| 5675113f_efde_1b0e_b0d7_5923081cc436 e4e585e7_0325_d2c6_deb7_0dd44cdf3df6["_on_run_update()"] a10e05b7_8a18_0e17_1c03_e7ac470fe677 -->|method| e4e585e7_0325_d2c6_deb7_0dd44cdf3df6
Relationship Graph
Source Code
libs/core/langchain_core/tracers/root_listeners.py lines 78–130
class AsyncRootListenersTracer(AsyncBaseTracer):
"""Async tracer that calls listeners on run start, end, and error."""
log_missing_parent = False
"""Whether to log a warning if the parent is missing."""
def __init__(
self,
*,
config: RunnableConfig,
on_start: AsyncListener | None,
on_end: AsyncListener | None,
on_error: AsyncListener | None,
) -> None:
"""Initialize the tracer.
Args:
config: The runnable config.
on_start: The listener to call on run start.
on_end: The listener to call on run end.
on_error: The listener to call on run error
"""
super().__init__(_schema_format="original+chat")
self.config = config
self._arg_on_start = on_start
self._arg_on_end = on_end
self._arg_on_error = on_error
self.root_id: UUID | None = None
async def _persist_run(self, run: Run) -> None:
# This is a legacy method only called once for an entire run tree
# therefore not useful here
pass
async def _on_run_create(self, run: Run) -> None:
if self.root_id is not None:
return
self.root_id = run.id
if self._arg_on_start is not None:
await acall_func_with_variable_args(self._arg_on_start, run, self.config)
async def _on_run_update(self, run: Run) -> None:
if run.id != self.root_id:
return
if run.error is None:
if self._arg_on_end is not None:
await acall_func_with_variable_args(self._arg_on_end, run, self.config)
elif self._arg_on_error is not None:
await acall_func_with_variable_args(self._arg_on_error, run, self.config)
Extends
Source
Frequently Asked Questions
What is the AsyncRootListenersTracer class?
AsyncRootListenersTracer is a class in the langchain codebase, defined in libs/core/langchain_core/tracers/root_listeners.py.
Where is AsyncRootListenersTracer defined?
AsyncRootListenersTracer is defined in libs/core/langchain_core/tracers/root_listeners.py at line 78.
What does AsyncRootListenersTracer extend?
AsyncRootListenersTracer extends AsyncBaseTracer.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free