通过使用 Dev Tunnels,您可以在智能体本地运行于开发机器的同时,使用 Microsoft 365 应用程序(如 Teams、Outlook 或 Word)测试您的 Agent 365 智能体。 此方法架起了本地开发与实际环境测试之间的桥梁,因此您可以在部署到云端之前,在真实的 Microsoft 365 环境中验证智能体的行为。
必备条件
在使用 Dev Tunnels 之前,请确保已安装 Dev Tunnels 命令行工具。
- Windows:
winget install Microsoft.devtunnel - macOS/Linux:从 aka.ms/devtunnels/download 下载
建立开发隧道
配置开发隧道,将本地智能体端点暴露给 Microsoft 365 服务。
创建并启动隧道
登录 Dev Tunnel:
devtunnel user login创建持久性隧道:
devtunnel create --allow-anonymous此命令将返回一个隧道 ID。 请保存此标识符以备后用。
配置隧道端口:
指定您的智能体服务器使用的端口(通常为 3978):
devtunnel port create <tunnel-id> -p <port-number>启动隧道:
devtunnel host <tunnel-id>该命令将显示您的隧道 URL(例如,
https://abc123xyz.devtunnels.ms:3978)。 复制此 URL 以供下一步使用。
提示
使用 devtunnel list 查看所有隧道,使用 devtunnel delete <tunnel-id> 删除不再需要的隧道。
配置智能体消息传递端点
将您的开发隧道 URL(例如 https://abc123xyz.devtunnels.ms:3978/api/messages)注册为智能体消息传递端点,以便 Microsoft 365 知道将消息路由到何处。 请勿忘记在端点后添加 /api/messages 后缀。
请参阅 设置智能体消息传递端点
在 Microsoft 365 中进行测试
在开发隧道处于活动状态且端点已注册后,在 Microsoft 365 应用程序中测试您的智能体。
在 Microsoft Teams 中进行测试
启动本地智能体,具体操作请参考 安装依赖项并启动智能体应用程序服务器 中的说明。
验证隧道连接:
devtunnel list检查您的隧道是否显示活跃的主机连接。 “主机连接”列应显示大于 0 的数值。
在 Teams 中与您的智能体交互:
- 打开 Microsoft Teams(网页版或桌面版)
- 在 Teams 搜索栏中,按名称或电子邮件搜索您的智能体
- 与智能体展开对话
- 发送消息并观察其回复
- 检查本地控制台是否有传入请求和智能体活动
测试电子邮件通知
如果您的智能体已配置 电子邮件通知:
- 向智能体的电子邮件地址发送电子邮件
- 在电子邮件线程中抄送您的智能体
- 监视本地控制台中是否有通知 webhook
- 验证您的智能体流程并回复电子邮件
测试 Word 集成
对于能够响应 Word 评论的智能体:
- 打开一个您的智能体有权访问的 Word 文档。
- 添加一条提及该智能体的评论。
- 在本地控制台中查看通知。
- 确认智能体的回复是否显示在 Word 中。
监控隧道活动
Dev Tunnels 提供流量检查功能,有助于排查连接问题并了解请求流:
devtunnel show <tunnel-id>
此命令将显示:
- 活动连接和会话详细信息。
- 请求和响应信息。
- 流量统计数据。
- 连接错误和警告。
您还可以通过观察 devtunnel host 命令的输出结果,实时监控隧道活动。
维护隧道连接
开发隧道需要 devtunnel host 进程保持运行。 如果因闲置、网络问题或计算机进入睡眠模式导致连接中断,您需要重新启动它。
检查隧道状态
验证您的隧道是否处于活动状态:
devtunnel list
输出显示:
- Tunnel ID: 您的隧道标识符
-
Host Connections: 活动连接数(当
devtunnel host正在运行时,应为一个或多个) - 端口: 配置的端口
- 过期时间: 隧道过期时间
如果 主机连接数 显示为 0,则表示隧道存在但当前未被托管。
重启已断开的隧道
如果隧道连接中断,请使用相同的隧道 ID 将其重启:
devtunnel host <tunnel-id>
隧道 URL 保持不变,因此您无需更新智能体消息端点的配置。
在开发过程中保持隧道处于活动状态
为保持连接稳定:
-
保持终端窗口打开 - 不要关闭正在运行
devtunnel host的终端。 - 防止计算机进入睡眠状态 - 将系统配置为在测试期间保持唤醒状态。
-
留意连接错误 - 监控
devtunnel host终端输出中的断开连接消息。 - 网络变更后重启 - 若切换网络或重新连接 VPN,请重启隧道。
提示
如果隧道频繁断开,请检查网络设置和防火墙规则,确保它们未阻断连接。
清理
完成 Dev Tunnels 测试后:
停止隧道
在运行 devtunnel host 的终端中按 Ctrl+C 停止隧道。
该命令会从智能体的消息终结点中移除开发隧道 URL。 部署到生产环境时,请设置云托管端点 URL。
备注
除非您使用 devtunnel delete <tunnel-id> 明确删除该隧道,否则它将保持可用状态以备将来使用。
限制
使用 Dev Tunnels 进行测试时,请注意以下限制:
- 仅限开发:Dev Tunnels 仅用于开发和测试,不适用于生产环境。
- 性能:由于网络路由原因,与云托管智能体相比,延迟可能会更高。
- 连接稳定性:隧道连接可能会偶尔中断,需要手动重启。
-
安全注意事项:
--allow-anonymous标志虽便于测试,但请勿将其用于敏感数据。 - 会话管理:根据会话时长,您可能需要定期重新认证。
后续步骤
开发隧道测试成功后:
- 将智能体部署到云端:部署到 Azure、在 AWS 中设置智能体消息传递端点,或在 在 GCP 中设置智能体消息传递端点。
- 配置智能体消息传递端点:智能体消息传递端点。
- 遵循完整的开发生命周期:Agent 365 开发生命周期。
故障排除
如果您在通过 Dev Tunnel 进行测试时遇到问题,请从这里开始查看有关隧道、连接和端点的常见解决方案。 有关 Agent 365 的更广泛故障排除(设置、身份验证和消息传递),请参阅 故障排除。
隧道连接失败
症状:Dev Tunnel 无法启动或立即断开连接。
解决方案:
- 确认您已登录:
devtunnel user login - 检查是否有其他进程正在使用同一端口
- 确保防火墙允许 Dev Tunnel 连接
- 删除并重新创建隧道:
devtunnel delete <tunnel-id>,然后创建一个新的
消息无法送达本地智能体
症状:Microsoft 365 显示消息已发送,但您的本地智能体未收到。
解决方案:
- 确认您的智能体在本地运行
- 验证隧道是否处于活动状态:
devtunnel list应显示“已连接” - 检查
a365.config.json中的端点配置,并确认您的 Dev Tunnel URL 已设置为消息传递端点 - 在运行
devtunnel host的终端中查看 Dev Tunnel 日志,检查是否存在连接错误 - 确保您的本地端口与隧道端口一致(默认情况下两者均为 3978)
通过开发隧道的身份验证错误
症状:通过 Dev Tunnel 测试时出现 401 或 403 错误。
解决方案:
- 验证是否已配置智能体身份验证(持有者令牌身份验证不适用于 Microsoft 365 集成的开发隧道)。
- 在
a365.generated.config.json中检查智能体蓝图凭据。 - 确认您的智能体具有执行所测试操作所需的权限。
- 请确保您的身份验证令牌尚未过期。
隧道 URL 已更改或过期
症状:之前可正常使用的隧道 URL 不再路由到您的智能体。
解决方案:
- 请使用
devtunnel list检查隧道状态。 - 请使用
devtunnel host <tunnel-id>重启隧道。 - 如果 URL 已更改,请使用
a365 setup blueprint --endpoint-only更新消息传递端点。