From 38d9144726f76267fe723b29e66f48763c99f3e6 Mon Sep 17 00:00:00 2001 From: Mrunal Hirve Date: Sat, 8 Nov 2025 23:13:09 -0800 Subject: [PATCH 01/16] initial --- README.md | 137 ++++++++++---- packages/agents-a365-notifications/README.md | 115 +++++------- .../README.md | 37 ++-- packages/agents-a365-observability/README.md | 93 ++++------ packages/agents-a365-runtime/README.md | 78 ++++++-- .../README.md | 56 +++--- .../README.md | 57 +++--- .../README.md | 60 +++---- packages/agents-a365-tooling/README.md | 170 ++++-------------- 9 files changed, 377 insertions(+), 426 deletions(-) diff --git a/README.md b/README.md index 94a926d0..bd02b9d0 100644 --- a/README.md +++ b/README.md @@ -1,51 +1,126 @@ -# Microsoft Agent365 SDK for TypeScript +# Microsoft Agents A365 SDK - Node.js -The Microsoft Agent365 SDK provides comprehensive observability, tooling, and runtime capabilities for AI agents and tools built with TypeScript/Node.js. +[![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-observability?label=npm&logo=npm)](https://www.npmjs.com/search?q=%40microsoft%2Fagents-a365) +[![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-observability?label=Downloads&logo=npm)](https://www.npmjs.com/search?q=%40microsoft%2Fagents-a365) +[![Build Status](https://img.shields.io/github/actions/workflow/status/microsoft/Agent365-nodejs/build.yml?branch=main&label=Build&logo=github)](https://github.com/microsoft/Agent365-nodejs/actions) +[![License](https://img.shields.io/github/license/microsoft/Agent365-nodejs?label=License)](LICENSE.md) +[![Node.js Version](https://img.shields.io/badge/Node.js-18%2B-339933?logo=node.js)](https://nodejs.org/) +[![Contributors](https://img.shields.io/github/contributors/microsoft/Agent365-nodejs?label=Contributors&logo=github)](https://github.com/microsoft/Agent365-nodejs/graphs/contributors) -## 📦 Packages +The Microsoft Agents A365 SDK extends the Microsoft 365 Agents SDK with enterprise-grade capabilities for building sophisticated agents. This SDK provides comprehensive tooling for observability, notifications, runtime utilities, and development tools that help developers create production-ready agents for platforms including M365, Teams, Copilot Studio, and Webchat. -This monorepo contains several specialized packages: +The Microsoft Agents A365 SDK focuses on four core areas: -### 🔍 **Observability** -- **[@microsoft/agents-a365-observability](./packages/agents-a365-observability/README.md)** - OpenTelemetry-based tracing and monitoring for AI agents - - Agent invocation tracking with caller context - - Tool execution monitoring with endpoint support - - LLM inference telemetry with granular token tracking - - Baggage propagation for distributed agent systems +- **Observability**: Comprehensive tracing, caching, and monitoring capabilities for agent applications +- **Notifications**: Agent notification services and models for handling user notifications +- **Runtime**: Core utilities and extensions for agent runtime operations +- **Tooling**: Developer tools and utilities for building sophisticated agent applications -### 🛠️ **Tooling & Extensions** -- **[@microsoft/agents-a365-tooling](./packages/agents-a365-tooling/README.md)** - Core MCP (Model Context Protocol) tooling infrastructure -- **[@microsoft/agents-a365-tooling-extensions-claude](./packages/agents-a365-tooling-extensions-claude/README.md)** - Claude/Anthropic integration -- **[@microsoft/agents-a365-tooling-extensions-langchain](./packages/agents-a365-tooling-extensions-langchain/README.md)** - LangChain integration -- **[@microsoft/agents-a365-tooling-extensions-openai](./packages/agents-a365-tooling-extensions-openai/README.md)** - OpenAI integration +## Current Project State -### 🚀 **Runtime & Infrastructure** -- **[@microsoft/agents-a365-runtime](./packages/agents-a365-runtime/README.md)** - Authentication, authorization, and Power Platform integration -- **[@microsoft/agents-a365-notifications](./packages/agents-a365-notifications/README.md)** - Agent notification and messaging system +This project is currently in active development. Packages are published to npm as they become available. +### Public npm feed -## 📋 **Package Overview** +The best way to consume this SDK is via our npm packages found here: [npmjs.com](https://www.npmjs.com/search?q=%40microsoft%2Fagents-a365). All packages begin with **@microsoft/agents-a365**. -| Package | Purpose | Key Features | -|---------|---------|--------------| -| **Observability** | Monitoring & Tracing | OpenTelemetry, Azure Monitor, Agent/Tool/Inference tracking | -| **Tooling** | MCP Infrastructure | Tool registration, configuration, server management | -| **Runtime** | Auth & Platform | Microsoft identity, Power Platform APIs, token management | -| **Notifications** | Messaging | Agent notifications, email integration, activity tracking | -| **Extensions** | LLM Integrations | OpenAI, Claude, LangChain tool registration | +## Working with this codebase +### Prerequisites -## 📋 **Telemetry** +- Node.js 18 or later +- pnpm package manager +- Git -Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. +### Building the project + +1. Clone the repository: + + ```bash + git clone https://github.com/microsoft/Agent365-nodejs.git + cd Agent365-nodejs + ``` + +2. Install dependencies: + + ```bash + pnpm install + ``` + +3. Build the packages: + + ```bash + # Build all packages + pnpm build + ``` + +4. Run tests: + + ```bash + pnpm test + ``` + +For more detailed build instructions, see the [HOW_TO_BUILD.md](HOW_TO_BUILD.md). + +## Project Structure + +- **packages/agents-a365-notifications**: Microsoft Agents A365 Notifications - Agent notification services and models +- **packages/agents-a365-observability**: Microsoft Agents A365 Observability Core - Core observability functionality +- **packages/agents-a365-observability-extensions-openai**: OpenAI observability extensions +- **packages/agents-a365-runtime**: Microsoft Agents A365 Runtime - Core runtime utilities and extensions +- **packages/agents-a365-tooling**: Microsoft Agents A365 Tooling - Agent tooling and MCP integration +- **packages/agents-a365-tooling-extensions-claude**: Claude/Anthropic tooling extensions +- **packages/agents-a365-tooling-extensions-langchain**: LangChain tooling extensions +- **packages/agents-a365-tooling-extensions-openai**: OpenAI tooling extensions +- **samples/**: For sample applications, see the [Agent365-Samples Repository](https://github.com/microsoft/Agent365-Samples/tree/main/nodejs) +- **tests/**: Unit and integration tests + +## Support + +For issues, questions, or feedback: + +- **Issues**: Please file issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section +- **Documentation**: See the [Microsoft Agents A365 Developer Documentation](https://learn.microsoft.com/en-us/microsoft-agent-365/developer/) +- **Security**: For security issues, please see [SECURITY.md](SECURITY.md) + +## Contributing + +This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit . + +When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA. + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. ## Trademarks -*Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* +This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general). Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies. + +## Useful Links + +### Microsoft 365 Agents SDK + +The core SDK for building conversational AI agents for Microsoft 365 platforms. + +- [Microsoft 365 Agents SDK](https://aka.ms/agents) +- [Agents-for-net Repository](https://github.com/Microsoft/Agents-for-net) +- [Agents-for-js Repository](https://github.com/Microsoft/Agents-for-js) +- [Agents-for-python Repository](https://github.com/Microsoft/Agents-for-python) +- [Official Agents Documentation](https://learn.microsoft.com/en-us/microsoft-365/agents-sdk/) + +### Microsoft Agents A365 SDK + +Enterprise-grade extensions for observability, notifications, runtime utilities, and developer tools. +- [Agent365-dotnet Repository](https://github.com/microsoft/Agent365-dotnet) +- [Agent365-python Repository](https://github.com/microsoft/Agent365-python) +- [Agent365-nodejs Repository](https://github.com/microsoft/Agent365-nodejs) - You are here +- [Agent365-Samples Repository](https://github.com/microsoft/Agent365-Samples) +- [Microsoft Agents A365 Developer Documentation](https://learn.microsoft.com/en-us/microsoft-agent-365/developer/) +### Additional Resources +- [Node.js Documentation](https://learn.microsoft.com/en-us/javascript/api/?view=m365-agents-sdk&preserve-view=true) -## 📄 **License** +## Data Collection Notice -This project is licensed under the MIT License - see the LICENSE file for details. +The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at . You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. diff --git a/packages/agents-a365-notifications/README.md b/packages/agents-a365-notifications/README.md index 3a7052fd..df0a2f38 100644 --- a/packages/agents-a365-notifications/README.md +++ b/packages/agents-a365-notifications/README.md @@ -1,103 +1,70 @@ -# Agent Notifications SDK for Node.js +# @microsoft/agents-a365-notifications -This package provides TypeScript/Node.js support for handling agent notifications in Microsoft 365 Agent applications, including email and document collaboration notifications. +[![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-notifications?label=npm&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-notifications) +[![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-notifications?label=Downloads&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-notifications) -## Features - -- **Type-safe notification handling** with strongly-typed models -- **Multiple notification types** including Email and Word (WPX) comments -- **Sub-channel routing** for email, Word, Excel, and PowerPoint -- **Activity extensions** for easy entity extraction -- **TypeScript-first** with comprehensive type definitions +Agent notification services and models for handling user notifications in Microsoft Agents A365 applications. This package provides type-safe notification handling for email, Word comments, and other collaboration scenarios. ## Installation -This package is part of the `@microsoft/agent365-sdk` workspace and is typically installed as a dependency: - ```bash npm install @microsoft/agents-a365-notifications ``` -## Models - -### Entity Types - -The SDK provides several entity types that represent different notification formats: +## Usage -#### `EmailReference` -Represents an email notification entity. +### Basic Notification Handling ```typescript -interface EmailReference { - type: 'emailNotification'; - id?: string; - conversationId?: string; - htmlBody?: string; -} -``` - -#### `EmailResponse` -Represents an email response to be sent back. +import { + AgentNotificationActivity, + NotificationType +} from '@microsoft/agents-a365-notifications'; -```typescript -interface EmailResponse { - type: 'emailResponse'; - htmlBody?: string; -} +// Handle agent notifications +app.messageExtension('agentNotifications', async (context, activity) => { + const notificationActivity = activity as AgentNotificationActivity; + + if (notificationActivity.notificationType === NotificationType.EmailNotification) { + const email = notificationActivity.emailNotification; + console.log(`Email from: ${email?.id}`); + console.log(`Body: ${email?.htmlBody}`); + } + + if (notificationActivity.notificationType === NotificationType.WpxComment) { + const comment = notificationActivity.wpxCommentNotification; + console.log(`Document: ${comment?.documentId}`); + console.log(`Comment: ${comment?.initiatingCommentId}`); + } +}); ``` -#### `WpxComment` -Represents a Word (WPX) comment notification. +### Email Response ```typescript -interface WpxComment { - type: 'WpxComment'; - odataId?: string; - documentId?: string; - initiatingCommentId?: string; - subjectCommentId?: string; -} -``` - -### `AgentNotificationActivity` +import { EmailResponse } from '@microsoft/agents-a365-notifications'; -A parsed notification activity with strongly-typed notification data: +// Send email response +const response: EmailResponse = { + type: 'emailResponse', + htmlBody: '

Thank you for your message!

