Share via


Microsoft 365 Agents SDK JavaScript reference

Version 0.4.1

The Microsoft 365 Agent SDK simplifies building full stack, multichannel, trusted agents for platforms including Microsoft 365, Teams, Copilot Studio, and Web chat. We also offer integrations with third parties such as Facebook Messenger, Slack, or Twilio. The SDK provides developers with the building blocks to create agents that handle user interactions, orchestrate requests, reason about responses, and collaborate with other agents.

The Agents SDK is a comprehensive framework for building enterprise-grade agents, enabling developers to integrate components from the Azure AI Foundry SDK, Semantic Kernel, and AI components from other vendors.

For more information, see the Microsoft 365 Agents SDK documentation (preview).

Getting started

Sample code is a great way to get started. Look at these samples located at https://github.com/microsoft/Agents/samples

Name Description Location
Empty Agent Simplest agent basic/empty-agent/nodejs
Weather Agent WeatherAgent with various orchestrator libraries. Uses LangChain.js basic/weather-agent/nodejs
Copilot Studio Client Consume Copilot Studio Agent basic/copilotstudio-client/nodejs
Copilot Studio Skill Call the echo bot from a Copilot Studio skill complex/copilotstudio-skill/nodejs

Packages Overview

We offer the following NPM packages to create conversational experiences based on agents:

Package Description
@microsoft/agents-activity Types and validators implementing the Activity protocol spec.
@microsoft/agents-copilotstudio-client Direct to Engine client to interact with Agents created in Copilot Studio.
@microsoft/agents-hosting Provides classes to host an Agent in express.
@microsoft/agents-hosting-teams Provides classes to make use of Teams specific features.
@microsoft/agents-hosting-dialogs Provides classes to host an Agent in express.
@microsoft/agents-hosting-storage-blob Extension to use Azure Blob as storage.
@microsoft/agents-hosting-storage-cosmos Extension to use Cosmos DB as storage.

Environment requirements

The packages should target node18 or greater, and can be used from JavaScript using CommonJS or ES6 modules, or from TypeScript.

Note

We're using node 22 to be able to initialize the process from a .env file without adding the dependency to dotenv by using the --env-file flag. Previous node versions should set the env vars explicitly before running.

Debugging

The packages include the source code in the src, along with the source maps in the dist/src folder to allow Visual Studio Code to debug the TypeScript files.

Code Style

We're using eslint configured with neostandard.