使用 Dev Tunnels 测试智能体

通过使用 Dev Tunnels,您可以在智能体本地运行于开发机器的同时,使用 Microsoft 365 应用程序(如 Teams、Outlook 或 Word)测试您的 Agent 365 智能体。 此方法架起了本地开发与实际环境测试之间的桥梁,因此您可以在部署到云端之前,在真实的 Microsoft 365 环境中验证智能体的行为。

必备条件

在使用 Dev Tunnels 之前,请确保已安装 Dev Tunnels 命令行工具。

建立开发隧道

配置开发隧道,将本地智能体端点暴露给 Microsoft 365 服务。

创建并启动隧道

  1. 登录 Dev Tunnel:

    devtunnel user login
    
  2. 创建持久性隧道:

    devtunnel create --allow-anonymous
    

    此命令将返回一个隧道 ID。 请保存此标识符以备后用。

  3. 配置隧道端口:

    指定您的智能体服务器使用的端口(通常为 3978):

    devtunnel port create <tunnel-id> -p <port-number>
    
  4. 启动隧道:

    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 中进行测试

  1. 启动本地智能体,具体操作请参考 安装依赖项并启动智能体应用程序服务器 中的说明。

  2. 验证隧道连接:

    devtunnel list
    

    检查您的隧道是否显示活跃的主机连接。 “主机连接”列应显示大于 0 的数值。

  3. 在 Teams 中与您的智能体交互:

    • 打开 Microsoft Teams(网页版或桌面版)
    • 在 Teams 搜索栏中,按名称或电子邮件搜索您的智能体
    • 与智能体展开对话
    • 发送消息并观察其回复
    • 检查本地控制台是否有传入请求和智能体活动

测试电子邮件通知

如果您的智能体已配置 电子邮件通知:

  1. 向智能体的电子邮件地址发送电子邮件
  2. 在电子邮件线程中抄送您的智能体
  3. 监视本地控制台中是否有通知 webhook
  4. 验证您的智能体流程并回复电子邮件

测试 Word 集成

对于能够响应 Word 评论的智能体:

  1. 打开一个您的智能体有权访问的 Word 文档。
  2. 添加一条提及该智能体的评论。
  3. 在本地控制台中查看通知。
  4. 确认智能体的回复是否显示在 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标志虽便于测试,但请勿将其用于敏感数据。
  • 会话管理:根据会话时长,您可能需要定期重新认证。

后续步骤

开发隧道测试成功后:

故障排除

如果您在通过 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 更新消息传递端点。