在本快速入门中,逐步介绍如何使用 Agent 365 工具、通知、可观测性和使用 Agents Playground 和 Teams 测试代理来设置工作 JavaScript Claude 代理。
先决条件
- 如果计划使用 Visual Studio Code,则必须安装 .NET。 (建议使用 .NET 8.0。
- Node.js 版本 20 或更高版本
- Claude 代理 SDK 包和人类 API 密钥
- 代理操场
- 使用 Node 包管理器 (npm) 安装该包
- 访问 GitHub
- 现有的 AI 代理项目。 本快速入门使用 Microsoft 365 Agents Toolkit 库中的 Claude 示例代理(VS Code 中的 ATK)。
- A365 CLI
- 代理标识身份验证
从 Microsoft 365 代理工具包设置 Claude + Node.js 示例
若要准备好一切,请在 VS Code 中安装 Microsoft 365 Agents Toolkit,打开示例库,并在本地搭建 Claude + Node.js 示例基架,以便稍后对其进行配置和运行。 下面的屏幕截图显示了在流中移动时预期的情况。
在 Visual Studio Code 中,打开“扩展”面板(Ctrl+Shift+X),搜索Microsoft 365 代理工具包,然后选择“安装”。
从 VS Code 活动栏中打开 M365 代理工具包视图,然后选择“查看示例”。
选择 Claude + Node.js示例,选择“创建”,然后选择项目应搭建基架的文件夹(例如,
C:\A365-Ignite-Demo创建)。 该工具包创建一个子文件夹(例如sample_agent),并在 VS Code 中打开它。
基架完成后,你有一个可运行的项目。 后续步骤将发生在新的示例文件夹中。
安装和配置开发环境
生成的 package.json 已列出示例所需的包,因此在一次传递中安装所有内容:
npm install
安装后,通过启动开发服务器来验证项目生成并运行
npm run dev
开发服务器侦听示例localhost:3978 (默认)中配置的端口,并准备好接受来自 Agents Playground 或 CLI 的请求。
添加Microsoft 365 工具(MCP 服务器)
可以使用 CLI 中的 a365 开发命令浏览和管理 MCP 服务器。 包 @microsoft/agents-a365-tooling-extensions-claude 将这些 MCP 服务器连接到 Claude 业务流程协调程序,以便代理 SDK 可以内联调用 Microsoft 365 工具,以及 Claude 代理计划中定义的技能。
使用 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
}
可观测性
此代码片段显示了在示例中实现可观测性所需的最小更改。 更新 src/client.ts 以初始化代理 365 可观测性 SDK,并将每个代理调用包装在一起 InferenceScope ,以便可以自动捕获输入、输出和元数据。
import {
InferenceOperationType,
InferenceScope,
ObservabilityManager
} from '@microsoft/agents-a365-observability';
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 + Claude 示例所需的完整可观测性设置。 将占位符元数据替换为为代理配置的值。 详细了解可观测性
测试您的智能体
设置所需的环境变量,选择身份验证模式,并在本地启动代理。 可以使用 Agents Playground 测试所有端到端作,而无需Microsoft 365 租户,除非你想要发布代理并在 Teams 或 Outlook 等应用中使用它。
测试步骤概述
- 将你的
ANTHROPIC_API_KEY设置和模型设置添加到.env文件中,以便示例可以与 Claude 通信。 - 选择身份验证方法 对于本地开发,此示例使用从代理蓝图创建的值支持代理身份验证。
- 在本地启动代理,它将公开给代理场等工具。
- 使用 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