From 4b8bcea3b9f39df6997825ed4463fc4d20feba0c Mon Sep 17 00:00:00 2001 From: Paul Van Eck Date: Sat, 28 Mar 2026 02:00:55 +0000 Subject: [PATCH 1/2] [Agentserver] Make tracing dependencies optional Currently there is an issue with the apistub check stemming from the langchain-azure-ai dependency. However, based on the code, `langchain_azure_ai` isn't needed for the code to run, so it's fine to make this an optional dependency. It's purely for enabling telemetry. --- .../azure-ai-agentserver-langgraph/dev_requirements.txt | 3 ++- .../azure-ai-agentserver-langgraph/pyproject.toml | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/sdk/agentserver/azure-ai-agentserver-langgraph/dev_requirements.txt b/sdk/agentserver/azure-ai-agentserver-langgraph/dev_requirements.txt index cb4256413d41..825a28eb9553 100644 --- a/sdk/agentserver/azure-ai-agentserver-langgraph/dev_requirements.txt +++ b/sdk/agentserver/azure-ai-agentserver-langgraph/dev_requirements.txt @@ -1,3 +1,4 @@ -e ../../../eng/tools/azure-sdk-tools ../azure-ai-agentserver-core -python-dotenv \ No newline at end of file +python-dotenv +langchain-azure-ai[opentelemetry]>=0.1.4 diff --git a/sdk/agentserver/azure-ai-agentserver-langgraph/pyproject.toml b/sdk/agentserver/azure-ai-agentserver-langgraph/pyproject.toml index 5552ff8233d2..79ef16f164eb 100644 --- a/sdk/agentserver/azure-ai-agentserver-langgraph/pyproject.toml +++ b/sdk/agentserver/azure-ai-agentserver-langgraph/pyproject.toml @@ -22,11 +22,15 @@ dependencies = [ "azure-ai-agentserver-core", "langchain>0.3.5", "langchain-openai>0.3.10", - "langchain-azure-ai[opentelemetry]>=0.1.4", "langgraph>0.5.0", "opentelemetry-exporter-otlp-proto-http", ] +[project.optional-dependencies] +tracing = [ + "langchain-azure-ai[opentelemetry]>=0.1.4", +] + [build-system] requires = ["setuptools>=69", "wheel"] build-backend = "setuptools.build_meta" @@ -64,4 +68,4 @@ pyright = false verifytypes = false # incompatible python version for -core verify_keywords = false mindependency = false # depends on -core package -whl_no_aio = false \ No newline at end of file +whl_no_aio = false From 1dda488dc43c0b3a3ba4886f0ad369abe2d55339 Mon Sep 17 00:00:00 2001 From: Paul Van Eck Date: Sat, 28 Mar 2026 03:34:43 +0000 Subject: [PATCH 2/2] Fix mypy Signed-off-by: Paul Van Eck --- .../azure/ai/agentserver/langgraph/langgraph.py | 2 +- .../langgraph/models/langgraph_response_converter.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/agentserver/azure-ai-agentserver-langgraph/azure/ai/agentserver/langgraph/langgraph.py b/sdk/agentserver/azure-ai-agentserver-langgraph/azure/ai/agentserver/langgraph/langgraph.py index 0d2b60bac248..efa2b3393266 100644 --- a/sdk/agentserver/azure-ai-agentserver-langgraph/azure/ai/agentserver/langgraph/langgraph.py +++ b/sdk/agentserver/azure-ai-agentserver-langgraph/azure/ai/agentserver/langgraph/langgraph.py @@ -101,7 +101,7 @@ async def agent_run_non_stream(self, input_data: dict, context: AgentRunContext) try: config = self.create_runnable_config(context) stream_mode = self.state_converter.get_stream_mode(context) - result = await self.graph.ainvoke(input_data, config=config, stream_mode=stream_mode) + result = await self.graph.ainvoke(input_data, config=config, stream_mode=stream_mode) # type: ignore output = self.state_converter.state_to_response(result, context) return output except Exception as e: diff --git a/sdk/agentserver/azure-ai-agentserver-langgraph/azure/ai/agentserver/langgraph/models/langgraph_response_converter.py b/sdk/agentserver/azure-ai-agentserver-langgraph/azure/ai/agentserver/langgraph/models/langgraph_response_converter.py index 62560279cdc6..086e75e287d4 100644 --- a/sdk/agentserver/azure-ai-agentserver-langgraph/azure/ai/agentserver/langgraph/models/langgraph_response_converter.py +++ b/sdk/agentserver/azure-ai-agentserver-langgraph/azure/ai/agentserver/langgraph/models/langgraph_response_converter.py @@ -66,7 +66,7 @@ def convert_output_message(self, output_message: AnyMessage): # pylint: disable + "Only the first one will be processed." ) tool_call = output_message.tool_calls[0] - name, call_id, argument = extract_function_call(tool_call) + name, call_id, argument = extract_function_call(tool_call) # type: ignore return project_models.FunctionToolCallItemResource( call_id=call_id, name=name,