SuperAPI AI 工具集

m365-agents-ts

智能体与模型

查看项目

更新于 10-16 02:43

技能介绍

用途

m365-agents-ts 是一份面向 TypeScript/Node.js 的技能资料,主题为 Microsoft 365 Agents SDK。其目标是帮助开发者构建面向 Microsoft 365、Teams 和 Copilot Studio 的企业级智能体,涵盖 Express 托管、AgentApplication 路由、流式响应,以及 Copilot Studio 客户端集成。

主要能力

资料展示的能力包括:

  • 使用 Express 托管智能体(startServer)。
  • 使用 AgentApplication 进行消息与会话事件路由,例如 onConversationUpdate、onMessage、onActivity。
  • 结合 Azure OpenAI(通过 @ai-sdk/azure 与 ai 的 streamText)实现流式响应,包括反馈循环、AI 生成标签、敏感度标签和分段文本推送。
  • 处理 invoke 活动并返回 InvokeResponse。
  • 通过 CopilotStudioClient 以 Direct to Engine 方式连接 Copilot Studio,进行对话启动与提问。
  • 通过 CopilotStudioWebChat 创建连接并渲染 WebChat。

使用方式

安装命令:

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

环境变量包括:PORT、AZURE_RESOURCE_NAME、AZURE_API_KEY、AZURE_OPENAI_DEPLOYMENT_NAME、TENANT_ID、CLIENT_ID、CLIENT_SECRET,以及 Copilot Studio 相关的 COPILOT_ENVIRONMENT_ID、COPILOT_SCHEMA_NAME、COPILOT_CLIENT_ID、COPILOT_BEARER_TOKEN。

资料提示,在实现前应使用 microsoft-docs MCP 核对 AgentApplication、startServer 和 CopilotStudioClient 的最新 API 签名,并在 npm 上确认包版本。

核心工作流为 Express 托管的 AgentApplication:通过 agent.onConversationUpdate 处理成员加入并发送欢迎语,通过 agent.onMessage 处理消息并回显,最后调用 startServer(agent)。

流式响应部分使用 streamText 与 azure 模型,设置 feedback loop、AI 生成标签与敏感度标签,并通过 queueInformativeUpdate 与 queueTextChunk 推送文本,在 finally 中调用 endStream。

invoke 处理使用 Activity.fromObject 构造 InvokeResponse 并经 sendActivity 发送。

Copilot Studio 客户端部分使用 CopilotStudioClient,传入 settings(environmentId、schemaName、clientId)与 tokenProvider,调用 startConversationAsync 与 askQuestionAsync。WebChat 集成使用 CopilotStudioWebChat.createConnection,并通过 window.WebChat.renderWebChat 渲染。

适用场景

适用于需要构建面向 Microsoft 365、Teams、Copilot Studio 的企业级 TypeScript/Node.js 智能体的场景,包括 Express 托管、消息路由、流式回复、invoke 活动处理,以及与 Copilot Studio 的集成。

限制

资料明确说明:本目录内容不包含支撑路径 references/acceptance-criteria.md,该文件属于外部前置条件而非随附文件。依赖该路径的步骤应视为不可用,需向原始出处索取或确认已安装;在所需文件存在前,不应运行相关命令或声称已执行引用流程,也不应伪造缺失脚本或把同名无关文件当作等价物。资料还提示:仅在任务与上述范围明确匹配时使用该技能;输出不应替代针对具体环境的验证、测试或专家审查;若缺少必需输入、权限、安全边界或成功标准,应停止并请求澄清。此外,资料未提供该技能自身的收费、价格与平台支持信息。