Skip to content

huohua325/Memslides

Repository files navigation

MemSlides: A Hierarchical Memory-Driven Agent Framework for Personalized Slide Generation with Multi-turn Local Revision

Personalized presentation agents with user profile memory, working memory, tool memory, and scoped slide-local revision.

Paper Project Page Demo Video Docker Hub Website

Python Node License

If MemSlides is useful for your research or slide-generation workflow, please consider starring this repository to help others discover it.

News

2026-06-26
Product milestone
🚀 The MemSlides live demo crossed 50 verified users.
Thank you to everyone trying the demo and helping us improve the personalized slide-generation workflow: try the live demo.
2026-06-25
GitHub milestone
⭐ MemSlides crossed 100 GitHub stars.
Thank you for helping the project reach its first community star milestone: see stargazers.
2026-06-24
Community milestone
🏆 MemSlides reached #1 Paper of the Day on Hugging Face Daily Papers.
Thank you for the early attention from the research community. See the #1 Paper of the day, and showcase Space.
2026-06-23
Community creation
🎧 A MemSlides community member created a ResearchPod episode about our paper.
Listen on ResearchPod.

Demo Video

video.mp4

Overview

MemSlides treats presentation generation as a stateful authoring process rather than a one-shot source-to-slides conversion task. It separates personalization signals by lifetime: persistent user profile memory captures recurring cross-job preferences, working memory carries active session constraints across revision rounds, and tool memory stores reusable execution experience for reliable localized editing.

Long-term memory stores intent-conditioned user profile memory for round-0 personalization and tool memory for reusable execution experience. Working memory maintains active preferences, session state, and revision constraints within the current deck. During revision, MemSlides projects user feedback onto the smallest affected slide region and applies scoped local patches instead of repeatedly regenerating the full deck.

MemSlides hierarchical memory and localized revision overview

Highlights

  • Intent-conditioned user profile memory routes personalization by presentation intent, then applies preferences over theme, visual style, layout, template use, content strategy, and general presentation habits.
  • Multi-turn working memory preserves temporary preferences, session constraints, and edit-state records across feedback turns in the same deck.
  • Tool memory retrieves prior task and tool-chain experience before similar edit operations to reduce repeated execution failures.
  • Scoped slide-local revision updates the smallest affected slide region instead of repeatedly rewriting the full deck.

Evidence

User profile memory lifecycle Tool memory flow

Localized modify example

  • User profile memory supports persona-aware round-0 personalization by routing intent-matched preferences into the current job.
  • Working memory carries active session constraints and temporary preferences across multi-turn revision.
  • Tool memory stores reusable execution experience so future localized edits can avoid repeated failures.
  • Scoped local revision keeps the edit surface close to the requested element, reducing unintended drift in already aligned slide content.

Quick Start

Install from source:

sudo apt-get update
sudo apt-get install -y libreoffice fontconfig fonts-noto-cjk poppler-utils

conda env create -f environment.yml
conda activate memslides
pip install -e ".[research]"

python -m playwright install chromium ffmpeg
python -m memslides.experiment --help

Run the built-in smoke suite:

python -m memslides.experiment run smoke_minimal \
  --output-base .memslides/experiments \
  --parallel 1

The same experiment can run inside the Docker environment:

docker compose build
docker compose run --rm memslides python -m memslides.experiment run smoke_minimal \
  --output-base /app/.cache/memslides/experiments \
  --parallel 1

smoke_minimal is only a small verification suite. Users can pass any local suite YAML path or packaged suite name to python -m memslides.experiment run.

Configuration

MemSlides needs user-provided model and service credentials for real generation experiments. Keep credentials outside git and provide them through environment variables, .env, or a private YAML file selected with MEMSLIDES_CONFIG_FILE or --config.

The packaged public config is src/memslides/memslides.yaml; its placeholders are expanded from the current process environment when the YAML is loaded. Generated outputs, caches, private YAML files, and credentials must not be committed.

For Docker runs with a private YAML file:

docker compose -f docker-compose.yml -f docker-compose.private.yml run --rm memslides \
  python -m memslides.experiment run smoke_minimal \
  --output-base /app/.cache/memslides/experiments \
  --parallel 1

The override maps ./memslides.private.yaml to /run/secrets/memslides.private.yaml and sets MEMSLIDES_CONFIG_FILE=/run/secrets/memslides.private.yaml inside the container.

Experiment CLI

The suite runner is the main public entry point:

python -m memslides.experiment run smoke_minimal --output-base .memslides/experiments --parallel 1
python -m memslides.experiment report .memslides/experiments/smoke_minimal
python -m memslides.experiment personas

Core generation, revision, and template induction commands remain available for scripted local use:

python -m memslides generate --instruction "Create a one-slide project summary" --num-pages 1
python -m memslides revise --workspace .memslides/session --feedback "Tighten the title"
python -m memslides template induct --template-file template.pptx

Security And Privacy

  • Keep API keys in environment variables, .env, or private YAML files.
  • Do not commit .env, .memslides/, generated workspaces, or private config files.
  • Network acquisition is optional and depends on user-provided search or model credentials.
  • External URLs and downloaded assets should be reviewed before presenting.

License

See LICENSE and THIRD_PARTY_NOTICES.md.

About

A hierarchical memory framework for personalized presentation agents. Try it at memslides.com.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors