Skip to content

tosinamuda/memolet-replication

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Memolet: A Replication Study

Paper Reference

This project replicates the Memolet system introduced by:

Ryan Yen and Jian Zhao. > Memolet: Reifying the Reuse of User-AI Conversational Memories. In Proceedings of the 37th Annual ACM Symposium on User Interface Software and Technology (UIST '24), 2024. doi: 10.1145/3654777.3676388


Abstract

Memolet transforms user–AI interactions into reusable “memolets” — atomic memory units that can be searched, clustered, and referenced in future prompts. This replication rebuilds the core system — long-term memory repository, semantic clustering, and prompt composition flow — using a React 19 frontend and a FastAPI backend. It serves as a reproducible testbed for conversational memory research and experimentation.


Key Concepts

  • Memolets: Semantic bundles of related prompt–response pairs.
  • Three-Layer Architecture: Long-term repository → curated sandbox → prompt buffer.
  • Core Capabilities: Semantic search, clustering (K-Means/DBSCAN/Hierarchical), drag-and-drop organization, and memolet citation during streaming chat.

Differences from the Original Paper

  • User study design and evaluation metrics are excluded.
  • UI layout and animations are approximated for reproduction.
  • Adds experimental “Memoract” prototype and sandbox DnD tooling.
  • Runs locally via OpenRouter API instead of the paper’s internal LLM stack.

Implementation Status

Implemented

  • Long-term memory repository (UMAP/PCA positioning)
  • Semantic search across conversations and memolets
  • Configurable clustering (K-Means, DBSCAN, Hierarchical)
  • Curated sandbox with drag-and-drop grouping
  • Memolet extraction, summarization, and emoji iconography
  • Prompt composition with @memolet mentions and citations
  • WebSocket streaming for baseline vs memolet chat

Pending

  • Reproduction of user study tasks and metrics
  • Automated benchmarking of clustering hyperparameters

Quickstart

Prerequisites

Setup

npm install
cp apps/server/.env.example apps/server/.env
# add your OpenRouter key to .env
npm run dev

Architecture Overview

Frontend: React 19 + TypeScript + Vite + Tailwind

  • TipTap editor for @memolet mentions
  • DnD Kit sandbox with grid snapping
  • TanStack Query for caching
  • IndexedDB for local persistence

Backend: FastAPI + SQLAlchemy + SentenceTransformers

  • Services for memolet orchestration, clustering, embeddings
  • SQLite vector store with UMAP/PCA fallbacks
  • Structured logging and WebSocket streaming

System Flow

  1. Conversations are stored and transformed into memolets.
  2. Memolets are clustered and positioned in 2D space.
  3. The frontend renders and manages sandbox layouts.
  4. Prompts referencing memolets are enriched and sent to OpenRouter.
  5. Chat responses stream back with inline memory citations.

Usage Example

  1. Start chatting in baseline mode to generate conversation logs.
  2. Generate memolets via POST /api/v1/memolets.
  3. Curate and organize in the sandbox.
  4. Use @memolet mentions in prompts to reference prior memory.
  5. Compare baseline vs memolet-augmented responses in the chat interface.

Citation

Replication Study

@misc{memolet-replication,
  author       = {Tosin Amuda},
  title        = {Memolet: A Replication Study},
  year         = {2025},
  howpublished = {https://github.com/tosinamuda/memolet},
  note         = {Replication of Yen and Zhao, UIST 2024}
}

Original Paper

@inproceedings{yen2024memolet,
  author    = {Ryan Yen and Jian Zhao},
  title     = {Memolet: Reifying the Reuse of User-AI Conversational Memories},
  booktitle = {Proceedings of the 37th Annual ACM Symposium on User Interface Software and Technology (UIST '24)},
  year      = {2024},
  doi       = {10.1145/3654777.3676388}
}

License and Acknowledgments

  • Credit to Ryan Yen and Jian Zhao for the original Memolet design.
  • Built with React, FastAPI, SentenceTransformers, scikit-learn, and DnD Kit.

About

Replication of memolet paper - An interactive memory in conversational agent

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published