快速入门:设置并运行 JavaScript LangChain 示例代理

在本快速入门中,逐步介绍如何使用 Agent 365 工具、通知、可观测性和使用 Agents Playground 和 Teams 测试代理来设置工作 JavaScript LangChain 代理。

先决条件

从 Microsoft 365 代理工具包设置 LangChain + Node.js 示例

若要准备好一切,请在 VS Code 中安装 Microsoft 365 Agents Toolkit,打开示例库,并在本地搭建 LangChain + Node.js 示例,以便稍后对其进行配置和运行。 以下屏幕截图显示了预期在去时看到的内容。

  1. 打开 Visual Studio Code,然后打开“扩展”面板 Ctrl+Shift+X。

  2. 在搜索栏中,键入“Agents Toolkit”。
    应会看到以下屏幕截图中显示的结果:

    扩展市场搜索代理工具包的屏幕截图。

  3. Microsoft 365 智能体工具包

  4. 选择安装

    VS Code 显示类似于以下内容的扩展详细信息视图:

    “扩展详细信息”页的屏幕截图,其中包含“安装和启用”按钮。

  5. 安装后, M365 Agents Toolkit 图标将显示在左侧导航栏中。

  6. 选择 试验将其打开。

    现在应会看到“生成声明性代理”、“创建新代理/应用”和“查看示例”等选项,如下所示:

    工具包欢迎视图的屏幕截图,其中包含生成声明性代理、创建新代理或应用以及查看示例选项。

  7. 选择“ 查看示例”。

  8. 在示例列表中,滚动以查找 LangChain + Node.js 代理示例。

  9. 将其选中。

    你将看到两个选项: 创建 (在本地创建基架)或 GitHub 上的视图。

  10. 选择创建

  11. 出现提示时,在应生成示例的计算机上选择一个文件夹。 例如:C:\A365-Ignite-Demo

    该工具包将 LangChain + Node.js示例基架到子文件夹(如 sample_agent),然后在 VS Code 中自动打开它。

    基架完成后,你现在在计算机上拥有功能完备的 LangChain + Node.js代理项目

安装必需包

在运行示例之前,请打开项目中, package.json 并确认列出了所有必需的代理 365 和代理框架依赖项。 Microsoft 365 Agents Toolkit 生成的示例已包含这些条目。

查看完后 package.json,通过运行安装所有内容:

npm install

这会拉取所有代理 365 库、代理框架依赖项、托管组件以及示例中定义的任何其他依赖项。 安装后,通过启动开发服务器来验证项目生成并运行

npm run dev

添加Microsoft 365 工具(MCP 服务器)

可以使用 CLI 中的 a365 开发命令浏览和管理 MCP 服务器

使用 MCP 服务器时,可以:

  • 发现哪些 MCP 服务器可供使用
  • 将一个或多个 MCP 服务器添加到代理的配置
  • 查看当前配置的 MCP 服务器
  • 删除不再需要的 MCP 服务器

添加 MCP 服务器后,代理的工具清单将展开以包含类似于以下内容的条目:

{
   "mcpServers": [
      {
         "mcpServerName": "mcp_MailTools",
         "mcpServerUniqueName": "mcp_MailTools",
         "scope": "McpServers.Mail.All",
         "audience": "api://00001111-aaaa-2222-bbbb-3333cccc4444"
      }
   ]
}

了解如何添加和管理工具

通知订阅和处理

示例代理订阅所有 onAgentNotification("*") 代理 365 通知,并将其路由到单个处理程序。 此处理程序允许代理对后台事件或系统事件做出反应,而不仅仅是直接用户消息。

了解如何通知代理

以下代码演示如何在 agent.ts 文件中配置通知。

constructor() {
   super();

   this.onAgentNotification("agents:*", async(context, state, activity) => {

      await this.handleAgentNotificationActivity(context, state, activity);

   });
}

async handleAgentNotificationActivity(context, state, activity)
{
   await context.sendActivity("Received an AgentNotification!");

   // Add custom handling here
}

可观测性

此代码片段显示了在示例中实现可观测性所需的最小更改。 它初始化代理 365 可观测性 SDK,并将每个代理调用包装在一个 InferenceScope 中,以便可以自动捕获输入、输出和元数据。

以下代码显示了文件中简化的可观测性示例 client.ts

const sdk = ObservabilityManager.configure(b =>
   b.withService('<service-name>', '<version>')
);

sdk.start();

async invokeAgentWithScope(prompt: string) {

   const scope = InferenceScope.start(
      { 
         operationName: InferenceOperationType.CHAT, 
         model: '<llm-name>' 
      },
      { 
         agentId: '<agent-id>', 
         agentName: '<agent-name>', 
         conversationId: '<conv-id>' 
      },
      { tenantId: '<tenant-id>' }
   );

   const response = await this.invokeAgent(prompt);
   scope?.recordInputMessages([prompt]);
   scope?.recordOutputMessages([response]);
   scope?.recordResponseId(`resp-${Date.now()}`);
   return response;

}

此代码片段显示了用于在 Node.js + LangChain 示例中启用可观测性的核心模式。 有关完整的可观测性设置,请参阅 了解有关可观测性的详细信息

测试您的智能体

设置所需的环境变量,选择身份验证模式,并在本地启动代理。 可以使用 Agents Playground 测试所有端到端作,而无需Microsoft 365 租户,除非你想要发布代理并在 Teams 或 Outlook 等应用中使用它。 有关使用代理场配置测试代理的详细信息请参阅相关详细步骤。

测试步骤概述

  • 将 API 密钥和模型设置添加到 .env 文件中,以便示例可以与 LLM 通信。
  • 选择身份验证方法 对于本地开发,此示例使用从代理蓝图创建的值支持 Agentic 身份验证。
  • 在本地启动代理,它将公开给代理场等工具。
  • 使用 Agents Playground 测试消息、工具和通知,而无需设置租户或部署任何内容。
  • 准备好进行实际行为时,请发布Microsoft 365 租户并在 Teams、Outlook 或其他Microsoft 365 图面中测试代理。

发布您的智能体

当代理准备好进行 Teams 聊天、Outlook 消息、Word @mentions等 365 次实际Microsoft体验时,可将其发布到 Microsoft 365 租户。 代理 365 CLI publish 命令处理打包:它会更新清单、捆绑所有内容并将代理上传到 Microsoft 管理中心。

在发布期间,在完成上传之前,查看并自定义代理的名称、说明、图标和版本。 发布后,代理将变为可发现并在租户中安装。

可在此处查看已发布的代理: https://admin.cloud.microsoft/#/agents/all

详细了解完整的工作流和分步说明