' +}; -```typescript -interface AgentNotificationActivity { - wpxCommentNotification?: WpxComment; - emailNotification?: EmailReference; - notificationType: NotificationType; - conversation?: ConversationAccount; - from: ChannelAccount; - recipient: ChannelAccount; - channelData: any; - text: string; -} +await context.sendActivity({ type: 'message', value: response }); ``` -### `NotificationType` Enum +## Support -```typescript -enum NotificationType { - Unknown = 0, - WpxComment = 1, - EmailNotification = 2, -} -``` +For issues, questions, or feedback: -## Usage +- File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section +- See the [main documentation](../../README.md) for more information -### Basic Notification Handling +## License -Handle all agent notifications across all sub-channels: +Copyright (c) Microsoft Corporation. All rights reserved. -```typescript -import { AgentApplication, TurnState } from '@microsoft/agents-hosting'; -import { - AgentNotificationActivity, - NotificationType -} from '@microsoft/agents-a365-notifications'; +Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details. const app = new AgentApplication(); diff --git a/packages/agents-a365-observability-extensions-openai/README.md b/packages/agents-a365-observability-extensions-openai/README.md index 1061fc1d..13427745 100644 --- a/packages/agents-a365-observability-extensions-openai/README.md +++ b/packages/agents-a365-observability-extensions-openai/README.md @@ -1,16 +1,9 @@ # @microsoft/agents-a365-observability-extensions-openai -OpenAI Agents SDK instrumentation extensions for Agent365 telemetry and observability. +[![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-observability-extensions-openai?label=npm&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-observability-extensions-openai) +[![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-observability-extensions-openai?label=Downloads&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-observability-extensions-openai) -## Overview - -This package provides OpenTelemetry instrumentation for Agent365 which uses OpenAI Agents SDK, enabling automatic tracing and telemetry collection for agent operations, function calls, and AI model interactions. - -## Features - -- **Automatic Instrumentation**: Seamlessly instruments OpenAI Agents SDK without manual instrumentation. -- **OpenTelemetry Integration**: Full compatibility with OpenTelemetry ecosystem -- **Comprehensive Tracing**: Captures agent operations, function calls, AI generations +OpenAI Agents SDK instrumentation for Microsoft Agents A365 observability. This package provides automatic OpenTelemetry tracing and telemetry collection for OpenAI Agents SDK operations, including agent execution, function calls, and AI model interactions. ## Installation @@ -18,19 +11,12 @@ This package provides OpenTelemetry instrumentation for Agent365 which uses Open npm install @microsoft/agents-a365-observability-extensions-openai ``` -## Prerequisites - -- Node.js 18.0.0 or higher -- @openai/agents 0.1.5 or higher -- @microsoft/agents-a365-observability configured and initialized - ## Usage ### Basic Setup ```typescript import { ObservabilityManager } from '@microsoft/agents-a365-observability'; -```typescript import { OpenAIAgentsTraceInstrumentor } from '@microsoft/agents-a365-observability-extensions-openai'; // Configure observability first @@ -48,7 +34,6 @@ const instrumentor = new OpenAIAgentsTraceInstrumentor({ }); sdk.start(); - instrumentor.enable(); ``` @@ -65,18 +50,18 @@ interface OpenAIAgentsInstrumentationConfig { } ``` -### Automatic Tracing +## Support -Once configured, the instrumentor automatically traces: +For issues, questions, or feedback: -- **Agent Operations**: Agent initialization, execution, and lifecycle -- **Function Calls**: Tool invocations with input/output parameters -- **AI Generations**: Model calls with prompts, responses, and token usage -- **Errors**: Exception handling and error propagation +- File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section +- See the [main documentation](../../README.md) for more information + +## License -### Span Attributes +Copyright (c) Microsoft Corporation. All rights reserved. -The instrumentor captures rich telemetry attributes following OpenTelemetry semantic conventions: +Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details. #### Generation Spans - `gen_ai.provider.name`: AI provider (always "openai") diff --git a/packages/agents-a365-observability/README.md b/packages/agents-a365-observability/README.md index 42b2d36b..7a1c1086 100644 --- a/packages/agents-a365-observability/README.md +++ b/packages/agents-a365-observability/README.md @@ -1,56 +1,17 @@ -# Agent365 Observability SDK for Node.js +# @microsoft/agents-a365-observability -## 🚀 Features +[![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-observability?label=npm&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-observability) +[![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-observability?label=Downloads&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-observability) -- **🔍 Agent Monitoring**: Specialized tracing for AI agent invocations with detailed telemetry -- **🛠️ Tool Execution Tracking**: Monitor tool executions and function calls with comprehensive metrics -- **📊 OpenTelemetry Integration**: Built-in OpenTelemetry tracing for standardized observability -- **☁️ Azure Monitor Support**: Seamless integration with Azure Monitor for cloud-based monitoring -- **🧳 Baggage Propagation**: Context propagation across distributed agent systems -- **🎯 Multiple Span Types**: Support for invoke agent, execute tool, and inference call spans -- **👤 Enhanced Caller Tracking**: Detailed agent information with caller details and agent metadata -- **🌐 Service Endpoint Support**: Track service endpoints with host, port, and protocol information -- **🧠 Granular Inference Telemetry**: Token counting, message recording, and finish reason tracking -- **↔️ C# Implementation Parity**: Full feature compatibility with the C# observability SDK +OpenTelemetry-based observability and tracing for Microsoft Agents A365 applications. This package provides comprehensive monitoring capabilities for agent invocations, tool executions, and AI model inference calls with seamless Azure Monitor integration. -## 📋 Table of Contents - -- [Installation](#installation) -- [Environment Variables](#environment-variables) -- [Quick Start](#quick-start) -- [Configuration](#configuration) -- [Span Types](#span-types) -- [Baggage Usage](#baggage-usage) -- [Enhanced Interfaces](#enhanced-interfaces) -- [Advanced Usage](#advanced-usage) - -## 📦 Installation - -Install the package via npm: +## Installation ```bash npm install @microsoft/agents-a365-observability ``` -## 🌍 Environment Variables - -The SDK supports various environment variables for configuration: - -### Telemetry Control -- `ENABLE_OBSERVABILITY`: Enable/disable observability (default: `false`) - - Values: `true`, `1`, `yes`, `on` (case-insensitive) -- `ENABLE_A365_OBSERVABILITY`: Alternative flag for enabling observability - - Values: `true`, `1` (case-insensitive) - -### Exporter Configuration -- `ENABLE_A365_OBSERVABILITY_EXPORTER`: Alternative flag for custom exporter - - Values: `true`, `1`, `yes`, `on` (case-insensitive) - -### Environment/Cluster Configuration -- `CLUSTER_CATEGORY`: Deployment environment (default: `prod`) - - Values: `preprod`, `prod` - -## 🚀 Quick Start +## Usage ### Basic Setup @@ -68,7 +29,6 @@ const sdk = ObservabilityManager.start({ ```typescript import { ObservabilityManager } from '@microsoft/agents-a365-observability'; -import { getUserManagedIdentityToken } from '@microsoft/agents-a365-runtime'; // Advanced configuration with builder pattern const builder = ObservabilityManager.configure(builder => @@ -83,20 +43,37 @@ const builder = ObservabilityManager.configure(builder => builder.start(); ``` -## ⚙️ Configuration - -### BuilderOptions Interface +### Creating Spans ```typescript -interface BuilderOptions { - /** Custom service name for telemetry */ - serviceName?: string; - - /** Custom service version for telemetry */ - serviceVersion?: string; - - /** Token resolver function for authentication */ - tokenResolver?: TokenResolver; +import { InvokeAgentScope, ExecuteToolScope } from '@microsoft/agents-a365-observability'; + +// Track agent invocation +const agentScope = new InvokeAgentScope({ + agentId: 'my-agent', + agentName: 'My Agent', + conversationId: 'conv-123' +}); + +// Track tool execution +const toolScope = new ExecuteToolScope({ + toolName: 'SearchTool', + endpoint: 'https://api.example.com' +}); +``` + +## Support + +For issues, questions, or feedback: + +- File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section +- See the [main documentation](../../README.md) for more information + +## License + +Copyright (c) Microsoft Corporation. All rights reserved. + +Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details. /** Environment/cluster category (e.g., "preprod", "prod") */ clusterCategory?: ClusterCategory; diff --git a/packages/agents-a365-runtime/README.md b/packages/agents-a365-runtime/README.md index 11ba2c2c..533c2df0 100644 --- a/packages/agents-a365-runtime/README.md +++ b/packages/agents-a365-runtime/README.md @@ -1,27 +1,85 @@ -# @microsoft/agents-a365-runtime +# @microsoft/agents-a365-runtime# @microsoft/agents-a365-runtime -Agent 365 Runtime SDK for AI agents built with TypeScript/Node.js. + + +[![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-runtime?label=npm&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-runtime)Agent 365 Runtime SDK for AI agents built with TypeScript/Node.js. + +[![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-runtime?label=Downloads&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-runtime) ## Description +Core runtime utilities and services for Microsoft Agents A365 applications. This package provides authentication, authorization, and Power Platform API discovery capabilities for building enterprise-ready AI agents. + This package provides runtime utilities and services for Agent365 SDK, including: -- Agentic Authentication Service + +## Installation- Agentic Authentication Service + - Agentic Authorization Service -- Power Platform API Discovery -- Semaphore utilities + +```bash- Power Platform API Discovery + +npm install @microsoft/agents-a365-runtime- Semaphore utilities + +``` ## Installation +## Usage + \\\ash -npm install @microsoft/agents-a365-runtime + +### Authentication Servicenpm install @microsoft/agents-a365-runtime + \\\ -## Usage +```typescript + +import { AgenticAuthenticationService } from '@microsoft/agents-a365-runtime';## Usage + + + +const authService = new AgenticAuthenticationService();\\\ ypescript -\\\ ypescript import { AgenticAuthenticationService, AgenticAuthorizationService } from '@microsoft/agents-a365-runtime'; -\\\ + +// Get authentication token\\\ + +const token = await authService.getToken(tenantId, scopes); + +```## License + + + +### Authorization ServiceSee license file + + +```typescript +import { AgenticAuthorizationService } from '@microsoft/agents-a365-runtime'; + +const authzService = new AgenticAuthorizationService(); + +// Check user permissions +const hasAccess = await authzService.checkAccess(userId, resource); +``` + +### Power Platform API Discovery + +```typescript +import { PowerPlatformApiDiscovery } from '@microsoft/agents-a365-runtime'; + +// Discover Power Platform API endpoints +const apiEndpoint = await PowerPlatformApiDiscovery.getEndpoint(environment); +``` + +## Support + +For issues, questions, or feedback: + +- File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section +- See the [main documentation](../../README.md) for more information ## License -See license file +Copyright (c) Microsoft Corporation. All rights reserved. + +Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details. diff --git a/packages/agents-a365-tooling-extensions-claude/README.md b/packages/agents-a365-tooling-extensions-claude/README.md index 8e88bcfc..19ebe4b3 100644 --- a/packages/agents-a365-tooling-extensions-claude/README.md +++ b/packages/agents-a365-tooling-extensions-claude/README.md @@ -1,41 +1,23 @@ -# Agent 365 Node.js Claude Tooling SDK +# @microsoft/agents-a365-tooling-extensions-claude -This package provides TypeScript/Node.js support for integrating Microsoft Agent365 tooling with Claude SDK, enabling seamless access to MCP servers. +[![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-tooling-extensions-claude?label=npm&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-tooling-extensions-claude) +[![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-tooling-extensions-claude?label=Downloads&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-tooling-extensions-claude) -The package name is **@microsoft/agents-a365-tooling-extensions-claude** +Claude SDK integration for Microsoft Agents A365 tooling. This package enables seamless integration of MCP (Model Context Protocol) tool servers with Anthropic's Claude, providing automatic tool discovery and registration. ## Installation -This package is part of the `@microsoft/agent365-sdk` workspace and is typically installed as a dependency: - ```bash npm install @microsoft/agents-a365-tooling-extensions-claude ``` -## Core Components - -### `McpToolRegistrationService` - -The main service class that handles MCP server discovery and tool registration for Claude. - -```typescript -import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-extensions-claude'; - -const toolService = new McpToolRegistrationService(); -``` - ## Usage -### 1. Basic Tool Server Registration - -Register all available MCP tool servers with Claude options: +### Basic Tool Server Registration ```typescript import { query, Options } from '@anthropic-ai/claude-code'; import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-extensions-claude'; -import { AgentApplication } from '@microsoft/agents-hosting'; - -const app = new AgentApplication(); const agentOptions: Options = { appendSystemPrompt: `You are a helpful AI assistant integrated with Microsoft 365.`, @@ -45,17 +27,18 @@ const agentOptions: Options = { const toolService = new McpToolRegistrationService(); +// Add MCP tool servers to Claude options await toolService.addToolServers( agentOptions, process.env.AGENTIC_USER_ID || '', process.env.MCP_ENVIRONMENT_ID || '', - app.authorization, + authorization, turnContext, process.env.MCP_AUTH_TOKEN || '' ); ``` -### 2. Complete Agent Setup with Tools +### Complete Agent Setup ```typescript import { query, Options } from '@anthropic-ai/claude-code'; @@ -73,11 +56,26 @@ async function invokeAgent(userMessage: string): Promise { break; } } - if (!claudeResponse) { - return "Sorry, I couldn't get a response from Claude :("; - } - return claudeResponse; + return claudeResponse || "Sorry, I couldn't get a response from Claude."; } catch (error) { + console.error('Claude error:', error); + return `Error: ${error.message || error}`; + } +} +``` + +## Support + +For issues, questions, or feedback: + +- File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section +- See the [main documentation](../../README.md) for more information + +## License + +Copyright (c) Microsoft Corporation. All rights reserved. + +Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details. console.error('Claude query error:', error); return `Error: ${error.message || error}`; } diff --git a/packages/agents-a365-tooling-extensions-langchain/README.md b/packages/agents-a365-tooling-extensions-langchain/README.md index 8fc82d6b..dcfa3c0e 100644 --- a/packages/agents-a365-tooling-extensions-langchain/README.md +++ b/packages/agents-a365-tooling-extensions-langchain/README.md @@ -1,41 +1,25 @@ -# Agent 365 Node.js LangChain Tooling SDK +# @microsoft/agents-a365-tooling-extensions-langchain -This package provides TypeScript/Node.js support for integrating Microsoft Agent365 tooling with LangChain, enabling seamless access to MCP servers and tools within LangChain-based AI agents. +[![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-tooling-extensions-langchain?label=npm&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-tooling-extensions-langchain) +[![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-tooling-extensions-langchain?label=Downloads&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-tooling-extensions-langchain) -The package name is **@microsoft/agents-a365-tooling-extensions-langchain** +LangChain integration for Microsoft Agents A365 tooling. This package enables seamless integration of MCP (Model Context Protocol) tool servers with LangChain agents, providing automatic tool discovery and registration as DynamicStructuredTool instances. ## Installation -This package is part of the `@microsoft/agent365-sdk` workspace and is typically installed as a dependency: - ```bash npm install @microsoft/agents-a365-tooling-extensions-langchain ``` -## Core Components - -### `McpToolRegistrationService` - -The main service class that handles MCP server discovery and tool registration for LangChain agents. It converts MCP tools into LangChain-compatible `DynamicStructuredTool` instances. - -```typescript -import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-extensions-langchain'; - -const toolService = new McpToolRegistrationService(); -``` - ## Usage -### 1. Basic Tool Server Registration - -Register all available MCP tool servers with LangChain client configuration: +### Basic Tool Server Registration ```typescript import { createReactAgent } from "@langchain/langgraph/prebuilt"; import { ChatOpenAI } from "@langchain/openai"; import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-extensions-langchain'; import { ClientConfig } from '@langchain/mcp-adapters'; -import { Authorization, TurnContext } from '@microsoft/agents-hosting'; const toolService = new McpToolRegistrationService(); @@ -61,12 +45,11 @@ const model = new ChatOpenAI({ const agent = createReactAgent({ llm: model, tools: tools, - name: 'LangChain Agent', - includeAgentName: 'inline' + name: 'LangChain Agent' }); ``` -### 2. Complete Agent Setup with Agent365 Integration +### Complete Agent Setup ```typescript async function invokeAgent(userMessage: string): Promise { @@ -74,11 +57,33 @@ async function invokeAgent(userMessage: string): Promise { const result = await agent.invoke({ messages: [ { - role: "user", - content: userMessage, + role: "user", + content: userMessage, }, ], }); + + return result.messages[result.messages.length - 1].content; + } catch (error) { + console.error('LangChain agent error:', error); + return `Error: ${error.message || error}`; + } +} +``` + +## Support + +For issues, questions, or feedback: + +- File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section +- See the [main documentation](../../README.md) for more information + +## License + +Copyright (c) Microsoft Corporation. All rights reserved. + +Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details. + }); let agentMessage = ''; diff --git a/packages/agents-a365-tooling-extensions-openai/README.md b/packages/agents-a365-tooling-extensions-openai/README.md index 7792d1c6..5331ee42 100644 --- a/packages/agents-a365-tooling-extensions-openai/README.md +++ b/packages/agents-a365-tooling-extensions-openai/README.md @@ -1,35 +1,19 @@ -````markdown -# Agent 365 Node.js OpenAI Tooling SDK +# @microsoft/agents-a365-tooling-extensions-openai -This package provides TypeScript/Node.js support for integrating Microsoft Agent365 tooling with OpenAI Agents SDK, enabling seamless access to MCP servers. +[![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-tooling-extensions-openai?label=npm&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-tooling-extensions-openai) +[![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-tooling-extensions-openai?label=Downloads&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-tooling-extensions-openai) -The package name is **@microsoft/agents-a365-tooling-extensions-openai** +OpenAI Agents SDK integration for Microsoft Agents A365 tooling. This package enables seamless integration of MCP (Model Context Protocol) tool servers with OpenAI Agents, providing automatic tool discovery and registration. ## Installation -This package is part of the `@microsoft/agent365-sdk` workspace and is typically installed as a dependency: - ```bash npm install @microsoft/agents-a365-tooling-extensions-openai ``` -## Core Components - -### `McpToolRegistrationService` - -The main service class that handles MCP server discovery and tool registration for OpenAI Agents. - -```typescript -import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-extensions-openai'; - -const toolService = new McpToolRegistrationService(); -``` - ## Usage -### 1. Basic Tool Server Registration - -Register all available MCP tool servers with an OpenAI Agent: +### Basic Tool Server Registration ```typescript import { Agent } from '@openai/agents'; @@ -37,11 +21,12 @@ import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-exten const agent = new Agent({ name: 'My Agent', - // Other agent configuration + model: 'gpt-4o' }); const toolService = new McpToolRegistrationService(); +// Register MCP tool servers with the agent await toolService.addMcpToolServers( agent, process.env.AGENTIC_USER_ID || '', @@ -52,32 +37,35 @@ await toolService.addMcpToolServers( ); ``` -### 2. Complete Agent Setup with Tools +### Complete Agent Setup ```typescript import { Agent, run } from '@openai/agents'; import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-extensions-openai'; async function invokeAgent(userMessage: string): Promise { -try { - // Connect to MCP servers - await connectToServers(); - - // Run the agent with the user message + try { const result = await run(agent, userMessage); return result.finalOutput || "Sorry, I couldn't process your request."; -} catch (error) { + } catch (error) { console.error('OpenAI agent error:', error); return `Error: ${error.message || error}`; -} finally { - // Clean up connections - await closeServers(); -} + } } +``` -async function connectToServers(): Promise { -if (agent.mcpServers && agent.mcpServers.length > 0) { - for (const server of agent.mcpServers) { +## Support + +For issues, questions, or feedback: + +- File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section +- See the [main documentation](../../README.md) for more information + +## License + +Copyright (c) Microsoft Corporation. All rights reserved. + +Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details. await server.connect(); } } diff --git a/packages/agents-a365-tooling/README.md b/packages/agents-a365-tooling/README.md index 51246b1a..2ef5756f 100644 --- a/packages/agents-a365-tooling/README.md +++ b/packages/agents-a365-tooling/README.md @@ -1,161 +1,59 @@ -# Agent 365 Node.js Tooling SDK +# @microsoft/agents-a365-tooling -This directory contains the Node.js implementation of Agent 365 Tooling SDK for discovering and configuring MCP (Model Context Protocol) tool servers. +[![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-tooling?label=npm&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-tooling) +[![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-tooling?label=Downloads&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-tooling) -The package name is **@microsoft/agents-a365-tooling** +Core tooling functionality for MCP (Model Context Protocol) tool server management in Microsoft Agents A365 applications. This package provides the foundation for discovering, registering, and managing tool servers across different AI frameworks. -## Features +## Installation -- **Automatic Server Discovery**: Discovers MCP tool servers in development and production environments -- **Environment-Aware Configuration**: Different behavior for development vs production environments -- **Flexible Tool Server Sources**: Supports local manifest files and remote tooling gateway -- **URL Generation**: Automatically builds proper MCP server URLs for different environments -- **Error Handling**: Comprehensive error handling and fallback mechanisms - -## Core Components - -### `McpToolServerConfigurationService` - -The main service for discovering and configuring MCP tool servers. - -### `Utility` - -Helper class for URL construction and environment detection. +```bash +npm install @microsoft/agents-a365-tooling +``` -## How to Retrieve Agent 365 Tools +## Usage -### Basic Usage +### Tool Server Discovery ```typescript import { McpToolServerConfigurationService } from '@microsoft/agents-a365-tooling'; const configService = new McpToolServerConfigurationService(); -const servers = await configService.listToolServers(agentUserId, environmentId, authToken); -``` - -### Understanding Tool Server Discovery - -The `listToolServers` method uses different strategies based on your environment: -#### Development Mode (`NODE_ENV=Development`) - -In development, the service reads from a local `ToolingManifest.json` file: - -1. **Primary Location**: `[ProjectRoot]/ToolingManifest.json` -2. **Fallback Location**: `[process.argv[1] directory]/ToolingManifest.json` - -#### Production Mode (any other NODE_ENV) - -In production, the service queries the remote tooling gateway using the provided agent user ID. - -## Configuration - -### Environment Variables - -Configure the service behavior using these environment variables: - -```bash -# Environment (determines discovery strategy) -NODE_ENV=Development|Test|Production +// List all available tool servers for an agent +const toolServers = await configService.listToolServers( + agentUserId, + environmentId, + authToken +); -# For development mode with MCP Platform -MCP_DEVELOPMENT_BASE_URL=https://agent365.svc.cloud.microsoft/mcp/environments - -# For development mode with mock servers -TOOLS_MODE=MockMCPServer -MOCK_MCP_SERVER_URL=http://localhost:5309/mcp-mock/agents/servers - -# For production environments -# No additional environment variables needed - uses default endpoints -``` - -### Development Setup with ToolingManifest.json - -Create a `ToolingManifest.json` file in your project root: - -```json -{ - "mcpServers": [ - { - "mcpServerName": "MailTools", - "mcpServerUniqueName": "mcp_MailTools" - }, - { - "mcpServerName": "CalendarTools", - "mcpServerUniqueName": "mcp_CalendarTools" - }, - { - "mcpServerName": "SharePointTools", - "mcpServerUniqueName": "mcp_SharePointTools" - }, - { - "mcpServerName": "OneDriveTools", - "mcpServerUniqueName": "mcp_OneDriveServer" - }, - { - "mcpServerName": "NLWeb", - "mcpServerUniqueName": "mcp_NLWeb" - } - ] +for (const server of toolServers) { + console.log(`Tool Server: ${server.mcpServerName}`); + console.log(` Server URL: ${server.url}`); } ``` -**Schema Explanation:** -- `mcpServerName`: Display name for the server (used in logs and debugging) -- `mcpServerUniqueName`: Unique identifier used to build the server URL - -### Production Setup with Tooling Gateway - -For production environments, ensure you have: - -1. **Valid Agent User ID**: The unique identifier for your digital worker/agent -2. **Environment ID**: Your MCP environment identifier (format: `default-[uuid]` or `uuid`) -3. **Authentication Token**: Bearer token for accessing the tooling gateway. - -```typescript -const agentUserId = process.env.AGENTIC_USER_ID || 'your-agent-user-id'; -const environmentId = process.env.MCP_ENVIRONMENT_ID || 'default-your-env-id'; -const authToken = process.env.MCP_AUTH_TOKEN || await getAuthToken(); - -const servers = await configService.listToolServers(agentUserId, environmentId, authToken); -``` - -## Troubleshooting Tool Discovery - -### Common Issues and Solutions - -#### No Tools Found in Development - -**Problem**: `listToolServers` returns an empty array in development. - -**Solutions:** -- Verify `ToolingManifest.json` exists in your project root -- Check the JSON syntax is valid -- Ensure `NODE_ENV=Development` is set -- Check console warnings for file path issues +### Get MCP Client Tools ```typescript -// Debug tool server discovery -const configService = new McpToolServerConfigurationService(); -console.log('Environment:', process.env.NODE_ENV); -console.log('Current working directory:', process.cwd()); - -const servers = await configService.listToolServers(agentUserId, environmentId, authToken); -console.log('Discovered servers:', servers); +// Get tools from a specific server +const mcpTools = await configService.getMcpClientTools( + turnContext, + server, + environmentId, + authToken +); ``` -#### Invalid Server URLs +## Support -**Problem**: Generated URLs don't work or return 404 errors. +For issues, questions, or feedback: -**Solutions:** -- Verify `environmentId` is correct and exists -- Check `mcpServerUniqueName` values in your manifest match available servers -- Ensure the environment's base URL is accessible +- File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section +- See the [main documentation](../../README.md) for more information -## Integration Examples +## License -For complete working implementations, see: +Copyright (c) Microsoft Corporation. All rights reserved. -- **Claude Integration**: [`../Claude/McpToolRegistrationService.ts`](../Claude/McpToolRegistrationService.ts) -- **OpenAI Integration**: [`../OpenAI/McpToolRegistrationService.ts`](../OpenAI/McpToolRegistrationService.ts) +Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details From 4184119412982bb8a6743be3a6c903d2b1b792e6 Mon Sep 17 00:00:00 2001 From: Mrunal Hirve Date: Sat, 8 Nov 2025 23:23:08 -0800 Subject: [PATCH 02/16] Fix --- packages/agents-a365-notifications/README.md | 242 +---------- .../README.md | 245 +---------- packages/agents-a365-observability/README.md | 411 +----------------- packages/agents-a365-runtime/README.md | 51 +-- .../README.md | 118 +---- .../README.md | 146 +------ .../README.md | 126 +----- 7 files changed, 29 insertions(+), 1310 deletions(-) diff --git a/packages/agents-a365-notifications/README.md b/packages/agents-a365-notifications/README.md index df0a2f38..a6209ee6 100644 --- a/packages/agents-a365-notifications/README.md +++ b/packages/agents-a365-notifications/README.md @@ -64,244 +64,4 @@ For issues, questions, or feedback: Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details. - -const app = new AgentApplication(); - -app.onAgentNotification('*', async (context, state, notification) => { - switch (notification.notificationType) { - case NotificationType.EmailNotification: - console.log('Email notification:', notification.emailNotification); - break; - case NotificationType.WpxComment: - console.log('Word comment:', notification.wpxCommentNotification); - break; - } -}); -``` - -### Email-Specific Notifications - -Handle only email notifications: - -```typescript -import { createEmailResponse } from '@microsoft/agents-a365-notifications'; - -app.onAgenticEmailNotification(async (context, state, notification) => { - const email = notification.emailNotification; - - if (!email) { - await context.sendActivity('No email found'); - return; - } - - // Process the email - console.log('Email ID:', email.id); - console.log('Conversation ID:', email.conversationId); - - // Send a response - const response = createEmailResponse('

