使用 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 更新消息传递端点。