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…

Что это такое?MemSlides — это агентный фреймворк с иерархической памятью, который рассматривает создание слайдов как процесс авторинга с сохранением состояния. Он использует многоуровневую память (профиль пользователя, рабочую, инструментальную), чтобы персонализировать презентации и вносить точечные локальные правки вместо генерации всей презентации заново.
Это готовое приложение или фреймворк, на котором я буду строить своё?Это Python-фреймворк и CLI с публичными точками входа (generate, revise, template induct), а также запускателем экспериментов; это не хостинговый продукт — облачная пробная версия живёт отдельно на memslides.com.
Как его запустить?Установите из исходников, затем запустите встроенный smoke-набор, чтобы проверить установку; тот же эксперимент можно выполнить и внутри Docker-окружения проекта.
Нужны ли мне свои API-ключи, чтобы генерировать настоящие слайды?Да — для реальной генерации нужны ваши собственные учётные данные для моделей и сервисов: их передают через переменные окружения, файл .env или приватный YAML-файл, указанный через MEMSLIDESCONFIGFILE или --config.
Встроенный smoke-набор проверяет реальную генерацию?Нет, smokeminimal — это лишь небольшой проверочный набор; полную генерацию реальной моделью он не затрагивает, хотя запускатель можно направить на собственный YAML с набором тестов или на имя упакованного набора.
Что происходит с моими учётными данными и созданными файлами?Учётные данные должны храниться только в переменных окружения, .env или приватных YAML-файлах, а созданные рабочие папки, кэши и приватные конфиги нельзя добавлять в репозиторий; доступ к сети для поиска или вызовов модели происходит только если вы предоставили эти учётные данные.
Что именно хранит инструментальная память?Инструментальная память хранит переиспользуемый опыт выполнения из предыдущих задач редактирования, чтобы будущие похожие точечные правки не повторяли одни и те же ошибки выполнения.
Зачем править только часть слайда, а не генерировать всю презентацию заново?Обратная связь от правки проецируется на наименьший затронутый участок слайда и применяется как локальный точечный патч: уже согласованный контент остаётся стабильным, а нежелательные расхождения, свойственные полной регенерации, сводятся к минимуму.
Чем память профиля пользователя отличается от рабочей памяти?Память профиля пользователя постоянна: она переносит подходящие по смыслу личные предпочтения (тема, макет) в новые задачи. Рабочая память ограничена сессией: она отслеживает активные ограничения и состояние правок при многошаговом редактировании текущей презентации.
Работает ли MemSlides с MCP?Да — README рекомендует использовать конфигурацию MCP вместе с публичным CLI, а не импортировать напрямую удалённые внутренние модули инструментов.
What are similar projects?mem0, EverOS, memoket-kite, VoiceMem, evolver, Recuris, Raven, trae-agent
Creator
huohua325
Size
6.2 MB
Stars
916
Updated
CommitSep 21
Age
5mo
Commits · 90 Days