Thank you for your email!

'); - await context.sendActivity({ - type: 'message', - entities: [response], - }); -}); -``` - -### Word Document Notifications - -Handle Word document comment notifications: - -```typescript -import '@microsoft/agents-a365-notifications'; - -app.onAgenticWordNotification(async (context, state, notification) => { - const comment = notification.wpxCommentNotification; - - if (!comment) { - await context.sendActivity('No comment found'); - return; - } - - console.log('Document ID:', comment.documentId); - console.log('Comment ID:', comment.initiatingCommentId); - - // Respond to the comment - await context.sendActivity({ - type: 'message', - text: 'Thank you for your comment!', - }); -}); -``` - -### Excel and PowerPoint Notifications - -```typescript -import '@microsoft/agents-a365-notifications'; - -app.onAgenticExcelNotification(async (context, state, notification) => { - // Handle Excel notifications - console.log('Excel notification received'); -}); - -app.onAgenticPowerPointNotification(async (context, state, notification) => { - // Handle PowerPoint notifications - console.log('PowerPoint notification received'); -}); -``` - -### Advanced: Custom Options - -All notification handlers support custom options: - -```typescript -import '@microsoft/agents-a365-notifications'; - -app.onAgentNotification( - '*' - async (context, state, notification) => { - // Handler logic - }, - { - subChannelId: 'email', // or '*' for all - rank: 100, // Route priority (lower = higher priority) - autoSignInHandlers: ['agentic'], // Auto sign-in configuration - } -); -``` - -## Type Guards and Factory Functions - -### Type Guards - -```typescript -import { isEmailReference, isWpxComment } from '@microsoft/agents-a365-notifications'; - -if (isEmailReference(entity)) { - // TypeScript knows this is EmailReference - console.log(entity.id); -} - -if (isWpxComment(entity)) { - // TypeScript knows this is WpxComment - console.log(entity.documentId); -} -``` - -### Factory Functions - -```typescript -import { - createEmailReference, - createEmailResponse, - createWpxComment -} from '@microsoft/agents-a365-notifications'; - -// Create entities -const email = createEmailReference('email-id', 'conv-id', '

Body

'); -const response = createEmailResponse('

Response body

'); -const comment = createWpxComment('odata-id', 'doc-id', 'comment-id'); -``` - -## Complete Example - -```typescript -import { AgentApplication, TurnState } from '@microsoft/agents-hosting'; -import { - NotificationType, - createEmailResponse, -} from '@microsoft/agents-a365-notifications'; - -const app = new AgentApplication(); - -app.onAgentNotification( - '*', - async (context, state, notification) => { - const { notificationType, emailNotification, wpxCommentNotification } = notification; - - switch (notificationType) { - case NotificationType.EmailNotification: - if (!emailNotification) break; - - // Process email - const emailResponse = await processEmail(emailNotification); - - // Send response - const response = createEmailResponse(emailResponse); - await context.sendActivity({ - type: 'message', - entities: [response], - }); - break; - - case NotificationType.WpxComment: - if (!wpxCommentNotification) break; - - // Process Word comment - const commentResponse = await processComment(wpxCommentNotification); - - // Send response - await context.sendActivity({ - type: 'message', - text: commentResponse, - }); - break; - - default: - await context.sendActivity('Unknown notification type'); - } - }, - { - rank: 100, - autoSignInHandlers: ['agentic'], - } -); - -async function processEmail(email: EmailReference): Promise { - // Your email processing logic - return `

Processed email ${email.id}

