Cover image
Try Now
2025-03-27

用Spring Boot编写的简单,删节的模因代理。包括作为REST API或MCP服务器的运行。还包括一个简单的聊天机器人应用程序,可以与代理进行交互。

3 years

Works with Finder

1

Github Watches

1

Github Forks

0

Github Stars

MemGPT Sample

This project is a proof of concept that implements a simplified and abridge implementation of the MemGPT research paper. It implements the concept as an agent and showcases how the it can be integrated either as a simple REST service or as an MCP server.

Overview

This project implements the MemGPT concept using Spring Boot and Spring AI and exposes its functionality as a REST service and an MCP Server. In addition, it contains a simple ChatBot command line application that can integrate the agent with either of these mechanisms. The project is comprised of the following sub-projects:

  • core-agent: Defines and implements the MemGPT interfaces. This includes a configuration API.
  • restful-agent-app: A wrapper service around the agent to expose it via simple REST interface.
  • memgpt-mcp-server: A wrapper service around the agent to expose it as an MCP server.
  • simple-chat-bot-app: A command line based chat application that communicates with the agent via the REST or MCP interfaces.

Prerequisites

  • Java 17 or later
  • Gradle
  • OpenAI API key

Core Agent

The core-agent is component that comprises the interfaces and implementation of the MemGPT agent. It is responsible for maintaining configuration and state of agents which includes:

  • System prompt
  • Tools
  • Core memory
  • Archival memory
  • Message persistence including messages outside the context window

It is also responsible for the core agent functions including but not limited to:

  • Message compilation
  • LLM communication
  • Tool calling
  • Memory management include context window self editing
  • Message retrieval and archiving
  • Message summarization

Externally, the agent exposes its functionality through three main interfaces:

  • AgentManager: Configures and maintains agent instances.
  • AgentLoader: Instantiates agent instances.
  • Agent: Defines the core agent chat functionality.

Running the Applications

The simple-chat-bot-app communicates with either the restful-agent-app or the mgmgpt-mcp-server. Choose which server application you would like the ChatBot app to communicate with, configure that app, and run it. You will then configure the ChatBot app to use the server application of your choice and run it.

Server Application

Both the MCP and REST server applications simply wrap the core agent, so their configurations are identical. Execute the following steps to run either server application of your choice.

  1. Set the OpenAPI Key environment variable
export OPENAI_API_KEY=your-api-key
  1. Build the application
./gradlew :restful-agent-app:build

or

./gradlew :memgpt-mcp-server:build
  1. Run the Server Application
java -jar ./restful-agent-app/build/libs/restful-agent-app-0.0.1-SNAPSHOT.jar

or

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

The server application will load and is ready for incoming transactions from the ChatBot application.

Archival Memory

MemGPT archival memory requires the use of a vector store and Embeddings model. By default, archival memory is disabled, but you can activate it by enabling the pgvector Spring profile. If you are using OpenAI as your embeddings provider and postgres as your database, no additional configuration should be required. Other providers may require additional configuration which is beyond the scope of this README.

ChatBot Application

The ChatBot application can communicate with either the REST application or the MCP server application; by default it will attempt to communicate with the REST Application. When executing against an MCP server, the ChatBot can either communicate directly with the MCP server manage the context window and create chat completions, or it an use a custom Spring AI Advisor to only manage the context window memory and handle creating chat completions itself.

Execute the following steps to configure and run the ChatBot application:

  1. Set the OpenAPI Key environment variable
export OPENAI_API_KEY=your-api-key
  1. Configure Target Server Application (Optional if targeting the REST Application).

Edit the simple-chat-bot-app\src\main\resource\application.yaml file and update the spring.profiles.active setting with the following value depending on the targeted server application.

  • rest (default): Generates chat completions over a REST API with the MemGPT server.
  • mcp: Generates chat completions over an MCP API with the MemGPT server.
  • restadvisor: Generates chat completions by communicating directly with the LLM and using the MemGPT server to only manage memory over a RESTful API.
  • mdcadvisor: Generates chat completions by communicating directly with the LLM and using the MemGPT server to only manage memory over an MCP API.
  1. Build the application
./gradlew :simple-chat-bot-app:build
  1. Run the ChatBot Application
java -jar ./simple-chat-bot-app/build/libs/simple-chat-bot-app-0.0.1-SNAPSHOT.jar

The application will first ask for a User ID which can be anything; it is mainly used as a unique identifier for the chat session.

相关推荐

  • NiKole Maxwell
  • I craft unique cereal names, stories, and ridiculously cute Cereal Baby images.

  • Bora Yalcin
  • Evaluator for marketplace product descriptions, checks for relevancy and keyword stuffing.

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • Alexandru Strujac
  • Efficient thumbnail creator for YouTube videos

  • Callycode Limited
  • A geek-themed horoscope generator blending Bitcoin prices, tech jargon, and astrological whimsy.

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • Khalid kalib
  • Write professional emails

  • Beniyam Berhanu
  • Therapist adept at identifying core issues and offering practical advice with images.

  • Elijah Ng Shi Yi
  • Advanced software engineer GPT that excels through nailing the basics.

  • apappascs
  • 发现市场上最全面,最新的MCP服务器集合。该存储库充当集中式枢纽,提供了广泛的开源和专有MCP服务器目录,并提供功能,文档链接和贡献者。

  • ShrimpingIt
  • MCP系列GPIO Expander的基于Micropython I2C的操作,源自ADAFRUIT_MCP230XX

  • OffchainLabs
  • 进行以太坊的实施

  • huahuayu
  • 统一的API网关,用于将多个Etherscan样区块链Explorer API与对AI助手的模型上下文协议(MCP)支持。

  • deemkeen
  • 用电源组合控制您的MBOT2:MQTT+MCP+LLM

    Reviews

    4 (1)
    Avatar
    user_NOLZ80BN
    2025-04-16

    I recently started using SynoLink by Do-Boo, and it's been fantastic! The seamless integration and user-friendly interface make managing my server a breeze. The detailed documentation and responsive support are top-notch. Highly recommend checking it out at https://mcp.so/server/synolink/Do-Boo.