From 79be213b7a202ca5f2895b3c132247a996337ce1 Mon Sep 17 00:00:00 2001 From: Pujarini Mohapatra Date: Fri, 20 Mar 2026 18:29:35 +0530 Subject: [PATCH 1/4] fix: resolve Windows dependency installation issues in CrewAI sample (#241) - Cap `requires-python` at <3.14 to prevent pydantic-core build failure (PyO3 v0.24.1 does not support Python 3.14) - Add uv override to cap lancedb at <=0.30.0 on Windows; lancedb 0.30.1+ only ships Linux/macOS wheels and has no win_amd64 distribution Fixes #241 --- python/crewai/sample_agent/pyproject.toml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/python/crewai/sample_agent/pyproject.toml b/python/crewai/sample_agent/pyproject.toml index 792c5b04..ecd29744 100644 --- a/python/crewai/sample_agent/pyproject.toml +++ b/python/crewai/sample_agent/pyproject.toml @@ -3,7 +3,7 @@ name = "crew_agent" version = "0.1.0" description = "CrewAI Sample Agent using Microsoft Agent 365 SDK with MCP tooling support" authors = [{ name = "Microsoft", email = "support@microsoft.com" }] -requires-python = ">=3.11" +requires-python = ">=3.11,<3.14" dependencies = [ "crewai[azure-ai-inference,tools]==1.4.1", "pysqlite3-binary>=0.5.2; sys_platform == 'linux'", @@ -42,3 +42,7 @@ type = "crew" # This ensures we always get the latest features and fixes [tool.uv] prerelease = "allow" +override-dependencies = [ + # lancedb 0.30.1+ has no Windows wheels; cap at 0.30.0 which does + "lancedb<=0.30.0; sys_platform == 'win32'", +] From 468ad630bbd27293c6d91f883f2eb4d414e6683b Mon Sep 17 00:00:00 2001 From: biswapm Date: Thu, 26 Mar 2026 11:31:11 +0530 Subject: [PATCH 2/4] fix: address PR review comments --- python/crewai/sample_agent/README.md | 2 +- python/crewai/sample_agent/pyproject.toml | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/python/crewai/sample_agent/README.md b/python/crewai/sample_agent/README.md index f0a0589d..2f07ca30 100644 --- a/python/crewai/sample_agent/README.md +++ b/python/crewai/sample_agent/README.md @@ -17,7 +17,7 @@ For comprehensive documentation and guidance on building agents with the Microso ## Prerequisites -- Python 3.11+ +- Python 3.11–3.13 - [UV](https://docs.astral.sh/uv/) (recommended for dependency management) - Azure OpenAI API credentials OR OpenAI API key - [Tavily API key](https://tavily.com) for weather search functionality diff --git a/python/crewai/sample_agent/pyproject.toml b/python/crewai/sample_agent/pyproject.toml index ecd29744..22115660 100644 --- a/python/crewai/sample_agent/pyproject.toml +++ b/python/crewai/sample_agent/pyproject.toml @@ -26,6 +26,9 @@ dependencies = [ "microsoft_agents_a365_notifications>=0.1.0", "microsoft_agents_a365_runtime>=0.1.0", "wrapt>=2.0.1", + # lancedb 0.30.1+ has no Windows wheels; cap at 0.30.0 on Windows. + # Also enforced via [tool.uv] override-dependencies for uv users. + "lancedb<=0.30.0; sys_platform == 'win32'", ] [project.scripts] From 107c399ac6ff8c03483f68a74d88d4fa42c5002f Mon Sep 17 00:00:00 2001 From: Pujarini Mohapatra Date: Thu, 26 Mar 2026 11:44:31 +0530 Subject: [PATCH 3/4] Update python/crewai/sample_agent/pyproject.toml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- python/crewai/sample_agent/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/crewai/sample_agent/pyproject.toml b/python/crewai/sample_agent/pyproject.toml index 22115660..66b2af1d 100644 --- a/python/crewai/sample_agent/pyproject.toml +++ b/python/crewai/sample_agent/pyproject.toml @@ -46,6 +46,6 @@ type = "crew" [tool.uv] prerelease = "allow" override-dependencies = [ - # lancedb 0.30.1+ has no Windows wheels; cap at 0.30.0 which does + # lancedb 0.30.1+ has no Windows wheels; cap at 0.30.0 which does provide Windows wheels. "lancedb<=0.30.0; sys_platform == 'win32'", ] From e63612f8ff651fd5598b1c3814bcc1dc0aab34c8 Mon Sep 17 00:00:00 2001 From: biswapm Date: Thu, 26 Mar 2026 11:48:00 +0530 Subject: [PATCH 4/4] fix: remove recordResponseId and correlationId calls not in SDK types --- nodejs/claude/sample-agent/src/agent.ts | 1 - nodejs/claude/sample-agent/src/client.ts | 1 - nodejs/langchain/sample-agent/src/agent.ts | 1 - nodejs/langchain/sample-agent/src/client.ts | 1 - nodejs/openai/sample-agent/src/agent.ts | 1 - nodejs/openai/sample-agent/src/client.ts | 1 - nodejs/vercel-sdk/sample-agent/src/client.ts | 1 - 7 files changed, 7 deletions(-) diff --git a/nodejs/claude/sample-agent/src/agent.ts b/nodejs/claude/sample-agent/src/agent.ts index f5d3ef80..f4b47c17 100644 --- a/nodejs/claude/sample-agent/src/agent.ts +++ b/nodejs/claude/sample-agent/src/agent.ts @@ -85,7 +85,6 @@ export class MyAgent extends AgentApplication { new BaggageBuilder(), turnContext ).sessionDescription('Initial onboarding session') - .correlationId("7ff6dca0-917c-4bb0-b31a-794e533d8aad") .build(); // Preload/refresh exporter token diff --git a/nodejs/claude/sample-agent/src/client.ts b/nodejs/claude/sample-agent/src/client.ts index 88b6c341..76350ee6 100644 --- a/nodejs/claude/sample-agent/src/client.ts +++ b/nodejs/claude/sample-agent/src/client.ts @@ -158,7 +158,6 @@ class ClaudeClient implements Client { // Record the inference response with token usage scope?.recordOutputMessages([response]); scope?.recordInputMessages([prompt]); - scope?.recordResponseId(`resp-${Date.now()}`); scope?.recordInputTokens(45); scope?.recordOutputTokens(78); scope?.recordFinishReasons(['stop']); diff --git a/nodejs/langchain/sample-agent/src/agent.ts b/nodejs/langchain/sample-agent/src/agent.ts index a00b9cb1..58defd08 100644 --- a/nodejs/langchain/sample-agent/src/agent.ts +++ b/nodejs/langchain/sample-agent/src/agent.ts @@ -80,7 +80,6 @@ export class A365Agent extends AgentApplication { new BaggageBuilder(), turnContext ).sessionDescription('Initial onboarding session') - .correlationId(`corr-${Date.now()}`) .build(); // Preload/refresh exporter token diff --git a/nodejs/langchain/sample-agent/src/client.ts b/nodejs/langchain/sample-agent/src/client.ts index fab36352..b24e5072 100644 --- a/nodejs/langchain/sample-agent/src/client.ts +++ b/nodejs/langchain/sample-agent/src/client.ts @@ -227,7 +227,6 @@ class LangChainClient implements Client { // Record the inference response with token usage scope.recordOutputMessages([response]); scope.recordInputMessages([prompt]); - scope.recordResponseId(`resp-${Date.now()}`); scope.recordInputTokens(45); scope.recordOutputTokens(78); scope.recordFinishReasons(['stop']); diff --git a/nodejs/openai/sample-agent/src/agent.ts b/nodejs/openai/sample-agent/src/agent.ts index ab66409a..38a66892 100644 --- a/nodejs/openai/sample-agent/src/agent.ts +++ b/nodejs/openai/sample-agent/src/agent.ts @@ -90,7 +90,6 @@ export class MyAgent extends AgentApplication { new BaggageBuilder(), turnContext ).sessionDescription('Initial onboarding session') - .correlationId("7ff6dca0-917c-4bb0-b31a-794e533d8aad") .build(); // Preloads or refreshes the Observability token used by the Agent 365 Observability exporter. diff --git a/nodejs/openai/sample-agent/src/client.ts b/nodejs/openai/sample-agent/src/client.ts index 37b7b2b1..428e9fbf 100644 --- a/nodejs/openai/sample-agent/src/client.ts +++ b/nodejs/openai/sample-agent/src/client.ts @@ -166,7 +166,6 @@ class OpenAIClient implements Client { // Record the inference response with token usage scope.recordOutputMessages([response]); scope.recordInputMessages([prompt]); - scope.recordResponseId(`resp-${Date.now()}`); scope.recordInputTokens(45); scope.recordOutputTokens(78); scope.recordFinishReasons(['stop']); diff --git a/nodejs/vercel-sdk/sample-agent/src/client.ts b/nodejs/vercel-sdk/sample-agent/src/client.ts index a0a42c15..039ae416 100644 --- a/nodejs/vercel-sdk/sample-agent/src/client.ts +++ b/nodejs/vercel-sdk/sample-agent/src/client.ts @@ -122,7 +122,6 @@ class VercelAiClient implements Client { response = await this.invokeAgent(prompt); scope.recordOutputMessages([response]); scope.recordInputMessages([prompt]); - scope.recordResponseId(`resp-${Date.now()}`); scope.recordInputTokens(45); scope.recordOutputTokens(78); scope.recordFinishReasons(['stop']);