`; -} - -async function processComment(comment: WpxComment): Promise { - // Your comment processing logic - return `Processed comment on document ${comment.documentId}`; -} -``` - -## Migration from Legacy API - -If you're using the legacy `AddRoute` and `OnAgentNotification` functions, they are still available but deprecated: - -```typescript -// Legacy (deprecated) -import { AddRoute, OnAgentNotification } from '@microsoft/agents-a365-notifications'; - -OnAgentNotification(app, '*', async (context, state) => { - // Handler logic -}); - -// New approach (recommended) -import '@microsoft/agents-a365-notifications'; - -app.onAgentNotification('*', async (context, state, notification) => { - // Handler with typed notification -}); -``` - -## Constants - -```typescript -export const AGENTS_CHANNEL = 'agents'; -export const AGENTS_EMAIL_SUBCHANNEL = 'email'; -export const AGENTS_EXCEL_SUBCHANNEL = 'excel'; -export const AGENTS_WORD_SUBCHANNEL = 'word'; -export const AGENTS_POWERPOINT_SUBCHANNEL = 'powerpoint'; -``` - -## License - -See the main repository license file. - -## Contributing - -Contributions are welcome! Please see the main repository for contribution guidelines. +Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details diff --git a/packages/agents-a365-observability-extensions-openai/README.md b/packages/agents-a365-observability-extensions-openai/README.md index 13427745..a55698bf 100644 --- a/packages/agents-a365-observability-extensions-openai/README.md +++ b/packages/agents-a365-observability-extensions-openai/README.md @@ -61,247 +61,4 @@ For issues, questions, or feedback: Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details. - -#### Generation Spans -- `gen_ai.provider.name`: AI provider (always "openai") -- `gen_ai.request.model`: Model name (e.g., "gpt-4") -- `gen_ai.request.content`: Input prompt/messages -- `gen_ai.response.content`: Model response -- `gen_ai.response.id`: Response identifier -- `gen_ai.usage.input_tokens`: Input token count -- `gen_ai.usage.output_tokens`: Output token count - -#### Function Spans -- `gen_ai.tool.name`: Function/tool name -- `gen_ai.request.content`: Function input parameters -- `gen_ai.response.content`: Function output/result - -#### Agent Spans -- Agent metadata and execution context -- Session and conversation identifiers -- Performance metrics - -## Advanced Usage - -### Custom Processor Access - -```typescript -const instrumentor = new OpenAIAgentsTraceInstrumentor(); -instrumentor.enable(); - - -``` - -### Lifecycle Management - -```typescript -// Enable instrumentation -instrumentor.enable(); - -// Your application code using OpenAI Agents SDK -// Traces will be automatically collected - -// Disable when shutting down -instrumentor.disable(); - -// Shutdown observability -await ObservabilityManager.shutdown(); -``` - -## Trace Data Structure - -The instrumentor processes various span types from the OpenAI Agents SDK: - -- **Agent Spans**: High-level agent operations and workflows -- **Function Spans**: Tool and function executions -- **Response Spans**: Model response processing - -## Error Handling - -The instrumentor gracefully handles errors and provides detailed error tracking: - -- Automatic error detection in spans -- Error message and stack trace capture -- Span status reporting (OK/ERROR) -- Silent failure for non-critical operations - -## Compatibility - -- **OpenAI Agents SDK**: 0.1.5 or higher -- **OpenTelemetry**: 1.9.0 or higher -- **Node.js**: 18.0.0 or higher -- **TypeScript**: 5.5.0 or higher - -## Complete Example -See the complete working example in [tests-agent/openai-agent-auto-instrument-sample/](../../tests-agent/openai-agent-auto-instrument-sample/README.md) - -## Trace examples -``` -{ - resource: { - attributes: { - 'service.name': 'TypeScript Sample Agent', - 'host.name': 'pefan4-0', - 'host.arch': 'amd64', - 'host.id': '3dc679db-f652-4002-98b7-5e05e5071507', - 'process.pid': 3612, - 'process.executable.name': 'npm start', - 'process.executable.path': 'C:\\Program Files\\nodejs\\node.exe', - 'process.command_args': [ - 'C:\\Program Files\\nodejs\\node.exe', - 'D:\\repos\\sdk\\Agent365\\nodejs\\samples\\openai-agents-sdk\\dist\\index.js' - ], - 'process.runtime.version': '20.18.3', - 'process.runtime.name': 'nodejs', - 'process.runtime.description': 'Node.js', - 'process.command': 'D:\\repos\\sdk\\Agent365\\nodejs\\samples\\openai-agents-sdk\\dist\\index.js', - 'process.owner': 'pefan', - 'telemetry.sdk.language': 'nodejs', - 'telemetry.sdk.name': 'opentelemetry', - 'telemetry.sdk.version': '2.1.0' - } - }, - instrumentationScope: { - name: 'openai-agents-tracer', - version: '1.0.0', - schemaUrl: undefined - }, - traceId: '89fb62eb0d8a5658436fdd8eefb76942', - parentSpanContext: { - traceId: '89fb62eb0d8a5658436fdd8eefb76942', - spanId: '545cbb53a808dc19', - traceFlags: 1, - traceState: undefined - }, - traceState: undefined, - name: 'execute_tool OneDriveMCPServer', - id: '8f1a1cbe99cf4ef6', - kind: 0, - timestamp: 1761155395568000, - duration: 5000, - attributes: { - 'gen_ai.operation.name': 'execute_tool', - 'gen_ai.system': 'openai', - 'gen_ai.agent.id': 'REPLACE-WITH-YOUR-AGENT-ID-BUT-THIS-WILL-GO-AWAY-SOON', - 'gen_ai.event.content': '["graph_onedrive_createFolder","graph_onedrive_deleteFileOrFolder","graph_onedrive_listAllFiles","graph_onedrive_moveFileOrFolder","graph_onedrive_shareFileOrFolder"]', - 'gen_ai.tool.name': 'OneDriveMCPServer', - 'gen_ai.tool.type': 'extension' - }, - status: { code: 1 }, - events: [], - links: [] -} -{ - resource: { - attributes: { - 'service.name': 'TypeScript Sample Agent', - 'host.name': 'pefan4-0', - 'host.arch': 'amd64', - 'host.id': '3dc679db-f652-4002-98b7-5e05e5071507', - 'process.pid': 4448, - 'process.executable.name': 'C:\\Program Files\\PowerShell\\7\\pwsh.exe', - 'process.executable.path': 'C:\\Program Files\\nodejs\\node.exe', - 'process.command_args': [ - 'C:\\Program Files\\nodejs\\node.exe', - 'D:\\repos\\sdk\\Agent365\\nodejs\\samples\\openai-agents-sdk\\dist\\index.js' - ], - 'process.runtime.version': '20.18.3', - 'process.runtime.name': 'nodejs', - 'process.runtime.description': 'Node.js', - 'process.command': 'D:\\repos\\sdk\\Agent365\\nodejs\\samples\\openai-agents-sdk\\dist\\index.js', - 'process.owner': 'pefan', - 'telemetry.sdk.language': 'nodejs', - 'telemetry.sdk.name': 'opentelemetry', - 'telemetry.sdk.version': '2.1.0' - } - }, - instrumentationScope: { - name: 'openai-agents-tracer', - version: '1.0.0', - schemaUrl: undefined - }, - traceId: '8f9ebc7dc174208cd21a4d3939ef4455', - parentSpanContext: undefined, - traceState: undefined, - name: 'invoke_agent OpenAI Agent', - id: 'b98b2404088f8db4', - kind: 0, - timestamp: 1761063701211000, - duration: 348000, - attributes: { - 'gen_ai.operation.name': 'invoke_agent', - 'gen_ai.system': 'openai', - 'gen_ai.agent.id': 'REPLACE-WITH-YOUR-AGENT-ID-BUT-THIS-WILL-GO-AWAY-SOON', - graph_node_id: 'OpenAI Agent' - }, - status: { code: 2, message: 'Error in agent run' }, - events: [], - links: [] -} -{ - resource: { - attributes: { - 'service.name': 'TypeScript Sample Agent', - 'host.name': 'pefan4-0', - 'host.arch': 'amd64', - 'host.id': '3dc679db-f652-4002-98b7-5e05e5071507', - 'process.pid': 53888, - 'process.executable.name': 'npm start', - 'process.executable.path': 'C:\\Program Files\\nodejs\\node.exe', - 'process.command_args': [ - 'C:\\Program Files\\nodejs\\node.exe', - 'D:\\repos\\sdk\\Agent365\\nodejs\\samples\\openai-agents-sdk\\dist\\index.js' - ], - 'process.runtime.version': '20.18.3', - 'process.runtime.name': 'nodejs', - 'process.runtime.description': 'Node.js', - 'process.command': 'D:\\repos\\sdk\\Agent365\\nodejs\\samples\\openai-agents-sdk\\dist\\index.js', - 'process.owner': 'pefan', - 'telemetry.sdk.language': 'nodejs', - 'telemetry.sdk.name': 'opentelemetry', - 'telemetry.sdk.version': '2.1.0' - } - }, - instrumentationScope: { - name: 'openai-agents-tracer', - version: '1.0.0', - schemaUrl: undefined - }, - traceId: '0f3cffc86d53373b64ac760d4d2ad489', - parentSpanContext: { - traceId: '0f3cffc86d53373b64ac760d4d2ad489', - spanId: '148c242fffd8d4d0', - traceFlags: 1, - traceState: undefined - }, - traceState: undefined, - name: 'chat gpt-4o-mini-2024-07-18', - id: '891ba741248959c1', - kind: 0, - timestamp: 1761152107806000, - duration: 6392000, - attributes: { - 'gen_ai.operation.name': 'chat', - 'gen_ai.system': 'openai', - 'gen_ai.agent.id': 'REPLACE-WITH-YOUR-AGENT-ID-BUT-THIS-WILL-GO-AWAY-SOON', - 'gen_ai.output.messages': `[{"id":"msg_06db8f945b1be6ff0068f90c6db78081a094b3e2975f51ee9c","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"Determining the \\"best\\" park in the U.S. can be subjective, as it depends on personal preferences. However, some of the most highly regarded national parks include:\\n\\n1. **Yosemite National Park (California)** - Famous for its stunning granite cliffs, waterfalls, and diverse ecosystems.\\n2. **Yellowstone National Park (Wyoming, Montana, Idaho)** - Known for its geothermal features, wildlife, and expansive landscapes.\\n3. **Grand Canyon National Park (Arizona)** - Renowned for its awe-inspiring canyon views and hiking opportunities.\\n4. **Zion National Park (Utah)** - Celebrated for its dramatic cliffs, canyons, and hiking trails.\\n5. **Great Smoky Mountains National Park (Tennessee, North Carolina)** - Valued for its biodiversity and beautiful scenery.\\n\\nEach park offers unique experiences, so the \\"best\\" one depends on what you're looking for!"}],"role":"assistant"}]`, - 'gen_ai.request.model': 'gpt-4o-mini-2024-07-18', - 'gen_ai.usage.input_tokens': 14, - 'gen_ai.usage.output_tokens': 185, - llm_token_count_total: 199, - 'gen_ai.input.messages': '[{"type":"message","role":"user","content":"which is the best park in US"}]' - }, - status: { code: 1 }, - events: [], - links: [] -} -``` - -## Contributing - -This project welcomes contributions and suggestions. Please follow the contributing guidelines in the main repository. - -## License - -This project is licensed under the MIT License - see the [LICENSE](../../../LICENSE.md) file for details. +Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details diff --git a/packages/agents-a365-observability/README.md b/packages/agents-a365-observability/README.md index 7a1c1086..ca1f8846 100644 --- a/packages/agents-a365-observability/README.md +++ b/packages/agents-a365-observability/README.md @@ -73,413 +73,4 @@ For issues, questions, or feedback: Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details. - - /** Environment/cluster category (e.g., "preprod", "prod") */ - clusterCategory?: ClusterCategory; -} -``` - -### Token Resolver - -When using the Agent365 exporter, you must provide a token resolver function for authentication. The token resolver can be either synchronous or asynchronous: - -#### Async Token Resolver - -```typescript -import { getUserManagedIdentityToken } from '@microsoft/agents-a365-runtime'; - -// Custom async token acquisition -const customAsyncTokenResolver = async (agentId: string, tenantId: string): Promise => { - // Implement your custom token acquisition logic - const token = await getCustomTokenAsync(agentId, tenantId); - return token; -}; -``` - -#### Synchronous Token Resolver - -```typescript -// Using cached tokens -const cachedTokenResolver = (agentId: string, tenantId: string): string => { - const cacheKey = `${agentId}:${tenantId}`; - return tokenCache.get(cacheKey) || 'default-token'; -}; -``` - -### Agent Hosting Framework Integration - -When using the Agent365 Observability SDK with the Agent Hosting framework (`@microsoft/agents-hosting`), you can generate tokens using the `TurnContext` from agent activities: - -#### Token Generation with Agent Hosting - -```typescript -import { TurnContext } from '@microsoft/agents-hosting'; -import { getObservabilityAuthenticationScope } from '@microsoft/agents-a365-runtime'; - -// Generate agentic token for observability -const aauToken = await agentApplication.authorization.exchangeToken( - context, - 'agentic', - { - scopes: getObservabilityAuthenticationScope() - } -); - -// Cache the token for use by the observability token resolver -const cacheKey = createAgenticTokenCacheKey(agentInfo.agentId, tenantInfo.tenantId); -tokenCache.set(cacheKey, aauToken?.token || ''); -``` - -## 🎯 Span Types - -The SDK provides three main span types for comprehensive agent observability: - -### 1. Invoke Agent Spans - -Track agent-to-agent invocations and human-to-agent interactions with enhanced caller information: - -```typescript -import { - InvokeAgentScope, - ExecutionType, - CallerDetails, - EnhancedAgentDetails -} from '@microsoft/agents-a365-observability'; - -// Basic agent invocation details -const invokeDetails = { - agentId: 'email-agent-123', - agentName: 'Email Assistant', - agentDescription: 'AI assistant for email management', - conversationId: 'conv-456', - sessionId: 'session-789', - endpoint: { - host: 'agents.contoso.com', - port: 443, - protocol: 'https' - }, - request: { - content: 'Please help me organize my emails', - executionType: ExecutionType.HumanToAgent, - sessionId: 'session-123', - sourceMetadata: { - id: 'teams-channel-123', - name: 'General Channel', - description: 'Main team communication channel' - } - } -}; - -const tenantDetails = { - tenantId: 'tenant-789' -}; - -// Optional: Caller details (human user) -const callerDetails: CallerDetails = { - callerId: 'user-456', - callerName: 'John Doe', - callerUpn: 'john.doe@contoso.com', - callerUserId: 'userid-789', - tenantId: 'tenant-123' -}; - -// Optional: Caller agent details (for agent-to-agent calls) -const callerAgentDetails: EnhancedAgentDetails = { - agentId: 'calendar-agent-789', - agentName: 'Calendar Assistant', - agentAUID: 'agent-auid-456', - agentUPN: 'calendar-agent@contoso.com', - agentBlueprintId: 'blueprint-calendar-v1', - tenantId: 'tenant-123' -}; - -// Enhanced invocation with caller context -using scope = InvokeAgentScope.start( - invokeDetails, - tenantDetails, - callerAgentDetails, - callerDetails -); - -try { - // Record input messages - scope.recordInputMessages(['Please help me organize my emails', 'Focus on urgent items']); - - // Your agent invocation logic here - const response = await invokeAgent(invokeDetails.request.content); - - // Record output messages - scope.recordOutputMessages(['I found 15 urgent emails', 'Here is your organized inbox']); - -} catch (error) { - scope.recordError(error as Error); - throw error; -} -// Scope automatically disposed at end of using block -``` - -### 2. Execute Tool Spans - -Track tool executions and function calls with endpoint support: - -```typescript -import { ExecuteToolScope } from '@microsoft/agents-a365-observability'; - -const toolDetails = { - toolName: 'email-search', - arguments: JSON.stringify({ query: 'from:boss@company.com', limit: 10 }), - toolCallId: 'tool-call-456', - description: 'Search emails by criteria', - toolType: 'function', - endpoint: { - host: 'tools.contoso.com', - port: 8080, // Will be recorded since not 443 - protocol: 'https' - } -}; - -using scope = ExecuteToolScope.start(toolDetails, agentDetails, tenantDetails); - -try { - // Execute the tool - const result = await searchEmails(toolDetails.arguments); - - // Record the tool execution result - scope.recordResponse(JSON.stringify(result)); - - return result; -} catch (error) { - scope.recordError(error as Error); - throw error; -} -``` - -### 3. Inference Call Spans - -Track LLM/AI model inference calls with enhanced telemetry methods: - -```typescript -import { InferenceScope, InferenceOperationType } from '@microsoft/agents-a365-observability'; - -const inferenceDetails = { - operationName: InferenceOperationType.CHAT, - model: 'gpt-4', - providerName: 'openai', - inputTokens: 150, - outputTokens: 75, - finishReasons: ['stop'], - responseId: 'resp-123456' -}; - -using scope = InferenceScope.start(inferenceDetails, agentDetails, tenantDetails); - -try { - // Record input messages - scope.recordInputMessages(['Summarize the following emails for me...']); - - // Call the LLM - const response = await callLLM(); - - // Record detailed telemetry with granular methods - scope.recordOutputMessages(['Here is your email summary...']); - scope.recordInputTokens(145); // Update if different from constructor - scope.recordOutputTokens(82); // Update if different from constructor - scope.recordResponseId('resp-789123'); - scope.recordFinishReasons(['stop', 'max_tokens']); - - return response.text; -} catch (error) { - scope.recordError(error as Error); - throw error; -} -``` - -#### Available Methods for Inference Scope: - -- `recordInputMessages(messages: string[])` - Record input message array -- `recordOutputMessages(messages: string[])` - Record output message array -- `recordInputTokens(inputTokens: number)` - Record input token count -- `recordOutputTokens(outputTokens: number)` - Record output token count -- `recordResponseId(responseId: string)` - Record response ID with validation -- `recordFinishReasons(finishReasons: string[])` - Record finish reasons array - -## 🧳 Baggage Usage - -Baggage enables context propagation across distributed agent systems. Use the `BaggageBuilder` to set contextual information that flows through all spans in a request: - -### Basic Baggage Usage - -```typescript -import { BaggageBuilder } from '@microsoft/agents-a365-observability'; - -// Create and apply baggage context -using baggageScope = new BaggageBuilder() - // Core identifiers - .tenantId('tenant-123') - .agentId('agent-456') - .correlationId('correlation-789') - - // Agent information - .agentName('Email Assistant') - .agentDescription('AI assistant for email management') - .agentAuid('auid-123') // Agent User ID - .agentUpn('agent@company.com') - .agentBlueprintId('blueprint-456') - - // Caller information - .callerId('user-789') - .callerName('Jane Smith') - .callerUpn('jane.smith@company.com') - - // Conversation context - .conversationId('conv-123') - .conversationItemLink('https://teams.microsoft.com/...') - - // Source metadata (e.g., Teams channel) - .sourceMetadataId('channel-123') - .sourceMetadataName('msteams') - .sourceMetadataDescription('Main team channel') - - // Operation context - .operationSource('sdk') - .hiringManagerId('manager-456') - .build(); - -// Execute operations within the baggage context -baggageScope.run(() => { - // All spans created within this context will inherit the baggage values - - // Invoke another agent - using agentScope = InvokeAgentScope.start(invokeDetails, agentDetails, tenantDetails); - // ... agent logic - - // Execute tools - using toolScope = ExecuteToolScope.start(toolDetails, agentDetails, tenantDetails); - // ... tool logic -}); -``` - -## � Enhanced Interfaces - -### CallerDetails Interface -For tracking non-agent callers (human users): - -```typescript -interface CallerDetails { - callerId?: string; - callerName?: string; - callerUpn?: string; - callerUserId?: string; - tenantId?: string; -} -``` - -### EnhancedAgentDetails Interface -For tracking caller agent information in agent-to-agent calls: - -```typescript -interface EnhancedAgentDetails extends AgentDetails { - agentAUID?: string; // Agent User ID - agentUPN?: string; // Agent User Principal Name - agentBlueprintId?: string; // Agent Blueprint/Application ID - tenantId?: string; // Agent tenant ID -} -``` - -### ServiceEndpoint Interface -For endpoint information in tool calls and agent invocations: - -```typescript -interface ServiceEndpoint { - host: string; - port?: number; // Defaults to 443 for HTTPS - protocol?: string; // http or https -} -``` - -## �🔧 Advanced Usage - -### Enhanced Agent Invocation Methods - -InvokeAgentScope provides methods for recording detailed message arrays and responses: - -```typescript -using scope = InvokeAgentScope.start(invokeDetails, tenantDetails, callerAgentDetails, callerDetails); - -// Record multiple input messages -scope.recordInputMessages([ - 'Please analyze my email traffic', - 'Focus on the last 7 days', - 'Include sender statistics' -]); - -// Record multiple output messages -scope.recordOutputMessages([ - 'Analysis complete', - 'Found 147 emails from 23 unique senders', - 'Most active sender: boss@company.com (45 emails)' -]); -``` - -### Granular Inference Telemetry - -InferenceScope supports detailed telemetry recording: - -```typescript -using scope = InferenceScope.start(inferenceDetails, agentDetails, tenantDetails); - -// Record tokens separately -scope.recordInputTokens(250); -scope.recordOutputTokens(180); - -// Record response metadata -scope.recordResponseId('chat-resp-456789'); -scope.recordFinishReasons(['stop', 'length']); - -// Record message arrays -scope.recordInputMessages(['System prompt', 'User message']); -scope.recordOutputMessages(['Assistant response']); -``` - -### Manual Scope Management - -If you prefer manual disposal over `using` declarations: - -```typescript -const scope = InvokeAgentScope.start(invokeDetails, tenantDetails, callerAgentDetails, callerDetails); - -try { - // Your logic here - const result = await processRequest(); - scope.recordOutputMessages([result]); -} catch (error) { - scope.recordError(error as Error); - throw error; -} finally { - scope.dispose(); // Manual cleanup -} -``` - -### Error Handling and Recording - -```typescript -using scope = ExecuteToolScope.start(toolDetails, agentDetails, tenantDetails); - -try { - const result = await executeTool(); - scope.recordResponse(JSON.stringify(result)); -} catch (error) { - // Record detailed error information - scope.recordError(error as Error); - - throw error; // Re-throw to maintain error flow -} -``` - -### Shutdown and Cleanup - -```typescript -// Graceful shutdown -await ObservabilityManager.shutdown(); -``` \ No newline at end of file +Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details diff --git a/packages/agents-a365-runtime/README.md b/packages/agents-a365-runtime/README.md index 533c2df0..6ae94ad3 100644 --- a/packages/agents-a365-runtime/README.md +++ b/packages/agents-a365-runtime/README.md @@ -1,57 +1,30 @@ -# @microsoft/agents-a365-runtime# @microsoft/agents-a365-runtime - - - -[![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-runtime?label=npm&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-runtime)Agent 365 Runtime SDK for AI agents built with TypeScript/Node.js. +# @microsoft/agents-a365-runtime +[![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-runtime?label=npm&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-runtime) [![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-runtime?label=Downloads&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-runtime) -## Description - Core runtime utilities and services for Microsoft Agents A365 applications. This package provides authentication, authorization, and Power Platform API discovery capabilities for building enterprise-ready AI agents. -This package provides runtime utilities and services for Agent365 SDK, including: - -## Installation- Agentic Authentication Service - -- Agentic Authorization Service - -```bash- Power Platform API Discovery - -npm install @microsoft/agents-a365-runtime- Semaphore utilities +## Installation +```bash +npm install @microsoft/agents-a365-runtime ``` -## Installation - ## Usage -\\\ash - -### Authentication Servicenpm install @microsoft/agents-a365-runtime - -\\\ +### Authentication Service ```typescript +import { AgenticAuthenticationService } from '@microsoft/agents-a365-runtime'; -import { AgenticAuthenticationService } from '@microsoft/agents-a365-runtime';## Usage - - - -const authService = new AgenticAuthenticationService();\\\ ypescript - -import { AgenticAuthenticationService, AgenticAuthorizationService } from '@microsoft/agents-a365-runtime'; - -// Get authentication token\\\ +const authService = new AgenticAuthenticationService(); +// Get authentication token const token = await authService.getToken(tenantId, scopes); +``` -```## License - - - -### Authorization ServiceSee license file - +### Authorization Service ```typescript import { AgenticAuthorizationService } from '@microsoft/agents-a365-runtime'; @@ -82,4 +55,4 @@ For issues, questions, or feedback: Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details. +Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details diff --git a/packages/agents-a365-tooling-extensions-claude/README.md b/packages/agents-a365-tooling-extensions-claude/README.md index 19ebe4b3..62c364a7 100644 --- a/packages/agents-a365-tooling-extensions-claude/README.md +++ b/packages/agents-a365-tooling-extensions-claude/README.md @@ -20,7 +20,7 @@ import { query, Options } from '@anthropic-ai/claude-code'; import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-extensions-claude'; const agentOptions: Options = { - appendSystemPrompt: `You are a helpful AI assistant integrated with Microsoft 365.`, + appendSystemPrompt: \You are a helpful AI assistant integrated with Microsoft 365.\, maxTurns: 3, allowedTools: ['Read', 'Write', 'WebSearch', 'Bash', 'Grep'], }; @@ -45,7 +45,7 @@ import { query, Options } from '@anthropic-ai/claude-code'; import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-extensions-claude'; async function invokeAgent(userMessage: string): Promise { - let claudeResponse = ""; + let claudeResponse = \"\"; try { for await (const message of query({ prompt: userMessage, @@ -56,10 +56,10 @@ async function invokeAgent(userMessage: string): Promise { break; } } - return claudeResponse || "Sorry, I couldn't get a response from Claude."; + return claudeResponse || \"Sorry, I couldn't get a response from Claude.\"; } catch (error) { console.error('Claude error:', error); - return `Error: ${error.message || error}`; + return \Error: \\; } } ``` @@ -75,112 +75,4 @@ For issues, questions, or feedback: Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details. - console.error('Claude query error:', error); - return `Error: ${error.message || error}`; - } -} -``` - -### 3. Tool Discovery and Inspection - -List available tools from registered MCP servers: - -```typescript -import { McpServerConfig } from '@anthropic-ai/claude-code'; -import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-extensions-claude'; - -const toolService = new McpToolRegistrationService(); - -// Create MCP server configuration -const mcpServerConfig: McpServerConfig = { - type: 'http', - url: 'https://your-mcp-server.com', - headers: { - 'Authorization': `Bearer ${authToken}`, - 'x-ms-environment-id': environmentId, - } -}; - -// Get available tools -const tools = await toolService.getTools('MyToolServer', mcpServerConfig); -console.log('Available tools:', tools); -``` - -## Configuration - -### Environment Variables - -The following environment variables are commonly used: - -```bash -# Agent365 Authentication -AGENTIC_USER_ID=your-user-id -MCP_ENVIRONMENT_ID=your-environment-id -MCP_AUTH_TOKEN=your-auth-token - -# Agent Configuration -AGENT_ID=your-agent-id -``` - -### Authentication Options - -The SDK supports multiple authentication methods: - -1. **Agent365 Authentication** (Recommended for production) - ```typescript - // Uses authorization and turnContext for token acquisition - await toolService.addToolServers( - agentOptions, - userId, - environmentId, - authorization, - turnContext, - '' // Empty auth token - will be acquired automatically - ); - ``` - -2. **Direct Token Authentication** - ```typescript - // Uses provided MCP_AUTH_TOKEN - await toolService.addToolServers( - agentOptions, - userId, - environmentId, - authorization, - turnContext, - process.env.MCP_AUTH_TOKEN - ); - ``` - -## Complete Example - -See the complete working example in [`/nodejs/samples/claude-code-sdk/`](../../../samples/claude-code-sdk/) which demonstrates: - -- Full agent setup with MCP tool registration -- Agent365 notification handling (email and Word comments) -- Observability integration -- Error handling and lifecycle management - -## Dependencies - -This package depends on: - -- `@anthropic-ai/claude-code` - Claude SDK -- `@microsoft/agents-hosting` - Agent365 hosting framework -- `@microsoft/agents-a365-tooling` - Common tooling functionality -- `@microsoft/agents-a365-runtime` - Agent365 runtime services - -## License - -See the main repository license file. - -## Contributing - -Contributions are welcome! Please see the main repository for contribution guidelines. - -## Support - -- **Issues**: Report bugs and request features through GitHub Issues -- **Documentation**: Additional documentation available in the main repository -- **Samples**: Working examples in `/nodejs/samples/claude-code-sdk/` +Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details diff --git a/packages/agents-a365-tooling-extensions-langchain/README.md b/packages/agents-a365-tooling-extensions-langchain/README.md index dcfa3c0e..fc3bb352 100644 --- a/packages/agents-a365-tooling-extensions-langchain/README.md +++ b/packages/agents-a365-tooling-extensions-langchain/README.md @@ -16,8 +16,8 @@ npm install @microsoft/agents-a365-tooling-extensions-langchain ### Basic Tool Server Registration ```typescript -import { createReactAgent } from "@langchain/langgraph/prebuilt"; -import { ChatOpenAI } from "@langchain/openai"; +import { createReactAgent } from \"@langchain/langgraph/prebuilt\"; +import { ChatOpenAI } from \"@langchain/openai\"; import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-extensions-langchain'; import { ClientConfig } from '@langchain/mcp-adapters'; @@ -38,7 +38,7 @@ const tools = await toolService.addMcpToolServers( // Create the model const model = new ChatOpenAI({ - model: "gpt-4o-mini", + model: \"gpt-4o-mini\", }); // Create the agent with MCP tools @@ -57,7 +57,7 @@ async function invokeAgent(userMessage: string): Promise { const result = await agent.invoke({ messages: [ { - role: "user", + role: \"user\", content: userMessage, }, ], @@ -66,7 +66,7 @@ async function invokeAgent(userMessage: string): Promise { return result.messages[result.messages.length - 1].content; } catch (error) { console.error('LangChain agent error:', error); - return `Error: ${error.message || error}`; + return \Error: \\; } } ``` @@ -82,138 +82,4 @@ For issues, questions, or feedback: Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details. - }); - - let agentMessage = ''; - - // Extract the content from the LangChain response - if (result.messages && result.messages.length > 0) { - const lastMessage = result.messages[result.messages.length - 1]; - agentMessage = lastMessage.content || "No content in response"; - } - - // Fallback if result is already a string - if (typeof result === 'string') { - agentMessage = result; - } - - if (!agentMessage) { - return "Sorry, I couldn't get a response from the agent :("; - } - - return agentMessage; - } catch (error) { - console.error('LangChain agent error:', error); - const err = error as any; - return `Error: ${err.message || err}`; - } -} -``` - -### 3. Tool Discovery and Inspection - -List available tools from registered MCP servers: - -```typescript -import { Connection } from '@langchain/mcp-adapters'; -import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-extensions-langchain'; - -const toolService = new McpToolRegistrationService(); - -// Create MCP server connection -const mcpServerName = 'MyMCPServer'; -const mcpServerConnection: Connection = { - type: 'http', - url: 'https://your-mcp-server.com', - headers: { - 'Authorization': `Bearer ${authToken}`, - 'x-ms-environment-id': environmentId, - } -}; - -// Get available tools -const tools = await toolService.getTools(mcpServerName, mcpServerConnection); -console.log('Available tools:', tools); -``` - -## Configuration - -### Environment Variables - -The following environment variables are commonly used: - -```bash -# Agent365 Authentication -AGENTIC_USER_ID=your-user-id -MCP_ENVIRONMENT_ID=your-environment-id -MCP_AUTH_TOKEN=your-auth-token - -# Agent Configuration -AGENT_ID=your-agent-id -``` - -### Authentication Options - -The SDK supports multiple authentication methods: - -1. **Agent365 Authentication** (Recommended for production) - ```typescript - // Uses authorization and turnContext for token acquisition - await toolService.addMcpToolServers( - mcpClientConfig, - userId, - environmentId, - authorization, - turnContext, - '' // Empty auth token - will be acquired automatically - ); - ``` - -2. **Direct Token Authentication** - ```typescript - // Uses provided MCP_AUTH_TOKEN - await toolService.addMcpToolServers( - mcpClientConfig, - userId, - environmentId, - authorization, - turnContext, - process.env.MCP_AUTH_TOKEN - ); - ``` - -## Complete Example - -See the complete working example in [`/nodejs/samples/langchain-sample/`](../../../samples/langchain-sample/) which demonstrates: - -- Full agent setup with MCP tool registration -- LangChain React agent creation with Agent365 tools -- Agent365 notification handling (email and Word comments) -- Observability integration with tracing -- Error handling and lifecycle management -- Express.js hosting integration - -## Dependencies - -This package depends on: - -- `@langchain/core` - LangChain core functionality -- `@langchain/mcp-adapters` - LangChain MCP adapters -- `@microsoft/agents-hosting` - Agent365 hosting framework -- `@microsoft/agents-a365-tooling` - Common tooling functionality -- `@microsoft/agents-a365-runtime` - Agent365 runtime services - -## License - -See the main repository license file. - -## Contributing - -Contributions are welcome! Please see the main repository for contribution guidelines. - -## Support - -- **Issues**: Report bugs and request features through GitHub Issues -- **Documentation**: Additional documentation available in the main repository -- **Samples**: Working examples in `/nodejs/samples/langchain-sample/` +Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details diff --git a/packages/agents-a365-tooling-extensions-openai/README.md b/packages/agents-a365-tooling-extensions-openai/README.md index 5331ee42..8b0e44e4 100644 --- a/packages/agents-a365-tooling-extensions-openai/README.md +++ b/packages/agents-a365-tooling-extensions-openai/README.md @@ -46,10 +46,10 @@ import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-exten async function invokeAgent(userMessage: string): Promise { try { const result = await run(agent, userMessage); - return result.finalOutput || "Sorry, I couldn't process your request."; + return result.finalOutput || \"Sorry, I couldn't process your request.\"; } catch (error) { console.error('OpenAI agent error:', error); - return `Error: ${error.message || error}`; + return \Error: \\; } } ``` @@ -65,124 +65,4 @@ For issues, questions, or feedback: Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details. - await server.connect(); - } -} -} - -async function closeServers(): Promise { -if (agent.mcpServers && agent.mcpServers.length > 0) { - for (const server of agent.mcpServers) { - await server.close(); - } -} -} -``` - -### 3. Tool Discovery and Inspection - -List available tools from registered MCP servers: - -```typescript -import { MCPServerStreamableHttp } from '@openai/agents'; -import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-extensions-openai'; - -const toolService = new McpToolRegistrationService(); - -// Create MCP server configuration -const mcpServer = new MCPServerStreamableHttp({ - url: 'https://your-mcp-server.com', - name: 'MyToolServer', - requestInit: { - headers: { - 'Authorization': `Bearer ${authToken}`, - 'x-ms-environment-id': environmentId, - } - } -}); - -// Get available tools -const tools = await toolService.getTools(mcpServer); -console.log('Available tools:', tools); -``` - -## Configuration - -### Environment Variables - -The following environment variables are commonly used: - -```bash -# Agent365 Authentication -AGENTIC_USER_ID=your-user-id -MCP_ENVIRONMENT_ID=your-environment-id -MCP_AUTH_TOKEN=your-auth-token - -# Agent Configuration -AGENT_ID=your-agent-id -``` - -### Authentication Options - -The SDK supports multiple authentication methods: - -1. **Agent365 Authentication** (Recommended for production) - ```typescript - // Uses authorization and turnContext for token acquisition - await toolService.addMcpToolServers( - agent, - userId, - environmentId, - authorization, - turnContext, - '' // Empty auth token - will be acquired automatically - ); - ``` - -2. **Direct Token Authentication** - ```typescript - // Uses provided MCP_AUTH_TOKEN - await toolService.addMcpToolServers( - agent, - userId, - environmentId, - authorization, - turnContext, - process.env.MCP_AUTH_TOKEN - ); - ``` - -## Complete Example - -See the complete working example in [`/nodejs/samples/openai-agents-sdk/`](../../../samples/openai-agents-sdk/) which demonstrates: - -- Full agent setup with MCP tool registration -- Agent365 notification handling (email and Word comments) -- Observability integration -- Error handling and lifecycle management - -## Dependencies - -This package depends on: - -- `@openai/agents` - OpenAI Agents SDK -- `@microsoft/agents-hosting` - Agent365 hosting framework -- `@microsoft/agents-a365-tooling` - Common tooling functionality -- `@microsoft/agents-a365-runtime` - Agent365 runtime services - -## License - -See the main repository license file. - -## Contributing - -Contributions are welcome! Please see the main repository for contribution guidelines. - -## Support - -- **Issues**: Report bugs and request features through GitHub Issues -- **Documentation**: Additional documentation available in the main repository -- **Samples**: Working examples in `/nodejs/samples/openai-agents-sdk/` - -```` \ No newline at end of file +Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details From c1b0b049ac4c57b09deb785544c300134a3d0e13 Mon Sep 17 00:00:00 2001 From: Mrunal Hirve Date: Sat, 8 Nov 2025 23:34:11 -0800 Subject: [PATCH 03/16] Update Readme --- packages/agents-a365-notifications/README.md | 44 ++++++++++++------- packages/agents-a365-observability/README.md | 29 +++++++----- packages/agents-a365-runtime/README.md | 31 ++++++------- .../README.md | 8 ++-- .../README.md | 11 ++--- .../README.md | 4 +- 6 files changed, 71 insertions(+), 56 deletions(-) diff --git a/packages/agents-a365-notifications/README.md b/packages/agents-a365-notifications/README.md index a6209ee6..c62ff157 100644 --- a/packages/agents-a365-notifications/README.md +++ b/packages/agents-a365-notifications/README.md @@ -16,41 +16,53 @@ npm install @microsoft/agents-a365-notifications ### Basic Notification Handling ```typescript +import { AgentApplication, TurnState } from '@microsoft/agents-hosting'; +import '@microsoft/agents-a365-notifications'; // Import to extend AgentApplication import { AgentNotificationActivity, NotificationType } from '@microsoft/agents-a365-notifications'; -// Handle agent notifications -app.messageExtension('agentNotifications', async (context, activity) => { - const notificationActivity = activity as AgentNotificationActivity; - - if (notificationActivity.notificationType === NotificationType.EmailNotification) { - const email = notificationActivity.emailNotification; +const app = new AgentApplication(); + +// Handle all agent notifications +app.onAgentNotification('*', async (context, state, notification) => { + if (notification.notificationType === NotificationType.EmailNotification) { + const email = notification.emailNotification; console.log(`Email from: ${email?.id}`); console.log(`Body: ${email?.htmlBody}`); } - if (notificationActivity.notificationType === NotificationType.WpxComment) { - const comment = notificationActivity.wpxCommentNotification; + if (notification.notificationType === NotificationType.WpxComment) { + const comment = notification.wpxCommentNotification; console.log(`Document: ${comment?.documentId}`); console.log(`Comment: ${comment?.initiatingCommentId}`); } }); ``` -### Email Response +### Email-Specific Notification Handler ```typescript -import { EmailResponse } from '@microsoft/agents-a365-notifications'; +import { AgentApplication, TurnState } from '@microsoft/agents-hosting'; +import '@microsoft/agents-a365-notifications'; +import { createEmailResponse } from '@microsoft/agents-a365-notifications'; -// Send email response -const response: EmailResponse = { - type: 'emailResponse', - htmlBody: '

