huohua325/Memslides
GitHub: huohua325/Memslides
MemSlides 是一个基于层次化记忆机制的个性化幻灯片生成 Agent 框架,解决了传统生成工具缺乏用户偏好记忆与多轮局部修订能力的问题。
Stars: 769 | Forks: 23
MemSlides:一种用于个性化幻灯片生成且具备多轮局部修订的层次化记忆驱动 Agent 框架
具备用户画像记忆、工作记忆、工具记忆以及局部范围幻灯片修订功能的个性化演示 Agent。
⭐ 如果 MemSlides 对您的研究或幻灯片生成工作流有所帮助,请考虑为该仓库点个 Star,以帮助更多人发现它。
## 新闻
2026-07-03
产品里程碑
|
🚀 MemSlides 演示网站用户数突破 100 人。
感谢您对 MemSlides 社区的支持。我们始终欢迎您的反馈:
提交 issue
或通过演示网站向我们发送反馈。
|
2026-06-26
产品里程碑
|
🚀 MemSlides 实时演示的验证用户数突破 50 人。
感谢每一位试用演示并帮助我们改进个性化幻灯片生成工作流的人:
尝试实时演示。
|
2026-06-25
GitHub 里程碑
|
⭐ MemSlides 的 GitHub Star 数突破 100。
感谢您帮助本项目达成首个社区 Star 里程碑:
查看 Stargazers。
|
2026-06-24
社区里程碑
|
🏆 MemSlides 荣登 Hugging Face Daily Papers 当日论文榜首(#1 Paper of the Day)。
感谢研究社区的早期关注。请参见
当日论文榜首,
以及 展示 Space。
|
## 演示视频
https://github.com/user-attachments/assets/a92ab49e-bc5c-4e90-8c0a-0f23b08a8857
## 概述
MemSlides 将演示文稿生成视为一个有状态的创作过程,而不是一次性的从源文件到幻灯片的转换任务。它根据生命周期分离个性化信号:持久的用户画像记忆捕获跨任务的常规偏好;工作记忆在多轮修订中保持当前会话的约束;而工具记忆则为可靠的局部编辑存储可重用的执行经验。
长期记忆存储了用于首轮(round-0)个性化的意图条件用户画像记忆,以及用于可重用执行经验的工具记忆。工作记忆则在当前文稿中维护活动偏好、会话状态和修订约束。在修订期间,MemSlides 会将用户反馈映射到受影响最小的幻灯片区域,并应用局部范围的补丁,而不是反复重新生成整个文稿。
## 核心亮点
- **意图条件用户画像记忆** 根据演示意图路由个性化设置,然后将偏好应用于主题、视觉风格、布局、模板使用、内容策略和常规演示习惯。
- **多轮工作记忆** 在同一文稿的反馈交互中,保留临时偏好、会话约束和编辑状态记录。
- **工具记忆** 在执行类似编辑操作之前检索先前的任务和工具链经验,以减少重复的执行失败。
- **局部范围的幻灯片修订** 更新受影响最小的幻灯片区域,而不是反复重写整个文稿。
## 效果展示
- 用户画像记忆通过将意图匹配的偏好路由到当前任务中,支持具有角色感知的首轮个性化。
- 工作记忆在多轮修订中传递活动会话约束和临时偏好。
- 工具记忆存储可重用的执行经验,以便未来的局部编辑可以避免重复失败。
- 局部范围的修订使编辑范围尽可能贴近所请求的元素,减少已对齐幻灯片内容中意外的偏移。
## 快速开始
从源码安装:
```
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
```
运行内置的 smoke 测试套件:
```
python -m memslides.experiment run smoke_minimal \
--output-base .memslides/experiments \
--parallel 1
```
同样的实验也可以在 Docker 环境中运行:
```
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` 只是一个小型的验证套件。用户可以将任何本地的套件 YAML 路径或打包的套件名称传递给 `python -m memslides.experiment run`。
## 配置说明
MemSlides 进行实际的生成实验时,需要用户提供模型和服务凭证。请将凭证保存在 git 之外,并通过环境变量、`.env` 文件或使用 `MEMSLIDES_CONFIG_FILE` 或 `--config` 指定的私有 YAML 文件来提供。
打包的公共配置文件是 `src/memslides/memslides.yaml`;当加载该 YAML 文件时,其中的占位符会从当前进程的环境中扩展获取。
请勿提交生成的输出、缓存、私有 YAML 文件和凭证。
使用私有 YAML 文件进行 Docker 运行:
```
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
```
该覆盖配置将 `./memslides.private.yaml` 映射到 `/run/secrets/memslides.private.yaml`,并在容器内部设置 `MEMSLIDES_CONFIG_FILE=/run/secrets/memslides.private.yaml`。
## 实验 CLI
套件运行器(suite runner)是主要的公共入口点:
```
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
```
核心的生成、修订和模板归纳命令仍可用于本地脚本执行:
```
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
```
## 安全与隐私
- 请将 API 密钥保存在环境变量、`.env` 文件或私有 YAML 文件中。
- 请勿提交 `.env`、`.memslides/`、生成的工作区或私有配置文件。
- 网络获取是可选的,并取决于用户提供的搜索或模型凭证。
- 在展示之前,应审查外部 URL 和下载的资产。
## 引用
如果您觉得 MemSlides 有用,请引用我们的论文。
```
@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](LICENSE) 和 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)。
标签:AI智能体, GNU通用公共许可证, MITM代理, Node.js, Python, 个性化, 多轮对话, 文档生成, 无后门, 特征检测, 记忆系统, 请求拦截, 逆向工具