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 pointsmemslides generate, memslides revise, and memslides template induct for 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

  1. System dependencies – LibreOffice, fontconfig, Noto CJK fonts, poppler‑utils.
  2. Create the Conda environmentconda env create -f environment.yml && conda activate memslides.
  3. Install the packagepip install -e "[research]" (adds optional research extras).
  4. Set up Playwrightpython -m playwright install chromium ffmpeg (needed for web‑based tool services).
  5. Run a sanity check
    python -m memslides.experiment run smoke_minimal \
      --output-base .memslides/experiments \
      --parallel 1
    
  6. Or use Dockerdocker 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 .env file, 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