MemGPT代理服务

MemGPT代理服务是一个基于Spring Boot和Spring AI的REST和MCP服务器实现,用于管理和运行MemGPT代理,支持聊天机器人应用集成。

  • by gm2552
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 gm2552/memgpt-agent

使用说明

MemGPT样本

该项目是一个概念验证,实现了MemGPT研究的简化和简化实现 纸张。它将概念实现为代理,并展示了它如何 可以作为简单的REST服务或作为 主控程序 服务器。

概述

该项目使用Spring Boot和Spring AI实现了MemGPT概念,并将其功能公开为 REST服务和MCP服务器。此外,它还包含一个简单的ChatBot命令行应用程序,可以 将代理与这些机制中的任何一个集成。该项目由以下子项目组成:

  • 核心代理:定义并实现MemGPT接口。这包括配置API。
  • restful代理应用程序:围绕代理的包装服务,通过简单的REST接口公开它。
  • memgpt-mcp服务器:围绕代理的包装器服务,将其作为mcp服务器公开。
  • 简单聊天机器人应用程序:一种基于命令行的聊天应用程序,通过REST或MCP接口与代理通信。

先决条件

  • Java 17或更高版本
  • Gradle
  • OpenAI API密钥

核心代理

核心代理是组成MemGPT代理的接口和实现的组件。它负责维护 代理的配置和状态,包括:

  • 系统提示
  • 工具
  • 磁芯存储器
  • 档案存储器
  • 消息持久性,包括上下文窗口外的消息

它还负责核心代理功能,包括但不限于:

  • 消息编译
  • LLM通信
  • 工具调用
  • 内存管理包括上下文窗口自编辑
  • 消息检索和归档
  • 消息摘要

在外部,代理通过三个主要接口公开其功能:

  • 代理管理器:配置和维护代理实例。
  • 代理加载器:实例化代理实例。
  • 代理:定义核心代理聊天功能。

运行应用程序

简单的聊天机器人应用程序与restful代理应用程序或mgmgpt-mcp服务器通信。选择要使用的服务器应用程序 与聊天机器人应用程序一样,配置该应用程序并运行它。然后,您将配置聊天机器人应用以使用服务器应用程序 你可以选择并运行它。

服务器应用程序

MCP和REST服务器应用程序都只是包装核心代理,因此它们的配置是相同的。执行以下步骤 运行您选择的任一服务器应用程序。

  1. 设置OpenAPI Key环境变量
export OPENAI_API_KEY=your-api-key
  1. 构建应用程序
./gradlew :restful-agent-app:build

或

./gradlew :memgpt-mcp-server:build
  1. 运行服务器应用程序
java -jar ./restful-agent-app/build/libs/restful-agent-app-0.0.1-SNAPSHOT.jar

或

java -jar ./memgpt-mcp-server/build/libs/memgpt-mcp-server-0.0.1-SNAPSHOT.jar

服务器应用程序将加载并准备好接收来自ChatBot应用程序的传入事务。

档案存储器

MemGPT存档内存需要使用向量存储和嵌入模型。默认情况下,存档内存 已禁用,但您可以通过启用来激活它 pgvector 弹簧轮廓。如果你正在使用OpenAI 您的嵌入提供程序和postgres作为您的数据库,不需要额外的配置。其他供应商 可能需要额外的配置,这超出了本README的范围。

聊天机器人应用程序

ChatBot应用程序可以与REST应用程序或MCP服务器应用程序通信;默认情况下 它将尝试与REST应用程序通信。在MCP服务器上执行时,ChatBot可以 直接与MCP服务器通信,管理上下文窗口并创建聊天完成, 或者,它可以使用自定义的Spring AI Advisor来仅管理上下文窗口内存并处理创建聊天完成 本身。

执行以下步骤以配置和运行ChatBot应用程序:

  1. 设置OpenAPI Key环境变量
export OPENAI_API_KEY=your-api-key
  1. 配置目标服务器应用程序(如果以REST应用程序为目标,则可选)。

编辑 simple-chat-bot-app\src\main\resource\application.yaml 文件并更新 spring.profiles.active 使用以下值进行设置 这取决于目标服务器应用。

  • rest(默认): 通过REST API与MemGPT服务器生成聊天完成。
  • mcp: 通过带有MemGPT服务器的MCP API生成聊天完成。
  • 恢复顾问: 通过直接与LLM通信并使用MemGPT服务器仅通过RESTful API管理内存来生成聊天完成。
  • mdcadvisor: 通过直接与LLM通信并使用MemGPT服务器仅通过MCP API管理内存,生成聊天完成。
  1. 构建应用程序
./gradlew :simple-chat-bot-app:build
  1. 运行聊天机器人应用程序
java -jar ./simple-chat-bot-app/build/libs/simple-chat-bot-app-0.0.1-SNAPSHOT.jar

应用程序将首先要求用户ID,可以是任何东西;它主要用作聊天会话的唯一标识符。