随着大模型技术的日益成熟,Agentic解决方案在各个领域展现出强大的应用潜力。本文将深入探讨如何使用 模型上下文协议(MCP)服务器,构建一个用于 Raibot Agentic解决方案的强大后端。我们将详细介绍 MCP 服务器的概念、作用,以及如何利用它来管理 Prompts(提示词)Resources(资源)Tools(工具),最终打造一个智能、高效的 Raibot。

1. 模型上下文协议(MCP):Agentic 解决方案的核心

模型上下文协议(MCP) 是一种标准化的通信协议,旨在促进大模型 Agent 和外部环境之间的有效交互。它定义了一套通用的接口,使得 Agent 能够安全、可控地访问外部的 资源工具

在传统的 Agentic 解决方案中,Agent 往往需要直接集成各种外部功能,这导致代码臃肿、耦合度高,难以维护和扩展。而 MCP 的引入,将这些外部功能抽象为独立的 MCP服务器,Agent 通过标准化的协议与服务器通信,极大地简化了 Agent 的开发和部署。 举例来说,一个电商客服 Agent 需要访问商品信息、用户订单等数据,传统的做法是将数据库访问逻辑直接嵌入 Agent 代码中。而使用 MCP 后,可以将这些数据封装在 MCP 服务器中,Agent 只需通过 MCP 协议请求数据,无需关心底层数据库的细节。

MCP服务器 的核心优势在于:

  • 解耦:将 Agent 与外部环境解耦,降低系统的复杂性。
  • 标准化:使用标准化的协议进行通信,提高系统的互操作性。
  • 安全性:提供安全、可控的访问机制,保护敏感数据。
  • 可扩展性:易于扩展新的功能和资源,满足不断变化的需求。
  • 可维护性:降低维护成本,简化系统升级和维护工作。

2. Prompts(提示词):引导 Raibot 行为的关键

Prompts(提示词) 在 Agentic 解决方案中扮演着至关重要的角色。它们是引导 Agent 行为的指令,通过提供清晰、明确的提示,可以有效地控制 Agent 的输出结果,并使其更好地完成任务。

在 Raibot 项目中,Prompts 可以用来指导 Raibot 如何与用户交互,如何利用 Tools 完成任务,以及如何解释和呈现结果。例如,我们可以定义一个 Prompt,要求 Raibot 充当一个友好的向导,帮助用户了解机器人的功能和使用方法。

一个良好的 Prompt 应该具备以下特点:

  • 清晰明确:避免使用含糊不清的语言,确保 Agent 能够准确理解指令。
  • 简洁扼要:用最少的文字表达最完整的信息。
  • 情境感知:根据当前的情境调整 Prompt,使其更具针对性。
  • 可测试性:容易测试和验证,确保 Prompt 能够达到预期效果。
You are a helpful assistant connecting to a server that can control a robot called Raibot.\n...

这个 Prompt 示例定义了 Raibot 的角色,明确告知它是一个连接到服务器并控制机器人的助手。

3. Resources(资源):Raibot 的知识库

Resources(资源) 是 Agentic 解决方案的重要组成部分,它们为 Agent 提供了必要的知识和信息,使其能够更好地理解环境、做出决策。在 Raibot 项目中,Resources 可以包括地图数据、历史指令、位置信息等。

例如,地图资源 可以帮助 Raibot 了解周围的环境,从而更好地规划路径和执行任务。历史指令资源 可以帮助 Raibot 学习用户的偏好,从而提供更加个性化的服务。 位置资源 可以帮助Raibot记录当前位置,避免迷路。

Resources 应该具有以下特性:

  • 可访问性:Agent 能够方便地访问和利用 Resources
  • 一致性:确保 Resources 的数据一致性和准确性。
  • 安全性:保护敏感 Resources 免受未经授权的访问。
  • 可更新性:能够及时更新 Resources,以反映环境的变化。

文章中提及了以下三种 Resources

  • 地图 (Map): Raibot 已经探索过的区域。
  • 历史记录 (History): Raibot 接收和执行过的指令。
  • 位置 (Location): Raibot 当前的坐标。

这些 Resources 就像 Raibot 的记忆,帮助它更好地完成任务。

4. Tools(工具):Raibot 的执行器

Tools(工具) 是 Agentic 解决方案中执行特定任务的模块。它们封装了各种外部功能,Agent 可以通过调用 Tools 来完成各种操作。

在 Raibot 项目中,Tools 可以包括运动控制、传感器数据采集、图像识别等功能。例如,我们可以定义一个 运动控制工具,允许 Raibot 控制机器人的运动方向和速度。 我们可以定义一个 定位工具, 用于读取当前机器人的坐标。

