From e7d50f65a7d5f1f512aef12e9c09c8e45151061c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 24 Apr 2026 21:14:19 +0000 Subject: [PATCH 1/2] Initial plan From 8a099b737aacad153fc33ee5b17ca328a8234a9b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 24 Apr 2026 21:15:30 +0000 Subject: [PATCH 2/2] Fix broken cross-reference links and raw GitHub URLs in CustomLangChainTracer docstrings Agent-Logs-Url: https://github.com/microsoft/Agent365-python/sessions/127abf3a-d980-4c99-a838-52445e27f85d Co-authored-by: JimDaly <6353736+JimDaly@users.noreply.github.com> --- .../extensions/langchain/tracer.py | 29 +++++++++---------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/libraries/microsoft-agents-a365-observability-extensions-langchain/microsoft_agents_a365/observability/extensions/langchain/tracer.py b/libraries/microsoft-agents-a365-observability-extensions-langchain/microsoft_agents_a365/observability/extensions/langchain/tracer.py index 992f479a..4cbc2a00 100644 --- a/libraries/microsoft-agents-a365-observability-extensions-langchain/microsoft_agents_a365/observability/extensions/langchain/tracer.py +++ b/libraries/microsoft-agents-a365-observability-extensions-langchain/microsoft_agents_a365/observability/extensions/langchain/tracer.py @@ -84,14 +84,15 @@ def __init__( *args: Any, **kwargs: Any, ) -> None: - """Initialize the OpenInferenceTracer. + """Initialize the CustomLangChainTracer. Args: - tracer (trace_api.Tracer): The OpenTelemetry tracer for creating spans. - separate_trace_from_runtime_context (bool): When True, always start a new trace for each - span without a parent, isolating it from any existing trace in the runtime context. - *args (Any): Positional arguments for BaseTracer. - **kwargs (Any): Keyword arguments for BaseTracer. + tracer: The OpenTelemetry tracer for creating spans. + separate_trace_from_runtime_context: When True, always start a new + trace for each span without a parent, isolating it from any + existing trace in the runtime context. + *args: Positional arguments forwarded to BaseTracer. + **kwargs: Keyword arguments forwarded to BaseTracer. """ super().__init__(*args, **kwargs) if TYPE_CHECKING: @@ -203,17 +204,13 @@ def on_tool_error(self, error: BaseException, *args: Any, run_id: UUID, **kwargs return super().on_tool_error(error, *args, run_id=run_id, **kwargs) def on_chat_model_start(self, *args: Any, **kwargs: Any) -> Run: - """ - This emulates the behavior of the LangChainTracer. - https://github.com/langchain-ai/langchain/blob/c01467b1f4f9beae8f1edb105b17aa4f36bf6573/libs/core/langchain_core/tracers/langchain.py#L115 - - Although this method exists on the parent class, i.e. `BaseTracer`, - it requires setting `self._schema_format = "original+chat"`. - https://github.com/langchain-ai/langchain/blob/c01467b1f4f9beae8f1edb105b17aa4f36bf6573/libs/core/langchain_core/tracers/base.py#L170 + """Handle chat model start events. - But currently self._schema_format is marked for internal use. - https://github.com/langchain-ai/langchain/blob/c01467b1f4f9beae8f1edb105b17aa4f36bf6573/libs/core/langchain_core/tracers/base.py#L60 - """ # noqa: E501 + Delegates to ``LangChainTracer.on_chat_model_start`` to obtain correct + chat-formatted spans. The ``BaseTracer`` implementation requires setting + an internal ``_schema_format`` flag; delegating to ``LangChainTracer`` + avoids depending on that private attribute. + """ return LangChainTracer.on_chat_model_start(self, *args, **kwargs) # type: ignore