Thank you for your message!

' -}; +const app = new AgentApplication(); -await context.sendActivity({ type: 'message', value: response }); +// Handle only email notifications +app.onAgenticEmailNotification(async (context, state, notification) => { + const email = notification.emailNotification; + + if (email) { + // Create and send email response + const response = createEmailResponse('

Thank you for your message!

'); + await context.sendActivity({ + type: 'message', + entities: [response] + }); + } +}); ``` ## Support diff --git a/packages/agents-a365-observability/README.md b/packages/agents-a365-observability/README.md index ca1f8846..6d7485e0 100644 --- a/packages/agents-a365-observability/README.md +++ b/packages/agents-a365-observability/README.md @@ -48,18 +48,25 @@ builder.start(); ```typescript import { InvokeAgentScope, ExecuteToolScope } from '@microsoft/agents-a365-observability'; -// Track agent invocation -const agentScope = new InvokeAgentScope({ - agentId: 'my-agent', - agentName: 'My Agent', - conversationId: 'conv-123' -}); +// Track agent invocation using static start method +const agentScope = InvokeAgentScope.start( + { + agentId: 'my-agent', + agentName: 'My Agent', + conversationId: 'conv-123' + }, + { tenantId: 'tenant-123' } +); -// Track tool execution -const toolScope = new ExecuteToolScope({ - toolName: 'SearchTool', - endpoint: 'https://api.example.com' -}); +// Track tool execution using static start method +const toolScope = ExecuteToolScope.start( + { + toolName: 'SearchTool', + endpoint: { host: 'https://api.example.com' } + }, + { agentId: 'my-agent' }, + { tenantId: 'tenant-123' } +); ``` ## Support diff --git a/packages/agents-a365-runtime/README.md b/packages/agents-a365-runtime/README.md index 6ae94ad3..4778cad5 100644 --- a/packages/agents-a365-runtime/README.md +++ b/packages/agents-a365-runtime/README.md @@ -17,31 +17,26 @@ npm install @microsoft/agents-a365-runtime ```typescript import { AgenticAuthenticationService } from '@microsoft/agents-a365-runtime'; +import { TurnContext } from '@microsoft/agents-hosting'; -const authService = new AgenticAuthenticationService(); - -// Get authentication token -const token = await authService.getToken(tenantId, scopes); -``` - -### Authorization Service - -```typescript -import { AgenticAuthorizationService } from '@microsoft/agents-a365-runtime'; - -const authzService = new AgenticAuthorizationService(); - -// Check user permissions -const hasAccess = await authzService.checkAccess(userId, resource); +// Get agentic user token (static method) +const token = await AgenticAuthenticationService.GetAgenticUserToken( + authorization, + turnContext +); ``` ### Power Platform API Discovery ```typescript -import { PowerPlatformApiDiscovery } from '@microsoft/agents-a365-runtime'; +import { PowerPlatformApiDiscovery, ClusterCategory } from '@microsoft/agents-a365-runtime'; + +// Create API discovery service +const apiDiscovery = new PowerPlatformApiDiscovery(ClusterCategory.Prod); -// Discover Power Platform API endpoints -const apiEndpoint = await PowerPlatformApiDiscovery.getEndpoint(environment); +// Get service endpoints +const mcpPlatformEndpoint = apiDiscovery.getMcpPlatformEndpoint(); +const toolingGatewayEndpoint = apiDiscovery.getToolingGatewayEndpoint(); ``` ## Support diff --git a/packages/agents-a365-tooling-extensions-claude/README.md b/packages/agents-a365-tooling-extensions-claude/README.md index 62c364a7..cd914c7b 100644 --- a/packages/agents-a365-tooling-extensions-claude/README.md +++ b/packages/agents-a365-tooling-extensions-claude/README.md @@ -20,7 +20,7 @@ import { query, Options } from '@anthropic-ai/claude-code'; import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-extensions-claude'; const agentOptions: Options = { - appendSystemPrompt: \You are a helpful AI assistant integrated with Microsoft 365.\, + appendSystemPrompt: `You are a helpful AI assistant integrated with Microsoft 365.`, maxTurns: 3, allowedTools: ['Read', 'Write', 'WebSearch', 'Bash', 'Grep'], }; @@ -45,7 +45,7 @@ import { query, Options } from '@anthropic-ai/claude-code'; import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-extensions-claude'; async function invokeAgent(userMessage: string): Promise { - let claudeResponse = \"\"; + let claudeResponse = ""; try { for await (const message of query({ prompt: userMessage, @@ -56,10 +56,10 @@ async function invokeAgent(userMessage: string): Promise { break; } } - return claudeResponse || \"Sorry, I couldn't get a response from Claude.\"; + return claudeResponse || "Sorry, I couldn't get a response from Claude."; } catch (error) { console.error('Claude error:', error); - return \Error: \\; + return `Error: ${error.message || error}`; } } ``` diff --git a/packages/agents-a365-tooling-extensions-langchain/README.md b/packages/agents-a365-tooling-extensions-langchain/README.md index fc3bb352..03e31528 100644 --- a/packages/agents-a365-tooling-extensions-langchain/README.md +++ b/packages/agents-a365-tooling-extensions-langchain/README.md @@ -16,8 +16,8 @@ npm install @microsoft/agents-a365-tooling-extensions-langchain ### Basic Tool Server Registration ```typescript -import { createReactAgent } from \"@langchain/langgraph/prebuilt\"; -import { ChatOpenAI } from \"@langchain/openai\"; +import { createReactAgent } from "@langchain/langgraph/prebuilt"; +import { ChatOpenAI } from "@langchain/openai"; import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-extensions-langchain'; import { ClientConfig } from '@langchain/mcp-adapters'; @@ -38,7 +38,7 @@ const tools = await toolService.addMcpToolServers( // Create the model const model = new ChatOpenAI({ - model: \"gpt-4o-mini\", + model: "gpt-4o-mini", }); // Create the agent with MCP tools @@ -57,7 +57,7 @@ async function invokeAgent(userMessage: string): Promise { const result = await agent.invoke({ messages: [ { - role: \"user\", + role: "user", content: userMessage, }, ], @@ -66,9 +66,10 @@ async function invokeAgent(userMessage: string): Promise { return result.messages[result.messages.length - 1].content; } catch (error) { console.error('LangChain agent error:', error); - return \Error: \\; + return `Error: ${error.message || error}`; } } +} ``` ## Support diff --git a/packages/agents-a365-tooling-extensions-openai/README.md b/packages/agents-a365-tooling-extensions-openai/README.md index 8b0e44e4..184cadd1 100644 --- a/packages/agents-a365-tooling-extensions-openai/README.md +++ b/packages/agents-a365-tooling-extensions-openai/README.md @@ -46,10 +46,10 @@ import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-exten async function invokeAgent(userMessage: string): Promise { try { const result = await run(agent, userMessage); - return result.finalOutput || \"Sorry, I couldn't process your request.\"; + return result.finalOutput || "Sorry, I couldn't process your request."; } catch (error) { console.error('OpenAI agent error:', error); - return \Error: \\; + return `Error: ${error.message || error}`; } } ``` From 10333c9983dab3ac8b427447d009a0a6fc2c04d7 Mon Sep 17 00:00:00 2001 From: Jim Daly Date: Mon, 10 Nov 2025 11:16:14 -0800 Subject: [PATCH 04/16] edits --- README.md | 45 ++++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index bd02b9d0..ee0d1dba 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Microsoft Agents A365 SDK - Node.js +# Microsoft Agents 365 SDK - Node.js [![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-observability?label=npm&logo=npm)](https://www.npmjs.com/search?q=%40microsoft%2Fagents-a365) [![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-observability?label=Downloads&logo=npm)](https://www.npmjs.com/search?q=%40microsoft%2Fagents-a365) @@ -7,9 +7,12 @@ [![Node.js Version](https://img.shields.io/badge/Node.js-18%2B-339933?logo=node.js)](https://nodejs.org/) [![Contributors](https://img.shields.io/github/contributors/microsoft/Agent365-nodejs?label=Contributors&logo=github)](https://github.com/microsoft/Agent365-nodejs/graphs/contributors) -The Microsoft Agents A365 SDK extends the Microsoft 365 Agents SDK with enterprise-grade capabilities for building sophisticated agents. This SDK provides comprehensive tooling for observability, notifications, runtime utilities, and development tools that help developers create production-ready agents for platforms including M365, Teams, Copilot Studio, and Webchat. +> #### Note: +> Use the information in this README to contribute to this open-source project. To learn about using this SDK in your projects, refer to the [Microsoft Agents 365 developer documentation](https://learn.microsoft.com/microsoft-agent-365/developer/). -The Microsoft Agents A365 SDK focuses on four core areas: +The Microsoft Agents 365 SDK extends the Microsoft 365 Agents SDK with enterprise-grade capabilities for building sophisticated agents. This SDK provides comprehensive tooling for observability, notifications, runtime utilities, and development tools that help developers create production-ready agents for platforms including M365, Teams, Copilot Studio, and Webchat. + +The Microsoft Agents 365 SDK focuses on four core areas: - **Observability**: Comprehensive tracing, caching, and monitoring capabilities for agent applications - **Notifications**: Agent notification services and models for handling user notifications @@ -64,15 +67,15 @@ For more detailed build instructions, see the [HOW_TO_BUILD.md](HOW_TO_BUILD.md) ## Project Structure -- **packages/agents-a365-notifications**: Microsoft Agents A365 Notifications - Agent notification services and models -- **packages/agents-a365-observability**: Microsoft Agents A365 Observability Core - Core observability functionality +- **packages/agents-a365-notifications**: Microsoft Agents 365 Notifications - Agent notification services and models +- **packages/agents-a365-observability**: Microsoft Agents 365 Observability Core - Core observability functionality - **packages/agents-a365-observability-extensions-openai**: OpenAI observability extensions -- **packages/agents-a365-runtime**: Microsoft Agents A365 Runtime - Core runtime utilities and extensions -- **packages/agents-a365-tooling**: Microsoft Agents A365 Tooling - Agent tooling and MCP integration +- **packages/agents-a365-runtime**: Microsoft Agents 365 Runtime - Core runtime utilities and extensions +- **packages/agents-a365-tooling**: Microsoft Agents 365 Tooling - Agent tooling and MCP integration - **packages/agents-a365-tooling-extensions-claude**: Claude/Anthropic tooling extensions - **packages/agents-a365-tooling-extensions-langchain**: LangChain tooling extensions - **packages/agents-a365-tooling-extensions-openai**: OpenAI tooling extensions -- **samples/**: For sample applications, see the [Agent365-Samples Repository](https://github.com/microsoft/Agent365-Samples/tree/main/nodejs) +- **samples/**: For sample applications, see the [Agent365-Samples repository](https://github.com/microsoft/Agent365-Samples/tree/main/nodejs) - **tests/**: Unit and integration tests ## Support @@ -80,7 +83,7 @@ For more detailed build instructions, see the [HOW_TO_BUILD.md](HOW_TO_BUILD.md) For issues, questions, or feedback: - **Issues**: Please file issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section -- **Documentation**: See the [Microsoft Agents A365 Developer Documentation](https://learn.microsoft.com/en-us/microsoft-agent-365/developer/) +- **Documentation**: See the [Microsoft Agents 365 developer documentation](https://learn.microsoft.com/microsoft-agent-365/developer/) - **Security**: For security issues, please see [SECURITY.md](SECURITY.md) ## Contributing @@ -93,7 +96,7 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope ## Trademarks -This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general). Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies. +This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/legal/intellectualproperty/trademarks/usage/general). Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies. ## Useful Links @@ -102,24 +105,24 @@ This project may contain trademarks or logos for projects, products, or services The core SDK for building conversational AI agents for Microsoft 365 platforms. - [Microsoft 365 Agents SDK](https://aka.ms/agents) -- [Agents-for-net Repository](https://github.com/Microsoft/Agents-for-net) -- [Agents-for-js Repository](https://github.com/Microsoft/Agents-for-js) -- [Agents-for-python Repository](https://github.com/Microsoft/Agents-for-python) -- [Official Agents Documentation](https://learn.microsoft.com/en-us/microsoft-365/agents-sdk/) +- [Agents-for-net repository](https://github.com/Microsoft/Agents-for-net) +- [Agents-for-js repository](https://github.com/Microsoft/Agents-for-js) +- [Agents-for-python repository](https://github.com/Microsoft/Agents-for-python) +- [Official Agents Documentation](https://learn.microsoft.com/microsoft-365/agents-sdk/) -### Microsoft Agents A365 SDK +### Microsoft Agents 365 SDK Enterprise-grade extensions for observability, notifications, runtime utilities, and developer tools. -- [Agent365-dotnet Repository](https://github.com/microsoft/Agent365-dotnet) -- [Agent365-python Repository](https://github.com/microsoft/Agent365-python) -- [Agent365-nodejs Repository](https://github.com/microsoft/Agent365-nodejs) - You are here -- [Agent365-Samples Repository](https://github.com/microsoft/Agent365-Samples) -- [Microsoft Agents A365 Developer Documentation](https://learn.microsoft.com/en-us/microsoft-agent-365/developer/) +- [Agent365-dotnet repository](https://github.com/microsoft/Agent365-dotnet) +- [Agent365-python repository](https://github.com/microsoft/Agent365-python) +- [Agent365-nodejs repository](https://github.com/microsoft/Agent365-nodejs) - You are here +- [Agent365-Samples repository](https://github.com/microsoft/Agent365-Samples) +- [Microsoft Agents 365 developer documentation](https://learn.microsoft.com/microsoft-agent-365/developer/) ### Additional Resources -- [Node.js Documentation](https://learn.microsoft.com/en-us/javascript/api/?view=m365-agents-sdk&preserve-view=true) +- [Node.js documentation](https://learn.microsoft.com/javascript/api/?view=m365-agents-sdk&preserve-view=true) ## Data Collection Notice From 82d08e7c64ca7722fd6b2dbf5418fe790f8343f8 Mon Sep 17 00:00:00 2001 From: abdulanu0 Date: Tue, 11 Nov 2025 10:01:26 -0800 Subject: [PATCH 05/16] resolving comment --- README.md | 24 ++++---- packages/agents-a365-notifications/README.md | 54 +---------------- .../README.md | 39 +----------- packages/agents-a365-observability/README.md | 56 +---------------- packages/agents-a365-runtime/README.md | 28 +-------- .../README.md | 52 +--------------- .../README.md | 60 +------------------ .../README.md | 43 +------------ packages/agents-a365-tooling/README.md | 34 +---------- 9 files changed, 26 insertions(+), 364 deletions(-) diff --git a/README.md b/README.md index ee0d1dba..363c2d51 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Microsoft Agents 365 SDK - Node.js +# Microsoft Agent 365 SDK - Node.js [![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-observability?label=npm&logo=npm)](https://www.npmjs.com/search?q=%40microsoft%2Fagents-a365) [![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-observability?label=Downloads&logo=npm)](https://www.npmjs.com/search?q=%40microsoft%2Fagents-a365) @@ -8,11 +8,11 @@ [![Contributors](https://img.shields.io/github/contributors/microsoft/Agent365-nodejs?label=Contributors&logo=github)](https://github.com/microsoft/Agent365-nodejs/graphs/contributors) > #### Note: -> Use the information in this README to contribute to this open-source project. To learn about using this SDK in your projects, refer to the [Microsoft Agents 365 developer documentation](https://learn.microsoft.com/microsoft-agent-365/developer/). +> Use the information in this README to contribute to this open-source project. To learn about using this SDK in your projects, refer to the [Microsoft Agent 365 developer documentation](https://learn.microsoft.com/microsoft-agent-365/developer/). -The Microsoft Agents 365 SDK extends the Microsoft 365 Agents SDK with enterprise-grade capabilities for building sophisticated agents. This SDK provides comprehensive tooling for observability, notifications, runtime utilities, and development tools that help developers create production-ready agents for platforms including M365, Teams, Copilot Studio, and Webchat. +The Microsoft Agent 365 SDK extends the Microsoft 365 Agents SDK with enterprise-grade capabilities for building sophisticated agents. This SDK provides comprehensive tooling for observability, notifications, runtime utilities, and development tools that help developers create production-ready agents for platforms including M365, Teams, Copilot Studio, and Webchat. -The Microsoft Agents 365 SDK focuses on four core areas: +The Microsoft Agent 365 SDK focuses on four core areas: - **Observability**: Comprehensive tracing, caching, and monitoring capabilities for agent applications - **Notifications**: Agent notification services and models for handling user notifications @@ -67,11 +67,11 @@ For more detailed build instructions, see the [HOW_TO_BUILD.md](HOW_TO_BUILD.md) ## Project Structure -- **packages/agents-a365-notifications**: Microsoft Agents 365 Notifications - Agent notification services and models -- **packages/agents-a365-observability**: Microsoft Agents 365 Observability Core - Core observability functionality +- **packages/agents-a365-notifications**: Microsoft Agent 365 Notifications SDK - Agent notification services and models +- **packages/agents-a365-observability**: Microsoft Agent 365 Observability Core - Core observability functionality - **packages/agents-a365-observability-extensions-openai**: OpenAI observability extensions -- **packages/agents-a365-runtime**: Microsoft Agents 365 Runtime - Core runtime utilities and extensions -- **packages/agents-a365-tooling**: Microsoft Agents 365 Tooling - Agent tooling and MCP integration +- **packages/agents-a365-runtime**: Microsoft Agent 365 Runtime - Core runtime utilities and extensions +- **packages/agents-a365-tooling**: Microsoft Agent 365 Tooling SDK - Agent tooling and MCP integration - **packages/agents-a365-tooling-extensions-claude**: Claude/Anthropic tooling extensions - **packages/agents-a365-tooling-extensions-langchain**: LangChain tooling extensions - **packages/agents-a365-tooling-extensions-openai**: OpenAI tooling extensions @@ -83,7 +83,7 @@ For more detailed build instructions, see the [HOW_TO_BUILD.md](HOW_TO_BUILD.md) For issues, questions, or feedback: - **Issues**: Please file issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section -- **Documentation**: See the [Microsoft Agents 365 developer documentation](https://learn.microsoft.com/microsoft-agent-365/developer/) +- **Documentation**: See the [Microsoft Agent 365 developer documentation](https://learn.microsoft.com/microsoft-agent-365/developer/) - **Security**: For security issues, please see [SECURITY.md](SECURITY.md) ## Contributing @@ -105,12 +105,10 @@ This project may contain trademarks or logos for projects, products, or services The core SDK for building conversational AI agents for Microsoft 365 platforms. - [Microsoft 365 Agents SDK](https://aka.ms/agents) -- [Agents-for-net repository](https://github.com/Microsoft/Agents-for-net) - [Agents-for-js repository](https://github.com/Microsoft/Agents-for-js) -- [Agents-for-python repository](https://github.com/Microsoft/Agents-for-python) - [Official Agents Documentation](https://learn.microsoft.com/microsoft-365/agents-sdk/) -### Microsoft Agents 365 SDK +### Microsoft Agent 365 SDK Enterprise-grade extensions for observability, notifications, runtime utilities, and developer tools. @@ -118,7 +116,7 @@ Enterprise-grade extensions for observability, notifications, runtime utilities, - [Agent365-python repository](https://github.com/microsoft/Agent365-python) - [Agent365-nodejs repository](https://github.com/microsoft/Agent365-nodejs) - You are here - [Agent365-Samples repository](https://github.com/microsoft/Agent365-Samples) -- [Microsoft Agents 365 developer documentation](https://learn.microsoft.com/microsoft-agent-365/developer/) +- [Microsoft Agent 365 developer documentation](https://learn.microsoft.com/microsoft-agent-365/developer/) ### Additional Resources diff --git a/packages/agents-a365-notifications/README.md b/packages/agents-a365-notifications/README.md index c62ff157..1bdc367a 100644 --- a/packages/agents-a365-notifications/README.md +++ b/packages/agents-a365-notifications/README.md @@ -3,7 +3,7 @@ [![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-notifications?label=npm&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-notifications) [![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-notifications?label=Downloads&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-notifications) -Agent notification services and models for handling user notifications in Microsoft Agents A365 applications. This package provides type-safe notification handling for email, Word comments, and other collaboration scenarios. +Agent notification services and models for handling user notifications in applications built with the Microsoft Agent 365 SDK. This package provides type-safe notification handling for email, Word comments, and other collaboration scenarios. ## Installation @@ -13,57 +13,7 @@ npm install @microsoft/agents-a365-notifications ## Usage -### Basic Notification Handling - -```typescript -import { AgentApplication, TurnState } from '@microsoft/agents-hosting'; -import '@microsoft/agents-a365-notifications'; // Import to extend AgentApplication -import { - AgentNotificationActivity, - NotificationType -} from '@microsoft/agents-a365-notifications'; - -const app = new AgentApplication(); - -// Handle all agent notifications -app.onAgentNotification('*', async (context, state, notification) => { - if (notification.notificationType === NotificationType.EmailNotification) { - const email = notification.emailNotification; - console.log(`Email from: ${email?.id}`); - console.log(`Body: ${email?.htmlBody}`); - } - - if (notification.notificationType === NotificationType.WpxComment) { - const comment = notification.wpxCommentNotification; - console.log(`Document: ${comment?.documentId}`); - console.log(`Comment: ${comment?.initiatingCommentId}`); - } -}); -``` - -### Email-Specific Notification Handler - -```typescript -import { AgentApplication, TurnState } from '@microsoft/agents-hosting'; -import '@microsoft/agents-a365-notifications'; -import { createEmailResponse } from '@microsoft/agents-a365-notifications'; - -const app = new AgentApplication(); - -// Handle only email notifications -app.onAgenticEmailNotification(async (context, state, notification) => { - const email = notification.emailNotification; - - if (email) { - // Create and send email response - const response = createEmailResponse('