一个优秀的 Tool 应该具备以下特点:

  • 易用性:Agent 能够方便地调用和使用 Tool
  • 可靠性:确保 Tool 能够稳定、可靠地执行任务。
  • 安全性:保护 Tool 免受恶意攻击和滥用。
  • 可扩展性:易于扩展新的 Tools,以满足不断变化的需求。

文章中提及了以下几种 Tools

  • Hello World Tool: 一个简单的问候工具,用于测试服务器的连通性。
  • 位置工具 (Location Tool): 获取 Raibot 当前位置信息的工具。
  • 模拟器工具 (Simulator Tool): 模拟 Raibot 的运动,测试指令的有效性。

这些 Tools 赋予了 Raibot 执行各种任务的能力。

5. 构建 MCP服务器:Raibot 的中枢大脑

构建 MCP服务器 是实现 Raibot Agentic 解决方案的关键步骤。MCP服务器 负责管理 PromptsResourcesTools,并为 Agent 提供访问接口。

在文章中,作者使用 Typescript 和 @modelcontextprotocol 包构建了一个 MCP服务器。该服务器基于 Streamable HTTP 协议,支持多客户端连接,并提供了完善的日志记录功能。

构建 MCP服务器 的步骤如下:

  1. 选择传输机制:Streamable HTTP 是推荐的传输机制,因为它支持双向通信和会话恢复。

  2. 创建 HTTP 服务器:使用 Express 等框架创建 HTTP 服务器,监听指定端口。

  3. 实现 MCP 协议:使用 @modelcontextprotocol 包提供的 API,处理客户端的 POST、GET、DELETE 请求。

  4. 注册 PromptsResourcesTools:将 PromptsResourcesTools 注册到 MCP服务器 中,并定义相应的处理逻辑。

  5. 测试服务器:使用 MCP Inspector 等工具测试 MCP服务器 的功能和性能。

作者在文章中详细介绍了如何注册 PromptsResourcesTools。通过创建不同的文件,将各个功能模块解耦,提高了代码的可维护性。例如,raibotLocationResource.ts 文件定义了如何读取和写入 Raibot 的位置信息,使用了 Zod 库进行数据校验,确保数据的准确性。

6. 使用 MCP Inspector 测试 Raibot 的大脑

MCP Inspector 是 Anthropic 团队开发的浏览器端工具,用于测试和调试 MCP服务器。它可以连接到 MCP服务器,并列出服务器提供的 PromptsResourcesTools

通过 MCP Inspector,开发者可以方便地测试 Tools 的功能,并查看 Resources 的数据。这对于调试 Agentic 解决方案非常有用。例如,可以使用 MCP Inspector 测试 Raibot Simulator Tool,验证指令是否能够正确地控制 Raibot 的运动。

7. Raibot 应用案例:智能路径规划

基于我们构建的 MCP服务器,我们可以实现一个 Raibot 智能路径规划的应用案例。假设 Raibot 需要从 A 点移动到 B 点,它可以按照以下步骤执行:

  1. Agent 获取地图资源:Agent 通过 MCP 协议请求 地图资源,获取周围环境的信息。

  2. Agent 分析地图,规划路径:Agent 利用大模型能力分析地图,规划出一条最优路径。

  3. Agent 调用运动控制工具:Agent 通过 MCP 协议调用 运动控制工具,控制 Raibot 沿着规划的路径移动。

  4. Raibot 实时更新位置信息:Raibot 在移动过程中,实时更新 位置资源,以便 Agent 随时掌握 Raibot 的状态。

通过这个应用案例,我们可以看到 MCP服务器 在 Agentic 解决方案中发挥的重要作用。它为 Agent 提供了必要的知识和工具,使其能够智能地完成任务。

8. 总结:MCP服务器助力 Raibot 智能进化

本文深入探讨了如何使用 模型上下文协议(MCP)服务器 构建 Raibot Agentic 解决方案。通过将外部功能抽象为 PromptsResourcesTools,并由 MCP服务器 统一管理,我们可以极大地简化 Agent 的开发和部署,提高系统的灵活性和可扩展性。

随着大模型技术的不断发展,Agentic 解决方案将在各个领域展现出更加强大的应用潜力。而 MCP服务器 作为 Agentic 解决方案的核心基础设施,将发挥越来越重要的作用。 我们期待在未来的文章中,进一步探索 MCP服务器 的高级特性和应用场景,助力 Raibot 实现更加智能的进化。