如何使用 TypeScript 构建 M365 企业级 AI Agent

解决企业级 AI 部署难题:通过 M365 Agents SDK,开发者可以快速构建支持流式响应、多渠道分发且能与 Copilot Studio 深度集成的 TypeScript AI 代理。

为什么需要这个技能

在企业环境中,AI 助手不能仅仅是一个简单的聊天窗口,它需要能够无缝接入 Microsoft Teams、M365 生态,并具备处理复杂企业级交互(如 Invoke 消息、流式输出、身份验证)的能力。

传统的 API 调用往往缺乏标准化的路由和状态管理。该 SDK 提供了 AgentApplication 路由机制和 Express 托管支持,让开发者能够像编写 Web 后端一样管理 Agent 的对话逻辑,并能通过 Copilot Studio 快速将能力推送到企业终端。

适用场景

  • 为公司内部 Teams 频道构建自动化的业务处理 Agent。
  • 在 Copilot Studio 中集成自定义的 TypeScript 后端逻辑以实现复杂计算。
  • 需要向用户实时流式传输(Streaming)由 Azure OpenAI 生成的长文本响应。
  • 处理 M365 生态中的 invoke 类型活动(如提交反馈、触发特定工作流)。

核心工作流

1. 环境准备与安装

首先安装核心托管库和 Copilot Studio 客户端:

npm install @microsoft/agents-hosting @microsoft/agents-hosting-express @microsoft/agents-activity
npm install @microsoft/agents-copilotstudio-client

2. 构建基础 Agent 路由

使用 AgentApplication 定义对话触发器,并通过 startServer 启动 Express 服务:

import { AgentApplication, TurnContext, TurnState } from "@microsoft/agents-hosting";
import { startServer } from "@microsoft/agents-hosting-express";

const agent = new AgentApplication<TurnState>();

agent.onMessage("hello", async (context: TurnContext) => {
  await context.sendActivity(`Echo: ${context.activity.text}`);
});

startServer(agent);

3. 实现 Azure OpenAI 流式响应

为了提升用户体验,利用 streamingResponse 将 AI 生成的内容实时推送给用户:

import { azure } from "@ai-sdk/azure";
import { AgentApplication, TurnContext, TurnState } from "@microsoft/agents-hosting";
import { streamText } from "ai";

const agent = new AgentApplication<TurnState>();

agent.onMessage("poem", async (context: TurnContext) => {
  context.streamingResponse.setFeedbackLoop(true);
  
  const { fullStream } = streamText({
    model: azure(process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "gpt-4o-mini"),
    prompt: "Write a poem about Apollo.",
  });

  try {
    for await (const part of fullStream) {
      if (part.type === "text-delta" && part.text.length > 0) {
        await context.streamingResponse.queueTextChunk(part.text);
      }
    }
  } finally {
    await context.streamingResponse.endStream();
  }
});

4. 集成 Copilot Studio 客户端

通过 CopilotStudioClient 实现直接与 Engine 交互或通过 WebChat 嵌入页面:

import { CopilotStudioClient } from "@microsoft/agents-copilotstudio-client";

const client = new CopilotStudioClient({
  environmentId: process.env.COPILOT_ENVIRONMENT_ID!,
  schemaName: process.env.COPILOT_SCHEMA_NAME!,
  clientId: process.env.COPILOT_CLIENT_ID!,
}, async () => process.env.COPILOT_BEARER_TOKEN!);

const conversation = await client.startConversationAsync();
const reply = await client.askQuestionAsync("Hello!", conversation.id);

下载和安装

下载 m365-agents-ts 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