mcpField
M
MemGPT Sample

MemGPT Sample

本地服务
github.com/gm2552AI 与智能体083 周前更新

关于 MemGPT Sample

这是一个基于 Spring Boot 的概念验证项目,实现简化版 MemGPT Agent,并通过 REST 或 MCP 提供功能,适合探索 Agent 记忆机制的开发者;项目还包含可连接两种接口的命令行聊天应用。

主要功能

  1. 01Agent 配置与状态管理
  2. 02核心记忆与归档记忆
  3. 03消息检索、摘要和归档
  4. 04REST 与 MCP 服务接口
  5. 05命令行聊天应用

适用场景

  1. 01探索简化版 MemGPT 实现
  2. 02通过 REST 或 MCP 运行 Agent
  3. 03体验带 Agent 记忆的聊天

MCP 相关

项目将核心 Agent 封装为 MCP 服务。聊天应用可直接通过该服务交互,也可仅用它管理上下文窗口记忆并自行处理补全。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MemGPT 示例

本项目是一个概念验证,实现了对 MemGPT 研究论文的简化版本:论文。它将这一概念实现为 Agent,并展示了如何将其集成为简单的 REST 服务或 MCP 服务。

概述

本项目使用 Spring Boot 和 Spring AI 实现 MemGPT 概念,并将其功能作为 REST 服务和 MCP 服务提供。此外,项目还包含一个简单的命令行 ChatBot 应用,可通过上述任一机制集成 Agent。本项目由以下子项目组成:

  • core-agent:定义并实现 MemGPT 接口,其中包括配置 API。
  • restful-agent-app:围绕 Agent 的封装服务,通过简单的 REST 接口提供其功能。
  • memgpt-mcp-server:围绕 Agent 的封装服务,将其作为 MCP 服务提供。
  • simple-chat-bot-app:基于命令行的聊天应用,通过 REST 或 MCP 接口与 Agent 通信。

前提条件

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

Core Agent

core-agent 是包含 MemGPT Agent 接口和实现的组件。它负责维护 Agent 的配置和状态,包括:

  • 系统提示词
  • 工具
  • 核心记忆
  • 归档记忆
  • 消息持久化,包括上下文窗口之外的消息

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

  • 消息编译
  • 大模型通信
  • 工具调用
  • 记忆管理,包括上下文窗口的自我编辑
  • 消息检索和归档
  • 消息摘要

对外,Agent 通过三个主要接口提供功能:

  • AgentManager:配置并维护 Agent 实例。
  • AgentLoader:实例化 Agent 实例。
  • Agent:定义核心 Agent 聊天功能。

运行应用

simple-chat-bot-app 可与 restful-agent-app 或 mgmgpt-mcp-server 通信。选择希望 ChatBot 应用与之通信的服务应用,配置并运行该应用。然后,将 ChatBot 应用配置为使用所选服务应用,并运行它。

服务应用

MCP 和 REST 服务应用都只是对核心 Agent 进行封装,因此配置相同。按照以下步骤运行所选的任一服务应用。

  1. 设置 OpenAPI 密钥环境变量
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 归档记忆需要使用向量存储和 Embeddings 模型。默认情况下,归档记忆处于禁用状态,但你可以启用 pgvector Spring 配置文件来激活它。如果使用 OpenAI 作为 Embeddings 提供方,并使用 postgres 作为数据库,则无需额外配置。其他提供方可能需要额外配置,这超出了本 README 的范围。

聊天机器人应用

聊天机器人应用可以与 REST 应用或 MCP 服务应用通信;默认情况下,它会尝试与 REST 应用通信。连接到 MCP 服务时,聊天机器人可以直接与 MCP 服务通信,由其管理上下文窗口并创建聊天补全;也可以使用自定义的 Spring AI Advisor,仅管理上下文窗口记忆,并自行处理聊天补全的创建。

按照以下步骤配置并运行聊天机器人应用:

  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: 通过 MCP API 使用 MemGPT 服务生成聊天补全。
  • restadvisor: 直接与 LLM 通信以生成聊天补全,并通过 RESTful API 使用 MemGPT 服务仅管理记忆。
  • mdcadvisor: 直接与 LLM 通信以生成聊天补全,并通过 MCP API 使用 MemGPT 服务仅管理记忆。
  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

应用首先会要求输入 User ID,可以是任意值;它主要用作聊天会话的唯一标识符。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。