重要
需要成为 Frontier 预览计划的一部分,才能获得 抢先体验Microsoft Agent 365。 边界将你直接与Microsoft最新的 AI 创新联系起来。 Frontier 预览版受客户协议中现有预览条款的约束。 由于这些功能仍在开发中,其可用性和功能可能会随时间而变化。
在本快速入门中,逐步介绍如何设置一个能正常运行的 JavaScript LangChain 代理,利用 Agent 365 工具进行配置,并通过通知、可观测性进行监控,最后使用 Agents Playground 和 Teams 对代理进行测试。
先决条件
- 如果计划使用Visual Studio Code,则必须安装.NET。 (建议.NET 8.0。
- Node.js 版本 18 或更高版本
- LangChain
- 智能体操场
- 在安装 NodeJS 时提供对 Npm (Node Package Manager)的访问权限。
- 访问 GitHub
- 现有的 AI 代理项目。 本快速入门使用了 Microsoft 365 代理工具包 中的 Agent 365 示例代理,该工具包在 VS Code 中简称为 ATK。
- A365 CLI
- 代理标识身份验证
使用 Microsoft 365 Agents Toolkit 搭建 LangChain + Node.js 示例
若要准备好一切,请在 VS Code 中安装 Microsoft 365 Agents Toolkit,打开示例库,在本地搭建 LangChain + Node.js 示例基架,以便稍后对其进行配置和运行。 以下屏幕截图显示在继续时应看到的内容。
打开 Visual Studio Code, 然后打开 Extensions 面板Ctrl+Shift+X。
在搜索栏中,键入“Agents Toolkit”。
应会看到以下屏幕截图中显示的结果:
选择 Microsoft 365 Agents Toolkit。
选择“安装”。
VS Code 显示类似于以下内容的扩展详细信息视图:
安装后, M365 Agents Toolkit 图标将显示在左侧导航栏中。
选择它以打开欢迎体验。
现在应会看到“生成声明性代理”、“创建新代理/应用”和“查看示例”等选项,如下所示:
选择“ 查看示例”。
在示例列表中,滚动以查找 LangChain + Node.js 代理示例。
将其选中。
你将看到两个选项:Create(基架本地)或 View on GitHub。
选择“创建”。
出现提示时,在应生成示例的计算机上选择一个文件夹。 例如:
C:\A365-Ignite-Demo该工具包将 LangChain + Node.js示例基架到子文件夹(如 sample_agent),然后在 VS Code 中自动打开它。
基架完成后,你现在在计算机上拥有功能完备的 LangChain + Node.js代理项目
安装必需的 Agent 365 软件包
在运行示例之前,请打开项目中的package.json,并确认已列出所有必需的Agent 365和Agent框架依赖项。 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("*") 订阅所有 Agent 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 示例中启用可观测性的核心模式。 有关完整的可观测性设置,请参阅 了解有关可观测性的详细信息
测试您的智能体
设置所需的环境变量,选择身份验证模式,并在本地启动代理。 可以在不需要 Microsoft 365 租户的情况下,使用 Agents Playground 进行所有的端到端测试,除非你想发布代理并在 Teams 或 Outlook 等应用中使用它。 有关 的详细步骤,请参阅有关测试的信息,了解如何使用智能体操场配置智能体测试。
测试步骤概述
- 将 API 密钥和模型设置添加到
.env文件中,以便示例可以与 LLM 通信。 - 选择身份验证方法 对于本地开发,此示例通过使用从智能体蓝图中创建的值来支持智能体身份验证。
- 在本地启动智能体,以将其显示给智能体操作等工具。
- 使用 Agents Playground 测试消息、工具和通知,而无需设置租户或部署任何内容。
- 当您准备好进行实际测试时,请发布一个 Microsoft 365 租户,并在 Teams、Outlook 或其他 Microsoft 365 界面中测试该智能体。
发布您的智能体
当您的代理准备好进行实际的 Microsoft 365 体验,如 Teams 聊天、Outlook 邮件、和 Word @mentions 时,可以将其发布到 Microsoft 365 租户。
Agent 365 CLI publish 命令负责打包:它更新你的清单,打包所有内容,并将代理上传到 Microsoft 管理中心。
在发布期间,在完成上传之前,查看并自定义代理的名称、说明、图标和版本。 发布后,您的代理会在租户中可被发现并安装。
重要
发布代理后,你必须在开发者门户中配置代理蓝图,然后再创建实例。 了解如何在开发者门户中配置代理蓝图
您可以在此处查看已发布的智能体:https://admin.cloud.microsoft/#/agents/all