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 框架和命令行工具,提供公开的入口(generate、revise、template induct)以及一个实验运行器,不是托管产品;托管试用版单独放在 memslides.com 上。
我怎么把它跑起来?先从源码安装,然后运行内置冒烟测试套件来验证安装是否正常;也可以在项目自带的 Docker 环境里运行同样的实验。
要生成真正的幻灯片,我需要自己的 API 密钥吗?需要——真正的生成实验需要用户自己提供的模型和服务凭据,可以通过环境变量、.env 文件,或用 MEMSLIDESCONFIGFILE 或 --config 指定的私有 YAML 文件来提供。
自带的冒烟测试套件会测试真实的生成吗?不会,smokeminimal 只是一个小型验证套件;它不会执行完整的真实模型生成,不过你可以让运行器指向你自己的套件 YAML,或使用某个打包好的套件名称。
我的凭据和生成的文件会怎样处理?凭据必须保存在环境变量、.env 或私有 YAML 文件里,生成的工作区、缓存和私有配置绝不能提交到代码库;只有在你提供那些凭据的情况下,才会进行搜索或模型调用的网络访问。
工具记忆到底存了什么?工具记忆存储以往编辑任务中可复用的执行经验,这样以后做同类局部编辑时,就可以避免重复出现同样的执行失败。
为什么只修补幻灯片的一部分,而不是重新生成整个演示文稿?修订反馈会被投影到受影响最小的幻灯片区域,并以局部范围的补丁形式应用,这样已对齐的内容保持稳定,也减少了整篇重新生成可能带来的意外偏差。
用户档案记忆和工作记忆有什么区别?用户档案记忆是持久化的,会把与意图匹配的个人偏好(比如主题和版式)带入新任务;而工作记忆的作用范围是单次会话,在当前演示文稿的多轮修订中跟踪当前生效的约束和编辑状态。
MemSlides 支持 MCP 吗?支持——README 建议将 MCP 配置与公开的命令行工具配合使用,而不是直接导入已移除的内部工具模块。
What are similar projects?mem0, Hy-Memory, EverOS, memoket-kite, VoiceMem, evolver, Recuris, Raven
Creator
huohua325
Size
6.2 MB
Stars
919
Updated
CommitSep 21
Age
5mo
Commits · 90 Days