Memgpt Agent

Memgpt Agent

🚀 MemGPT 示例项目

本项目是一个概念验证实现,对 MemGPT 研究论文中的概念进行了简化和缩略实现。它以代理形式呈现,展示了如何将其集成为简单的 REST 服务,或是作为 MCP 服务器使用。

🚀 快速开始

此项目借助 Spring Boot 和 Spring AI 实现了 MemGPT 的概念,并通过简单的 REST 接口和 MCP 服务器来对外提供其功能。此外,项目还包含一个基于命令行的 ChatBot 应用程序,可将其与 REST 或 MCP 接口集成。

✨ 主要特性

  • 本项目由多个子项目构成,各有其独特功能:
    • core - agent:定义并实现 MemGPT 接口,包含配置 API。
    • restful - agent - app:围绕代理构建的包装服务,通过简单 REST 接口暴露功能。
    • memgpt - mcp - server:围绕代理构建的包装服务,作为 MCP 服务器暴露功能。
    • simple - chat - bot - app:基于命令行的聊天应用程序,可通过 REST 或 MCP 接口与代理通信。

📦 安装指南

先决条件

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

🔧 技术细节

核心代理

核心代理是包含 MemGPT 接口和实现的组件,负责维护代理的配置和状态,涵盖内容如下:

  • 系统提示
  • 工具
  • 核心内存
  • 归档内存
  • 消息持久化(包括上下文窗口之外的消息)

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

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

从外部来看,代理通过以下三个主要接口暴露其功能:

  • AgentManager:配置和维护代理实例。
  • AgentLoader:创建代理实例。
  • Agent:定义核心代理聊天功能。

运行应用程序

简单聊天机器人应用程序与 restful - agent - app 或 memgpt - mcp - server 通信。您需要选择聊天机器人应用程序使用的服务器应用程序,配置并运行该应用程序。然后将 ChatBot 应用程序配置为使用所选的服务器应用程序,并运行它。

服务器应用程序

无论是 MCP 服务器还是 REST 服务器,都负责处理上下文窗口和代理逻辑。以下是两种主要实现:

  1. MCP 服务器(基于 REST)
    • 实现 ModelContextProtocol 接口
    • 提供 /api/v1/chat/completions 端点
    • 支持与 OpenAI 的 API 兼容性
    • 运行命令:
./gradlew :memgpt - mcp - server:run
- 启动后,默认在 `http://localhost:8080` 上运行,可通过配置文件修改端口和其他设置。
  1. REST 服务器
    • 实现 ChatMessageStoreChatContext
    • 提供基于 REST 的接口用于管理聊天会话和上下文
    • 运行命令:
./gradlew :restful - agent - app:run
- 启动后,默认在 `http://localhost:9090` 上运行,提供 REST 接口用于代理管理。

运行 ChatBot 应用程序

  1. 构建应用程序
./gradlew :simple - chat - bot - app:build
  1. 运行 ChatBot 应用程序
java - jar ./simple - chat - bot - app/build/libs/simple - chat - bot - app - 0.0.1 - SNAPSHOT.jar
  • 启动后,会提示输入用户 ID,用户 ID 用于标识聊天会话,可以是任意字符串。

通过以上步骤,您可以轻松运行 MemGPT 示例项目,并体验其功能和集成方式。

  • 0 关注
  • 0 收藏,9 浏览
  • system 提出于 2025-09-18 22:24

相似服务问题