Thank you for your message!

'); - await context.sendActivity({ - type: 'message', - entities: [response] - }); - } -}); -``` +For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Notification Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/notification?tabs=js). ## Support diff --git a/packages/agents-a365-observability-extensions-openai/README.md b/packages/agents-a365-observability-extensions-openai/README.md index a55698bf..856a1500 100644 --- a/packages/agents-a365-observability-extensions-openai/README.md +++ b/packages/agents-a365-observability-extensions-openai/README.md @@ -3,7 +3,7 @@ [![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-observability-extensions-openai?label=npm&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-observability-extensions-openai) [![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-observability-extensions-openai?label=Downloads&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-observability-extensions-openai) -OpenAI Agents SDK instrumentation for Microsoft Agents A365 observability. This package provides automatic OpenTelemetry tracing and telemetry collection for OpenAI Agents SDK operations, including agent execution, function calls, and AI model interactions. +OpenAI Agents SDK instrumentation for the Microsoft Agent 365 Observability SDK. This package provides automatic OpenTelemetry tracing and telemetry collection for OpenAI Agents SDK operations, including agent execution, function calls, and AI model interactions. ## Installation @@ -13,42 +13,7 @@ npm install @microsoft/agents-a365-observability-extensions-openai ## Usage -### Basic Setup - -```typescript -import { ObservabilityManager } from '@microsoft/agents-a365-observability'; -import { OpenAIAgentsTraceInstrumentor } from '@microsoft/agents-a365-observability-extensions-openai'; - -// Configure observability first -const sdk = ObservabilityManager.configure((builder) => - builder - .withService('My Agent Service', '1.0.0') - .withConsoleExporter(true) -); - -// Create and enable the instrumentor -const instrumentor = new OpenAIAgentsTraceInstrumentor({ - enabled: true, - tracerName: 'openai-agents-tracer', - tracerVersion: '1.0.0' -}); - -sdk.start(); -instrumentor.enable(); -``` - -### Configuration Options - -```typescript -interface OpenAIAgentsInstrumentationConfig { - // Enable/disable instrumentation - enabled?: boolean; - - // Custom tracer configuration - tracerName?: string; - tracerVersion?: string; -} -``` +For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Observability Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/observability?tabs=js). ## Support diff --git a/packages/agents-a365-observability/README.md b/packages/agents-a365-observability/README.md index 6d7485e0..d9c54267 100644 --- a/packages/agents-a365-observability/README.md +++ b/packages/agents-a365-observability/README.md @@ -13,61 +13,7 @@ npm install @microsoft/agents-a365-observability ## Usage -### Basic Setup - -```typescript -import { ObservabilityManager } from '@microsoft/agents-a365-observability'; - -// Simple configuration -const sdk = ObservabilityManager.start({ - serviceName: 'my-agent-service', - serviceVersion: '1.0.0' -}); -``` - -### Using Builder Pattern - -```typescript -import { ObservabilityManager } from '@microsoft/agents-a365-observability'; - -// Advanced configuration with builder pattern -const builder = ObservabilityManager.configure(builder => - builder - .withService('my-agent-service', '1.0.0') - .withTokenResolver((agentId, tenantId) => { - return getUserManagedIdentityToken(); - }) - .withClusterCategory('preprod') -); - -builder.start(); -``` - -### Creating Spans - -```typescript -import { InvokeAgentScope, ExecuteToolScope } from '@microsoft/agents-a365-observability'; - -// Track agent invocation using static start method -const agentScope = InvokeAgentScope.start( - { - agentId: 'my-agent', - agentName: 'My Agent', - conversationId: 'conv-123' - }, - { tenantId: 'tenant-123' } -); - -// Track tool execution using static start method -const toolScope = ExecuteToolScope.start( - { - toolName: 'SearchTool', - endpoint: { host: 'https://api.example.com' } - }, - { agentId: 'my-agent' }, - { tenantId: 'tenant-123' } -); -``` +For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Observability Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/observability?tabs=js). ## Support diff --git a/packages/agents-a365-runtime/README.md b/packages/agents-a365-runtime/README.md index 4778cad5..8aa28907 100644 --- a/packages/agents-a365-runtime/README.md +++ b/packages/agents-a365-runtime/README.md @@ -3,7 +3,7 @@ [![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-runtime?label=npm&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-runtime) [![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-runtime?label=Downloads&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-runtime) -Core runtime utilities and services for Microsoft Agents A365 applications. This package provides authentication, authorization, and Power Platform API discovery capabilities for building enterprise-ready AI agents. +Core runtime utilities and services for applications built with the Microsoft Agent 365 SDK. This package provides authentication, authorization, and Power Platform API discovery capabilities for building enterprise-ready AI agents. ## Installation @@ -13,31 +13,7 @@ npm install @microsoft/agents-a365-runtime ## Usage -### Authentication Service - -```typescript -import { AgenticAuthenticationService } from '@microsoft/agents-a365-runtime'; -import { TurnContext } from '@microsoft/agents-hosting'; - -// Get agentic user token (static method) -const token = await AgenticAuthenticationService.GetAgenticUserToken( - authorization, - turnContext -); -``` - -### Power Platform API Discovery - -```typescript -import { PowerPlatformApiDiscovery, ClusterCategory } from '@microsoft/agents-a365-runtime'; - -// Create API discovery service -const apiDiscovery = new PowerPlatformApiDiscovery(ClusterCategory.Prod); - -// Get service endpoints -const mcpPlatformEndpoint = apiDiscovery.getMcpPlatformEndpoint(); -const toolingGatewayEndpoint = apiDiscovery.getToolingGatewayEndpoint(); -``` +For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Developer Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/?tabs=js). ## Support diff --git a/packages/agents-a365-tooling-extensions-claude/README.md b/packages/agents-a365-tooling-extensions-claude/README.md index cd914c7b..46b9bd0b 100644 --- a/packages/agents-a365-tooling-extensions-claude/README.md +++ b/packages/agents-a365-tooling-extensions-claude/README.md @@ -3,7 +3,7 @@ [![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-tooling-extensions-claude?label=npm&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-tooling-extensions-claude) [![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-tooling-extensions-claude?label=Downloads&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-tooling-extensions-claude) -Claude SDK integration for Microsoft Agents A365 tooling. This package enables seamless integration of MCP (Model Context Protocol) tool servers with Anthropic's Claude, providing automatic tool discovery and registration. +Claude SDK integration for the Microsoft Agent 365 Tooling SDK. This package enables seamless integration of MCP (Model Context Protocol) tool servers with Anthropic's Claude, providing automatic tool discovery and registration. ## Installation @@ -13,55 +13,7 @@ npm install @microsoft/agents-a365-tooling-extensions-claude ## Usage -### Basic Tool Server Registration - -```typescript -import { query, Options } from '@anthropic-ai/claude-code'; -import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-extensions-claude'; - -const agentOptions: Options = { - appendSystemPrompt: `You are a helpful AI assistant integrated with Microsoft 365.`, - maxTurns: 3, - allowedTools: ['Read', 'Write', 'WebSearch', 'Bash', 'Grep'], -}; - -const toolService = new McpToolRegistrationService(); - -// Add MCP tool servers to Claude options -await toolService.addToolServers( - agentOptions, - process.env.AGENTIC_USER_ID || '', - process.env.MCP_ENVIRONMENT_ID || '', - authorization, - turnContext, - process.env.MCP_AUTH_TOKEN || '' -); -``` - -### Complete Agent Setup - -```typescript -import { query, Options } from '@anthropic-ai/claude-code'; -import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-extensions-claude'; - -async function invokeAgent(userMessage: string): Promise { - let claudeResponse = ""; - try { - for await (const message of query({ - prompt: userMessage, - options: agentOptions - })) { - if (message.type === 'result' && message.result) { - claudeResponse = message.result; - break; - } - } - return claudeResponse || "Sorry, I couldn't get a response from Claude."; - } catch (error) { - console.error('Claude error:', error); - return `Error: ${error.message || error}`; - } -} +For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Developer Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/?tabs=js). ``` ## Support diff --git a/packages/agents-a365-tooling-extensions-langchain/README.md b/packages/agents-a365-tooling-extensions-langchain/README.md index 03e31528..69a817ad 100644 --- a/packages/agents-a365-tooling-extensions-langchain/README.md +++ b/packages/agents-a365-tooling-extensions-langchain/README.md @@ -3,7 +3,7 @@ [![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-tooling-extensions-langchain?label=npm&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-tooling-extensions-langchain) [![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-tooling-extensions-langchain?label=Downloads&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-tooling-extensions-langchain) -LangChain integration for Microsoft Agents A365 tooling. This package enables seamless integration of MCP (Model Context Protocol) tool servers with LangChain agents, providing automatic tool discovery and registration as DynamicStructuredTool instances. +LangChain integration for the Microsoft Agent 365 Tooling SDK. This package enables seamless integration of MCP (Model Context Protocol) tool servers with LangChain agents, providing automatic tool discovery and registration as DynamicStructuredTool instances. ## Installation @@ -13,63 +13,7 @@ npm install @microsoft/agents-a365-tooling-extensions-langchain ## Usage -### Basic Tool Server Registration - -```typescript -import { createReactAgent } from "@langchain/langgraph/prebuilt"; -import { ChatOpenAI } from "@langchain/openai"; -import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-extensions-langchain'; -import { ClientConfig } from '@langchain/mcp-adapters'; - -const toolService = new McpToolRegistrationService(); - -// Configure MCP client -const mcpClientConfig = {} as ClientConfig; - -// Add MCP tool servers and get LangChain tools -const tools = await toolService.addMcpToolServers( - mcpClientConfig, - process.env.AGENTIC_USER_ID || '', - process.env.MCP_ENVIRONMENT_ID || '', - authorization, - turnContext, - process.env.MCP_AUTH_TOKEN || '' -); - -// Create the model -const model = new ChatOpenAI({ - model: "gpt-4o-mini", -}); - -// Create the agent with MCP tools -const agent = createReactAgent({ - llm: model, - tools: tools, - name: 'LangChain Agent' -}); -``` - -### Complete Agent Setup - -```typescript -async function invokeAgent(userMessage: string): Promise { - try { - const result = await agent.invoke({ - messages: [ - { - role: "user", - content: userMessage, - }, - ], - }); - - return result.messages[result.messages.length - 1].content; - } catch (error) { - console.error('LangChain agent error:', error); - return `Error: ${error.message || error}`; - } -} -} +For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Developer Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/?tabs=js). ``` ## Support diff --git a/packages/agents-a365-tooling-extensions-openai/README.md b/packages/agents-a365-tooling-extensions-openai/README.md index 184cadd1..309c723c 100644 --- a/packages/agents-a365-tooling-extensions-openai/README.md +++ b/packages/agents-a365-tooling-extensions-openai/README.md @@ -3,7 +3,7 @@ [![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-tooling-extensions-openai?label=npm&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-tooling-extensions-openai) [![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-tooling-extensions-openai?label=Downloads&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-tooling-extensions-openai) -OpenAI Agents SDK integration for Microsoft Agents A365 tooling. This package enables seamless integration of MCP (Model Context Protocol) tool servers with OpenAI Agents, providing automatic tool discovery and registration. +OpenAI Agents SDK integration for the Microsoft Agent 365 Tooling SDK. This package enables seamless integration of MCP (Model Context Protocol) tool servers with OpenAI Agents, providing automatic tool discovery and registration. ## Installation @@ -13,46 +13,7 @@ npm install @microsoft/agents-a365-tooling-extensions-openai ## Usage -### Basic Tool Server Registration - -```typescript -import { Agent } from '@openai/agents'; -import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-extensions-openai'; - -const agent = new Agent({ - name: 'My Agent', - model: 'gpt-4o' -}); - -const toolService = new McpToolRegistrationService(); - -// Register MCP tool servers with the agent -await toolService.addMcpToolServers( - agent, - process.env.AGENTIC_USER_ID || '', - process.env.MCP_ENVIRONMENT_ID || '', - authorization, - turnContext, - process.env.MCP_AUTH_TOKEN || '' -); -``` - -### Complete Agent Setup - -```typescript -import { Agent, run } from '@openai/agents'; -import { McpToolRegistrationService } from '@microsoft/agents-a365-tooling-extensions-openai'; - -async function invokeAgent(userMessage: string): Promise { - try { - const result = await run(agent, userMessage); - return result.finalOutput || "Sorry, I couldn't process your request."; - } catch (error) { - console.error('OpenAI agent error:', error); - return `Error: ${error.message || error}`; - } -} -``` +For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Tooling Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/tooling?tabs=js). ## Support diff --git a/packages/agents-a365-tooling/README.md b/packages/agents-a365-tooling/README.md index 2ef5756f..928b947a 100644 --- a/packages/agents-a365-tooling/README.md +++ b/packages/agents-a365-tooling/README.md @@ -3,7 +3,7 @@ [![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-tooling?label=npm&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-tooling) [![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-tooling?label=Downloads&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-tooling) -Core tooling functionality for MCP (Model Context Protocol) tool server management in Microsoft Agents A365 applications. This package provides the foundation for discovering, registering, and managing tool servers across different AI frameworks. +Core tooling functionality for MCP (Model Context Protocol) tool server management in applications built with the Microsoft Agent 365 SDK. This package provides the foundation for discovering, registering, and managing tool servers across different AI frameworks. ## Installation @@ -13,37 +13,7 @@ npm install @microsoft/agents-a365-tooling ## Usage -### Tool Server Discovery - -```typescript -import { McpToolServerConfigurationService } from '@microsoft/agents-a365-tooling'; - -const configService = new McpToolServerConfigurationService(); - -// List all available tool servers for an agent -const toolServers = await configService.listToolServers( - agentUserId, - environmentId, - authToken -); - -for (const server of toolServers) { - console.log(`Tool Server: ${server.mcpServerName}`); - console.log(` Server URL: ${server.url}`); -} -``` - -### Get MCP Client Tools - -```typescript -// Get tools from a specific server -const mcpTools = await configService.getMcpClientTools( - turnContext, - server, - environmentId, - authToken -); -``` +For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Tooling Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/tooling?tabs=js). ## Support From 4298bdc31ac1c09b3044cc2d9936adce5aba813e Mon Sep 17 00:00:00 2001 From: abdulanu0 Date: Tue, 11 Nov 2025 13:28:25 -0800 Subject: [PATCH 06/16] resolved comment --- packages/agents-a365-notifications/README.md | 2 +- packages/agents-a365-observability-extensions-openai/README.md | 2 +- packages/agents-a365-runtime/README.md | 2 +- packages/agents-a365-tooling-extensions-claude/README.md | 3 +-- packages/agents-a365-tooling-extensions-langchain/README.md | 3 +-- packages/agents-a365-tooling-extensions-openai/README.md | 2 +- packages/agents-a365-tooling/README.md | 2 +- 7 files changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/agents-a365-notifications/README.md b/packages/agents-a365-notifications/README.md index 1bdc367a..1a1be34d 100644 --- a/packages/agents-a365-notifications/README.md +++ b/packages/agents-a365-notifications/README.md @@ -13,7 +13,7 @@ npm install @microsoft/agents-a365-notifications ## Usage -For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Notification Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/notification?tabs=js). +For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Notification Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/notification?tabs=nodejs). ## Support diff --git a/packages/agents-a365-observability-extensions-openai/README.md b/packages/agents-a365-observability-extensions-openai/README.md index 856a1500..bc1bc0c7 100644 --- a/packages/agents-a365-observability-extensions-openai/README.md +++ b/packages/agents-a365-observability-extensions-openai/README.md @@ -13,7 +13,7 @@ npm install @microsoft/agents-a365-observability-extensions-openai ## Usage -For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Observability Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/observability?tabs=js). +For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Observability Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/observability?tabs=nodejs). ## Support diff --git a/packages/agents-a365-runtime/README.md b/packages/agents-a365-runtime/README.md index 8aa28907..35296309 100644 --- a/packages/agents-a365-runtime/README.md +++ b/packages/agents-a365-runtime/README.md @@ -13,7 +13,7 @@ npm install @microsoft/agents-a365-runtime ## Usage -For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Developer Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/?tabs=js). +For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Developer Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/?tabs=nodejs). ## Support diff --git a/packages/agents-a365-tooling-extensions-claude/README.md b/packages/agents-a365-tooling-extensions-claude/README.md index 46b9bd0b..48694492 100644 --- a/packages/agents-a365-tooling-extensions-claude/README.md +++ b/packages/agents-a365-tooling-extensions-claude/README.md @@ -13,8 +13,7 @@ npm install @microsoft/agents-a365-tooling-extensions-claude ## Usage -For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Developer Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/?tabs=js). -``` +For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Developer Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/?tabs=nodejs). ## Support diff --git a/packages/agents-a365-tooling-extensions-langchain/README.md b/packages/agents-a365-tooling-extensions-langchain/README.md index 69a817ad..81c26b09 100644 --- a/packages/agents-a365-tooling-extensions-langchain/README.md +++ b/packages/agents-a365-tooling-extensions-langchain/README.md @@ -13,8 +13,7 @@ npm install @microsoft/agents-a365-tooling-extensions-langchain ## Usage -For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Developer Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/?tabs=js). -``` +For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Developer Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/?tabs=nodejs). ## Support diff --git a/packages/agents-a365-tooling-extensions-openai/README.md b/packages/agents-a365-tooling-extensions-openai/README.md index 309c723c..94852dc3 100644 --- a/packages/agents-a365-tooling-extensions-openai/README.md +++ b/packages/agents-a365-tooling-extensions-openai/README.md @@ -13,7 +13,7 @@ npm install @microsoft/agents-a365-tooling-extensions-openai ## Usage -For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Tooling Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/tooling?tabs=js). +For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Tooling Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/tooling?tabs=nodejs). ## Support diff --git a/packages/agents-a365-tooling/README.md b/packages/agents-a365-tooling/README.md index 928b947a..c73fa569 100644 --- a/packages/agents-a365-tooling/README.md +++ b/packages/agents-a365-tooling/README.md @@ -13,7 +13,7 @@ npm install @microsoft/agents-a365-tooling ## Usage -For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Tooling Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/tooling?tabs=js). +For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Tooling Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/tooling?tabs=nodejs). ## Support From 922c58561883aa50f3f1ac4265dc7f1d1ee34e1a Mon Sep 17 00:00:00 2001 From: Jim Daly Date: Wed, 12 Nov 2025 08:07:12 -0800 Subject: [PATCH 07/16] Update packages/agents-a365-observability/README.md use tabs=nodejs rather than tabs=js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- packages/agents-a365-observability/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/agents-a365-observability/README.md b/packages/agents-a365-observability/README.md index d9c54267..24fa8800 100644 --- a/packages/agents-a365-observability/README.md +++ b/packages/agents-a365-observability/README.md @@ -13,7 +13,7 @@ npm install @microsoft/agents-a365-observability ## Usage -For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Observability Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/observability?tabs=js). +For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Observability Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/observability?tabs=nodejs). ## Support From 910ebca06d7bd60628187dd1f0b9238dac2852f6 Mon Sep 17 00:00:00 2001 From: Jim Daly Date: Wed, 12 Nov 2025 08:10:34 -0800 Subject: [PATCH 08/16] Update packages/agents-a365-tooling-extensions-claude/README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- packages/agents-a365-tooling-extensions-claude/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/agents-a365-tooling-extensions-claude/README.md b/packages/agents-a365-tooling-extensions-claude/README.md index 48694492..533dffc7 100644 --- a/packages/agents-a365-tooling-extensions-claude/README.md +++ b/packages/agents-a365-tooling-extensions-claude/README.md @@ -13,7 +13,7 @@ npm install @microsoft/agents-a365-tooling-extensions-claude ## Usage -For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Developer Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/?tabs=nodejs). +For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Tooling Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/tooling?tabs=nodejs). ## Support From 63441710fa0d65cfdcdf36466feb7e1b4391c802 Mon Sep 17 00:00:00 2001 From: abdulanu0 Date: Wed, 12 Nov 2025 10:38:18 -0800 Subject: [PATCH 09/16] adding telemetry and trademark messages --- packages/agents-a365-notifications/README.md | 8 ++++++++ .../agents-a365-observability-extensions-openai/README.md | 8 ++++++++ packages/agents-a365-observability/README.md | 8 ++++++++ packages/agents-a365-runtime/README.md | 8 ++++++++ packages/agents-a365-tooling-extensions-claude/README.md | 8 ++++++++ .../agents-a365-tooling-extensions-langchain/README.md | 8 ++++++++ packages/agents-a365-tooling-extensions-openai/README.md | 8 ++++++++ packages/agents-a365-tooling/README.md | 8 ++++++++ 8 files changed, 64 insertions(+) diff --git a/packages/agents-a365-notifications/README.md b/packages/agents-a365-notifications/README.md index 1a1be34d..84bd4375 100644 --- a/packages/agents-a365-notifications/README.md +++ b/packages/agents-a365-notifications/README.md @@ -22,6 +22,14 @@ For issues, questions, or feedback: - File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section - See the [main documentation](../../README.md) for more information +## 📋 **Telemetry** + +Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. + +## Trademarks + +*Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* + ## License Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/packages/agents-a365-observability-extensions-openai/README.md b/packages/agents-a365-observability-extensions-openai/README.md index bc1bc0c7..6ce045c9 100644 --- a/packages/agents-a365-observability-extensions-openai/README.md +++ b/packages/agents-a365-observability-extensions-openai/README.md @@ -22,6 +22,14 @@ For issues, questions, or feedback: - File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section - See the [main documentation](../../README.md) for more information +## 📋 **Telemetry** + +Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. + +## Trademarks + +*Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* + ## License Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/packages/agents-a365-observability/README.md b/packages/agents-a365-observability/README.md index 24fa8800..503863b9 100644 --- a/packages/agents-a365-observability/README.md +++ b/packages/agents-a365-observability/README.md @@ -22,6 +22,14 @@ For issues, questions, or feedback: - File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section - See the [main documentation](../../README.md) for more information +## 📋 **Telemetry** + +Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. + +## Trademarks + +*Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* + ## License Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/packages/agents-a365-runtime/README.md b/packages/agents-a365-runtime/README.md index 35296309..c41cbaaf 100644 --- a/packages/agents-a365-runtime/README.md +++ b/packages/agents-a365-runtime/README.md @@ -22,6 +22,14 @@ For issues, questions, or feedback: - File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section - See the [main documentation](../../README.md) for more information +## 📋 **Telemetry** + +Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. + +## Trademarks + +*Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* + ## License Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/packages/agents-a365-tooling-extensions-claude/README.md b/packages/agents-a365-tooling-extensions-claude/README.md index 533dffc7..d36d1127 100644 --- a/packages/agents-a365-tooling-extensions-claude/README.md +++ b/packages/agents-a365-tooling-extensions-claude/README.md @@ -22,6 +22,14 @@ For issues, questions, or feedback: - File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section - See the [main documentation](../../README.md) for more information +## 📋 **Telemetry** + +Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. + +## Trademarks + +*Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* + ## License Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/packages/agents-a365-tooling-extensions-langchain/README.md b/packages/agents-a365-tooling-extensions-langchain/README.md index 81c26b09..fa2d26dd 100644 --- a/packages/agents-a365-tooling-extensions-langchain/README.md +++ b/packages/agents-a365-tooling-extensions-langchain/README.md @@ -22,6 +22,14 @@ For issues, questions, or feedback: - File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section - See the [main documentation](../../README.md) for more information +## 📋 **Telemetry** + +Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. + +## Trademarks + +*Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* + ## License Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/packages/agents-a365-tooling-extensions-openai/README.md b/packages/agents-a365-tooling-extensions-openai/README.md index 94852dc3..8e7335f1 100644 --- a/packages/agents-a365-tooling-extensions-openai/README.md +++ b/packages/agents-a365-tooling-extensions-openai/README.md @@ -22,6 +22,14 @@ For issues, questions, or feedback: - File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section - See the [main documentation](../../README.md) for more information +## 📋 **Telemetry** + +Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. + +## Trademarks + +*Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* + ## License Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/packages/agents-a365-tooling/README.md b/packages/agents-a365-tooling/README.md index c73fa569..1c0a91d1 100644 --- a/packages/agents-a365-tooling/README.md +++ b/packages/agents-a365-tooling/README.md @@ -22,6 +22,14 @@ For issues, questions, or feedback: - File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section - See the [main documentation](../../README.md) for more information +## 📋 **Telemetry** + +Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. + +## Trademarks + +*Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* + ## License Copyright (c) Microsoft Corporation. All rights reserved. From 4b552edd27bbad02dc27504740144457414ce255 Mon Sep 17 00:00:00 2001 From: Mrunal Hirve Date: Wed, 12 Nov 2025 16:19:24 -0800 Subject: [PATCH 10/16] push readme changes --- .github/workflows/README.md | 16 +++++++++++++++- README.md | 14 ++++++++++++-- tests-agent/basic-agent-sdk-sample/README.md | 14 ++++++++++++++ .../README.md | 14 ++++++++++++++ 4 files changed, 55 insertions(+), 3 deletions(-) diff --git a/.github/workflows/README.md b/.github/workflows/README.md index 178fcbb8..40ee7684 100644 --- a/.github/workflows/README.md +++ b/.github/workflows/README.md @@ -54,4 +54,18 @@ All publishing steps are currently commented out as requested. To enable publish The workflow uses dependency caching to speed up builds: - Python: pip cache - JavaScript: npm cache -- .NET: NuGet packages are cached automatically by the dotnet CLI \ No newline at end of file +- .NET: NuGet packages are cached automatically by the dotnet CLI + +## 📋 **Telemetry** + +Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. + +## Trademarks + +*Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* + +## License + +Copyright (c) Microsoft Corporation. All rights reserved. + +Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details. diff --git a/README.md b/README.md index 363c2d51..e4289099 100644 --- a/README.md +++ b/README.md @@ -122,6 +122,16 @@ Enterprise-grade extensions for observability, notifications, runtime utilities, - [Node.js documentation](https://learn.microsoft.com/javascript/api/?view=m365-agents-sdk&preserve-view=true) -## Data Collection Notice +## 📋 **Telemetry** -The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at . You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. +Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. + +## Trademarks + +*Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* + +## License + +Copyright (c) Microsoft Corporation. All rights reserved. + +Licensed under the MIT License - see the [LICENSE](LICENSE.md) file for details. diff --git a/tests-agent/basic-agent-sdk-sample/README.md b/tests-agent/basic-agent-sdk-sample/README.md index acaa2b84..80112a76 100644 --- a/tests-agent/basic-agent-sdk-sample/README.md +++ b/tests-agent/basic-agent-sdk-sample/README.md @@ -96,3 +96,17 @@ In the first terminal, where you are running the agent application, you should s ``` That means your agent is correctly receiving activities and correctly sending traces! + +## 📋 **Telemetry** + +Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. + +## Trademarks + +*Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* + +## License + +Copyright (c) Microsoft Corporation. All rights reserved. + +Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details. diff --git a/tests-agent/openai-agent-auto-instrument-sample/README.md b/tests-agent/openai-agent-auto-instrument-sample/README.md index 7b53ad88..dc5fcb9a 100644 --- a/tests-agent/openai-agent-auto-instrument-sample/README.md +++ b/tests-agent/openai-agent-auto-instrument-sample/README.md @@ -176,3 +176,17 @@ Mail: ``` Error: 400 Invalid schema for function 'mcp_MailTools_graph_mail_createMessage': In context=('properties', 'toRecipients', 'items'), 'additionalProperties' is required to be supplied and to be false. ``` + +## 📋 **Telemetry** + +Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. + +## Trademarks + +*Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* + +## License + +Copyright (c) Microsoft Corporation. All rights reserved. + +Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details. From bc9b9049355c11bc47b105143a0138168029a763 Mon Sep 17 00:00:00 2001 From: Mrunal Hirve Date: Wed, 12 Nov 2025 16:31:40 -0800 Subject: [PATCH 11/16] fix space --- .github/workflows/README.md | 2 +- README.md | 2 +- packages/agents-a365-notifications/README.md | 8 ++++---- .../agents-a365-observability-extensions-openai/README.md | 8 ++++---- packages/agents-a365-observability/README.md | 8 ++++---- packages/agents-a365-runtime/README.md | 8 ++++---- packages/agents-a365-tooling-extensions-claude/README.md | 8 ++++---- .../agents-a365-tooling-extensions-langchain/README.md | 8 ++++---- packages/agents-a365-tooling-extensions-openai/README.md | 8 ++++---- packages/agents-a365-tooling/README.md | 8 ++++---- tests-agent/basic-agent-sdk-sample/README.md | 2 +- tests-agent/openai-agent-auto-instrument-sample/README.md | 2 +- 12 files changed, 36 insertions(+), 36 deletions(-) diff --git a/.github/workflows/README.md b/.github/workflows/README.md index 40ee7684..ad678d16 100644 --- a/.github/workflows/README.md +++ b/.github/workflows/README.md @@ -56,7 +56,7 @@ The workflow uses dependency caching to speed up builds: - JavaScript: npm cache - .NET: NuGet packages are cached automatically by the dotnet CLI -## 📋 **Telemetry** +## 📋 Telemetry Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. diff --git a/README.md b/README.md index e4289099..3efa721d 100644 --- a/README.md +++ b/README.md @@ -122,7 +122,7 @@ Enterprise-grade extensions for observability, notifications, runtime utilities, - [Node.js documentation](https://learn.microsoft.com/javascript/api/?view=m365-agents-sdk&preserve-view=true) -## 📋 **Telemetry** +## 📋 Telemetry Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. diff --git a/packages/agents-a365-notifications/README.md b/packages/agents-a365-notifications/README.md index 84bd4375..00609f92 100644 --- a/packages/agents-a365-notifications/README.md +++ b/packages/agents-a365-notifications/README.md @@ -22,12 +22,12 @@ For issues, questions, or feedback: - File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section - See the [main documentation](../../README.md) for more information -## 📋 **Telemetry** - +## 📋 Telemetry + Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. - + ## Trademarks - + *Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* ## License diff --git a/packages/agents-a365-observability-extensions-openai/README.md b/packages/agents-a365-observability-extensions-openai/README.md index 6ce045c9..30b5c14c 100644 --- a/packages/agents-a365-observability-extensions-openai/README.md +++ b/packages/agents-a365-observability-extensions-openai/README.md @@ -22,12 +22,12 @@ For issues, questions, or feedback: - File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section - See the [main documentation](../../README.md) for more information -## 📋 **Telemetry** - +## 📋 Telemetry + Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. - + ## Trademarks - + *Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* ## License diff --git a/packages/agents-a365-observability/README.md b/packages/agents-a365-observability/README.md index 503863b9..4781baed 100644 --- a/packages/agents-a365-observability/README.md +++ b/packages/agents-a365-observability/README.md @@ -22,12 +22,12 @@ For issues, questions, or feedback: - File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section - See the [main documentation](../../README.md) for more information -## 📋 **Telemetry** - +## 📋 Telemetry + Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. - + ## Trademarks - + *Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* ## License diff --git a/packages/agents-a365-runtime/README.md b/packages/agents-a365-runtime/README.md index c41cbaaf..bf7cd0ab 100644 --- a/packages/agents-a365-runtime/README.md +++ b/packages/agents-a365-runtime/README.md @@ -22,12 +22,12 @@ For issues, questions, or feedback: - File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section - See the [main documentation](../../README.md) for more information -## 📋 **Telemetry** - +## 📋 Telemetry + Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. - + ## Trademarks - + *Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* ## License diff --git a/packages/agents-a365-tooling-extensions-claude/README.md b/packages/agents-a365-tooling-extensions-claude/README.md index d36d1127..c808bea2 100644 --- a/packages/agents-a365-tooling-extensions-claude/README.md +++ b/packages/agents-a365-tooling-extensions-claude/README.md @@ -22,12 +22,12 @@ For issues, questions, or feedback: - File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section - See the [main documentation](../../README.md) for more information -## 📋 **Telemetry** - +## 📋 Telemetry + Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. - + ## Trademarks - + *Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* ## License diff --git a/packages/agents-a365-tooling-extensions-langchain/README.md b/packages/agents-a365-tooling-extensions-langchain/README.md index fa2d26dd..61698b9b 100644 --- a/packages/agents-a365-tooling-extensions-langchain/README.md +++ b/packages/agents-a365-tooling-extensions-langchain/README.md @@ -22,12 +22,12 @@ For issues, questions, or feedback: - File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section - See the [main documentation](../../README.md) for more information -## 📋 **Telemetry** - +## 📋 Telemetry + Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. - + ## Trademarks - + *Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* ## License diff --git a/packages/agents-a365-tooling-extensions-openai/README.md b/packages/agents-a365-tooling-extensions-openai/README.md index 8e7335f1..384f435e 100644 --- a/packages/agents-a365-tooling-extensions-openai/README.md +++ b/packages/agents-a365-tooling-extensions-openai/README.md @@ -22,12 +22,12 @@ For issues, questions, or feedback: - File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section - See the [main documentation](../../README.md) for more information -## 📋 **Telemetry** - +## 📋 Telemetry + Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. - + ## Trademarks - + *Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* ## License diff --git a/packages/agents-a365-tooling/README.md b/packages/agents-a365-tooling/README.md index 1c0a91d1..1cda340c 100644 --- a/packages/agents-a365-tooling/README.md +++ b/packages/agents-a365-tooling/README.md @@ -22,12 +22,12 @@ For issues, questions, or feedback: - File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section - See the [main documentation](../../README.md) for more information -## 📋 **Telemetry** - +## 📋 Telemetry + Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. - + ## Trademarks - + *Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.* ## License diff --git a/tests-agent/basic-agent-sdk-sample/README.md b/tests-agent/basic-agent-sdk-sample/README.md index 80112a76..8c5662d4 100644 --- a/tests-agent/basic-agent-sdk-sample/README.md +++ b/tests-agent/basic-agent-sdk-sample/README.md @@ -97,7 +97,7 @@ In the first terminal, where you are running the agent application, you should s That means your agent is correctly receiving activities and correctly sending traces! -## 📋 **Telemetry** +## 📋 Telemetry Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. diff --git a/tests-agent/openai-agent-auto-instrument-sample/README.md b/tests-agent/openai-agent-auto-instrument-sample/README.md index dc5fcb9a..2a55926d 100644 --- a/tests-agent/openai-agent-auto-instrument-sample/README.md +++ b/tests-agent/openai-agent-auto-instrument-sample/README.md @@ -177,7 +177,7 @@ Mail: Error: 400 Invalid schema for function 'mcp_MailTools_graph_mail_createMessage': In context=('properties', 'toRecipients', 'items'), 'additionalProperties' is required to be supplied and to be false. ``` -## 📋 **Telemetry** +## 📋 Telemetry Data Collection. The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. From dfa5085480cef0989d04f907d7a242be09ee6a77 Mon Sep 17 00:00:00 2001 From: Mrunal Hirve Date: Wed, 12 Nov 2025 17:26:30 -0800 Subject: [PATCH 12/16] fix link --- packages/agents-a365-tooling-extensions-langchain/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/agents-a365-tooling-extensions-langchain/README.md b/packages/agents-a365-tooling-extensions-langchain/README.md index 61698b9b..058f950e 100644 --- a/packages/agents-a365-tooling-extensions-langchain/README.md +++ b/packages/agents-a365-tooling-extensions-langchain/README.md @@ -13,7 +13,7 @@ npm install @microsoft/agents-a365-tooling-extensions-langchain ## Usage -For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Developer Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/?tabs=nodejs). +For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Tooling Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/tooling?tabs=nodejs). ## Support From bc9804acc573c0205afffa6b554e944f23259fed Mon Sep 17 00:00:00 2001 From: Mrunal Hirve Date: Wed, 12 Nov 2025 17:33:59 -0800 Subject: [PATCH 13/16] fix --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index 3efa721d..37be7591 100644 --- a/README.md +++ b/README.md @@ -94,10 +94,6 @@ When you submit a pull request, a CLA bot will automatically determine whether y This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. -## Trademarks - -This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/legal/intellectualproperty/trademarks/usage/general). Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies. - ## Useful Links ### Microsoft 365 Agents SDK From 7e8e99635c528a7dc389143e6560476adeca9515 Mon Sep 17 00:00:00 2001 From: Mrunal Hirve Date: Wed, 12 Nov 2025 20:11:26 -0800 Subject: [PATCH 14/16] Pr comments --- README.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 37be7591..f57f9b22 100644 --- a/README.md +++ b/README.md @@ -100,18 +100,19 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope The core SDK for building conversational AI agents for Microsoft 365 platforms. -- [Microsoft 365 Agents SDK](https://aka.ms/agents) -- [Agents-for-js repository](https://github.com/Microsoft/Agents-for-js) -- [Official Agents Documentation](https://learn.microsoft.com/microsoft-365/agents-sdk/) +- [Microsoft 365 Agents SDK - C# /.NET repository](https://github.com/Microsoft/Agents-for-net) +- [Microsoft 365 Agents SDK - NodeJS /TypeScript repository](https://github.com/Microsoft/Agents-for-js) +- [Microsoft 365 Agents SDK - Python repository](https://github.com/Microsoft/Agents-for-python) +- [Microsoft 365 Agents documentation](https://learn.microsoft.com/microsoft-365/agents-sdk/) ### Microsoft Agent 365 SDK Enterprise-grade extensions for observability, notifications, runtime utilities, and developer tools. -- [Agent365-dotnet repository](https://github.com/microsoft/Agent365-dotnet) -- [Agent365-python repository](https://github.com/microsoft/Agent365-python) -- [Agent365-nodejs repository](https://github.com/microsoft/Agent365-nodejs) - You are here -- [Agent365-Samples repository](https://github.com/microsoft/Agent365-Samples) +- [Microsoft Agent 365 SDK - C# /.NET repository](https://github.com/microsoft/Agent365-dotnet) +- [Microsoft Agent 365 SDK - Python repository](https://github.com/microsoft/Agent365-python) +- [Microsoft Agent 365 SDK - NodeJS/TypeScript repository](https://github.com/microsoft/Agent365-nodejs) - You are here +- [Microsoft Agent 365 SDK Samples repository](https://github.com/microsoft/Agent365-Samples) - [Microsoft Agent 365 developer documentation](https://learn.microsoft.com/microsoft-agent-365/developer/) ### Additional Resources From a1b348ebaa13778757202d50dc62b94ed3b9b12b Mon Sep 17 00:00:00 2001 From: Mrunal Hirve Date: Wed, 12 Nov 2025 20:17:30 -0800 Subject: [PATCH 15/16] fix --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f57f9b22..d40927b1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Microsoft Agent 365 SDK - Node.js +# Microsoft Agent 365 SDK - Node.js/TypeScript [![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-observability?label=npm&logo=npm)](https://www.npmjs.com/search?q=%40microsoft%2Fagents-a365) [![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-observability?label=Downloads&logo=npm)](https://www.npmjs.com/search?q=%40microsoft%2Fagents-a365) @@ -75,7 +75,7 @@ For more detailed build instructions, see the [HOW_TO_BUILD.md](HOW_TO_BUILD.md) - **packages/agents-a365-tooling-extensions-claude**: Claude/Anthropic tooling extensions - **packages/agents-a365-tooling-extensions-langchain**: LangChain tooling extensions - **packages/agents-a365-tooling-extensions-openai**: OpenAI tooling extensions -- **samples/**: For sample applications, see the [Agent365-Samples repository](https://github.com/microsoft/Agent365-Samples/tree/main/nodejs) +For sample applications, see the [Microsoft Agent 365 SDK Samples repository](https://github.com/microsoft/Agent365-Samples) - **tests/**: Unit and integration tests ## Support @@ -111,7 +111,7 @@ Enterprise-grade extensions for observability, notifications, runtime utilities, - [Microsoft Agent 365 SDK - C# /.NET repository](https://github.com/microsoft/Agent365-dotnet) - [Microsoft Agent 365 SDK - Python repository](https://github.com/microsoft/Agent365-python) -- [Microsoft Agent 365 SDK - NodeJS/TypeScript repository](https://github.com/microsoft/Agent365-nodejs) - You are here +- [Microsoft Agent 365 SDK - Node.js/TypeScript repository](https://github.com/microsoft/Agent365-nodejs) - You are here - [Microsoft Agent 365 SDK Samples repository](https://github.com/microsoft/Agent365-Samples) - [Microsoft Agent 365 developer documentation](https://learn.microsoft.com/microsoft-agent-365/developer/) From 17fe32d9920a7c8bdf092ff771354c5178faf8fd Mon Sep 17 00:00:00 2001 From: Mrunal Hirve Date: Wed, 12 Nov 2025 20:19:23 -0800 Subject: [PATCH 16/16] fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d40927b1..25c5f04c 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ For more detailed build instructions, see the [HOW_TO_BUILD.md](HOW_TO_BUILD.md) - **packages/agents-a365-tooling-extensions-claude**: Claude/Anthropic tooling extensions - **packages/agents-a365-tooling-extensions-langchain**: LangChain tooling extensions - **packages/agents-a365-tooling-extensions-openai**: OpenAI tooling extensions -For sample applications, see the [Microsoft Agent 365 SDK Samples repository](https://github.com/microsoft/Agent365-Samples) +- For sample applications, see the [Microsoft Agent 365 SDK Samples repository](https://github.com/microsoft/Agent365-Samples) - **tests/**: Unit and integration tests ## Support