Memslides README

The project's README from github.com/huohua325/Memslides. As one markdown file: README.md.

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

Official website notice: memslides.com is the official MemSlides trial website. memslides.org is a fake website, is not operated by this project, and is not affiliated with this repository.

Python Node License

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

Demo Video

https://github.com/user-attachments/assets/a92ab49e-bc5c-4e90-8c0a-0f23b08a8857

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

Evidence

User profile memory lifecycle Tool memory flow

Localized modify example

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.

Repository Structure

src/memslides/              Runtime package and public Python entry points
src/memslides/experiment/   Paper reproduction experiments and reports
src/memslides/tools/        MCP tool services and startup wrappers
src/memslides/memory/       Working-memory, profile, retrieval, and storage code
tests/                      Automated regression and contract tests
.memslides/                 Ignored runtime workspaces and generated outputs
~/.cache/memslides/         User-level caches, logs, and shared memory state

The public command-line entry points are generate, revise, and template induct. The experiment runner remains available through python -m memslides.experiment.

The generated tool snapshot and two unused internal modules were removed from the source tree. Use the MCP configuration and public CLI instead of importing memslides/.tools.json, memslides.memory.core.protocols, or memslides.tools.ask_template_selection.

Development Checks

Install the development and research extras, then run the same checks used by continuous integration:

pip install -e ".[dev,research]"
python -m compileall -q src tests
python scripts/check_source_hygiene.py
pytest -q
ruff check src tests
npm ci
npm run check:pptx-export

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

Citation

If you find MemSlides useful, please cite our paper.

@misc{jin2026memslides,
  title={MemSlides: A Hierarchical Memory Driven Agent Framework for Personalized Slide Generation with Multi-turn Local Revision},
  author={Ye Jin and Yangyang Xu and Jun Zhu and Yibo Yang},
  year={2026},
  eprint={2606.17162},
  archivePrefix={arXiv},
  primaryClass={cs.CL},
  doi={10.48550/arXiv.2606.17162},
  url={https://arxiv.org/abs/2606.17162},
}

License

See LICENSE and THIRD_PARTY_NOTICES.md.

Memslides (huohua325/Memslides)

Searching Database…

What is this?MemSlides is a hierarchical memory-driven agent framework that treats slide generation as a stateful authoring process. It uses layered memory (user profile, working, tool) to personalize decks and apply scoped local revisions instead of regenerating the whole presentation.
Is this a ready-made app or a framework I build on?It is a Python framework and CLI exposing public entry points (generate, revise, template induct) plus an experiment runner, not a hosted product; the hosted trial lives separately at memslides.com.
How do I get it running?Install from source, then run the built-in smoke suite to verify the install; the same experiment can also be run inside the project's Docker environment.
Do I need my own API keys to generate real slides?Yes — real generation experiments require user-provided model and service credentials, supplied via environment variables, a .env file, or a private YAML file selected with MEMSLIDESCONFIGFILE or --config.
Does the included smoke suite test real generation?No, smokeminimal is only a small verification suite; it doesn't exercise full real-model generation, though you can point the runner at your own suite YAML or a packaged suite name.
What happens to my credentials and generated files?Credentials must stay in environment variables, .env, or private YAML files, and generated workspaces, caches, and private config must never be committed; network access for search or model calls only happens if you supply those credentials.
What does tool memory actually store?Tool memory stores reusable execution experience from prior editing tasks, so future localized edits of a similar kind can avoid repeating the same execution failures.
Why patch only part of a slide instead of regenerating the whole deck?Revision feedback is projected onto the smallest affected slide region and applied as a scoped local patch, which keeps already-aligned content stable and reduces unintended drift from full-deck regeneration.
How is user profile memory different from working memory?User profile memory is persistent and routes intent-matched personal preferences like theme and layout into new jobs, while working memory is session-scoped and tracks active constraints and edit-state across multi-turn revisions on the current deck.
Does MemSlides work with MCP?Yes — the README recommends using the MCP configuration together with the public CLI instead of importing the removed internal tool modules directly.
What are similar projects?mem0, EverOS, memoket-kite, VoiceMem, evolver, Recuris, Raven, trae-agent
Creator
huohua325
Size
6.2 MB
Stars
877
Updated
CommitSep 21
Age
5mo
Commits · 90 Days