huohua325/Memslides
A hierarchical memory framework for personalized presentation agents. Try it at memslides.com.
MemSlides – Hierarchical‑Memory Agent for Personalized Slide Generation
What it is – MemSlides is an open‑source framework that lets you build a stateful AI assistant for creating PowerPoint‑style presentations. Instead of generating an entire deck in one go, the system keeps several layers of memory:
| Memory layer | Purpose |
|---|---|
| User‑profile memory | Stores long‑term preferences (style, layout, tone) tied to a presentation intent. |
| Working memory | Holds session‑specific constraints and temporary preferences that survive across multiple revision turns. |
| Tool memory | Remembers past tool‑chain executions (e.g., rendering, image search) so the same operation isn’t repeated needlessly. |
When a user gives feedback, MemSlides projects that feedback onto the smallest affected slide region and patches only that part, avoiding a full‑deck regeneration.
Key Features (as described in the README)
- Intent‑conditioned personalization – The agent first selects a user‑profile slice that matches the presentation’s intent, then applies fine‑grained style and content preferences.
- Multi‑turn revision – Working memory preserves temporary edits and constraints, enabling smooth back‑and‑forth with the user.
- Tool memory – Caches successful tool‑chain runs (e.g., image generation, layout rendering) to prevent repeated failures.
- Scoped slide‑local revision – Updates only the slide region that the user asked to change, reducing unintended drift in the rest of the deck.
- CLI entry points –
memslides generate,memslides revise, andmemslides template inductfor scripted use, plus an experiment runner (python -m memslides.experiment). - Docker support – Pre‑built image on Docker Hub; can run the smoke‑test suite inside the container.
- Research‑oriented – Includes a reproducibility suite (
smoke_minimal) and a full set of experiments for the accompanying arXiv paper.
Quick‑Start Summary
- System dependencies – LibreOffice, fontconfig, Noto CJK fonts, poppler‑utils.
- Create the Conda environment –
conda env create -f environment.yml && conda activate memslides. - Install the package –
pip install -e "[research]"(adds optional research extras). - Set up Playwright –
python -m playwright install chromium ffmpeg(needed for web‑based tool services). - Run a sanity check –
python -m memslides.experiment run smoke_minimal \ --output-base .memslides/experiments \ --parallel 1 - Or use Docker –
docker compose build && docker compose run --rm memslides ….
How to Use the CLI (examples from the README)
- Generate a deck:
python -m memslides generate \ --instruction "Create a one‑slide project summary" \ --num-pages 1 - Revise a slide (after a previous generation):
python -m memslides revise \ --workspace .memslides/session \ --feedback "Tighten the title" - Induct a template (teach the system a new PPTX layout):
python -m memslides template induct --template-file template.pptx
Project Structure (high‑level)
src/memslides/– Core runtime code and public entry points.src/memslides/memory/– Implementations of profile, working, and tool memory.src/memslides/experiment/– Scripts for reproducing the paper’s experiments.tests/– Regression and contract tests..memslides/&~/.cache/memslides/– Runtime workspaces, caches, and generated artefacts (ignored by Git).
Security & Privacy Notes
- API keys and other credentials must be supplied via environment variables, a
.envfile, or a private YAML config; they should never be committed. - Network access is optional and only occurs when the user provides a search or model service credential.
- Users are advised to review any downloaded external assets before presenting.
Citation
If you use MemSlides in research, cite the arXiv paper (2026) as provided in the README.
License
Apache‑2.0 (see LICENSE).
Bottom line – MemSlides is a full‑stack, research‑grade framework for building LLM‑driven agents that generate and iteratively edit presentation slides, leveraging hierarchical memory to keep personalization consistent and revisions localized.
Related
- Project
- Project
- Project
- Project
- Project