模拟工具服务器

Agent 365 CLI 包含一个用于测试和开发的模拟工具服务器。 该服务器模拟 MCP(模型上下文协议)服务器的交互,因此你可以在本地测试智能体的工具功能,无需实际服务器实现。 它不涵盖其他 Agent 365 的功能。

使用模拟服务器的优势

模拟服务器为本地开发和测试提供了以下优势:

  • 离线开发:无需连接互联网或外部依赖即可测试您的智能体。
  • 一致性测试:在测试边缘情况时获得可预测的回复。
  • 调试:实时查看所有请求和回复
  • 快速迭代:无需等待外部 API 调用或搭建复杂的测试环境。

必备条件

在使用模拟工具服务器之前,请确保您具备以下先决条件:

  • 已安装 Agent 365 CLI - 模拟工具服务器需配合 CLI 使用。 安装说明请参见 Agent 365 CLI
    • 要使用模拟工具服务器,至少需要 1.1.25 预览版版本。
  • 示例智能体项目:一个可以连接到 MCP 服务器的本地智能体项目。 请参阅我们的 Agent365-Samples 存储库以获取可用的起点。

启动模拟工具服务器

使用 a365 develop start-mock-tooling-server 命令来启动模拟工具服务器。

# Full command
a365 develop start-mock-tooling-server

# Short alias
a365 develop mts

命令选项

模拟工具服务器支持以下选项:

选项 说明 默认值
-p, --port <port> 模拟服务器的端口号 5309
-v, --verbose 启用详细日志记录 false
-?, -h, --help 显示帮助和使用信息 -
-bg 在新终端上运行服务器 -

示例

以下示例展示了启动模拟工具服务器的常见方法:

使用默认设置开始:

a365 develop start-mock-tooling-server

从自定义端口开始:

a365 develop start-mock-tooling-server -p 8080

从详细日志记录开始:

a365 develop start-mock-tooling-server -v

当你运行该命令时,它:

  1. 在指定端口(默认:localhost:5309)启动模拟工具服务器。
  2. 在终端中显示服务器日志和传入请求。

将模拟服务器与示例智能体一起使用

要将你的示例智能体连接到模拟工具服务器:

步骤 1:启动模拟服务器

a365 develop start-mock-tooling-server

服务器启动并显示类似于以下示例的输出:

info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:5309
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.

第 2 步:配置您的智能体

在您的示例智能体中设置 MCP_PLATFORM_ENDPOINT 环境变量,使其指向模拟服务器:

MCP_PLATFORM_ENDPOINT=http://localhost:5309

如果您使用自定义端口,请将 5309 替换为您选择的端口号。

步骤 3:运行你的智能体

像平时一样启动您的示例智能体。 您的智能体现在连接到的是模拟服务器,而不是实际的 MCP 服务器。

步骤 4:监控服务器活动

模拟服务器终端显示:

  • 来自智能体的传入请求
  • 要发送回的模拟回复
  • 连接状态及错误(如有)

示例服务器日志:

info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
      Request starting HTTP/1.1 POST http://localhost:5309/agents/servers/mcp_CalendarTools - application/json 351
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
      Executing endpoint 'HTTP: POST /agents/servers/{mcpServerName}'
info: Microsoft.AspNetCore.Http.Result.JsonResult[3]
      Writing value of type '<>f__AnonymousType14`3' as Json.
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
      Executed endpoint 'HTTP: POST /agents/servers/{mcpServerName}'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
      Request finished HTTP/1.1 POST http://localhost:5309/agents/servers/mcp_CalendarTools - 200 - application/json;+charset=utf-8 399.1814ms

停止模拟工具服务器

要停止模拟工具服务器,请在运行服务器的终端中使用 Ctrl+C,或关闭终端窗口。

故障排除

本节包含有关如何排查模拟工具服务器常见问题的信息。

提示

Agent 365 故障排除指南 包含高层次的故障排除建议、最佳实践,以及针对 Agent 365 开发生命周期各阶段的故障排除内容链接。

模拟服务器启动失败

症状:Error: Address already in use

原因:另一个进程已占用默认端口 (5309) 或你指定的端口。

解决方案

  • 使用其他端口。

    a365 develop start-mock-tooling-server -p 8080
    
  • 终止正在使用该端口的进程,然后重新尝试。

智能体无法连接到模拟服务器

症状:智能体日志在尝试连接模拟服务器时显示连接错误或超时。

原因:

  • 模拟服务器没有运行。
  • MCP_PLATFORM_ENDPOINT 环境变量不正确。
  • 防火墙或网络配置问题。

解决方案

  1. 验证模拟服务器是否正在运行并显示“Now listening on: http://localhost:5309"”。
  2. 检查 MCP_PLATFORM_ENDPOINT 环境变量是否与服务器地址匹配。
  3. 确保防火墙未阻断指定端口的连接。