huohua325/Memslides
A hierarchical memory framework for personalized presentation agents. Try it at memslides.com.
MemSlides – 具備分層記憶的個人化簡報生成 Agent
是什麼 – MemSlides 是一個開源框架,讓你可以建立一個用於製作 PowerPoint 風格簡報的 stateful AI 助手。系統並非一次性生成整個簡報檔,而是維護了幾層記憶:
| Memory layer | Purpose |
|---|---|
| User‑profile memory | 儲存與簡報意圖相關的長期偏好(風格、佈局、語氣)。 |
| Working memory | 持有會話特定的限制與暫時性偏好,這些偏好會在多輪修改中持續存在。 |
| Tool memory | 記住過去的工具鏈執行情況(例如:渲染、圖片搜尋),因此不會不必要地重複相同的操作。 |
當使用者提供回饋時,MemSlides 會將該回饋投影到受影響的最小投影片區域,並僅對該部分進行修補,從而避免重新生成整個簡報檔。
Key Features (如 README 所述)
- Intent‑conditioned personalization – Agent 首先選擇與簡報意圖相符的使用者設定檔切片,然後套用細粒度的風格與內容偏好。
- Multi‑turn revision – Working memory 會保留暫時性的修改與限制,實現與使用者之間的流暢來回互動。
- Tool memory – 快取成功的工具鏈執行結果(例如:圖片生成、佈局渲染),以防止重複失敗。
- Scoped slide‑local revision – 僅更新使用者要求修改的投影片區域,減少簡報檔其餘部分的非預期性偏移。
- CLI entry points – 提供
memslides generate、memslides revise與memslides template induct用於腳本化使用,此外還有實驗執行器 (python -m memslides.experiment)。 - Docker support – Docker Hub 上提供預建的映像檔;可以在容器內執行 smoke-test 套件。
- Research‑oriented – 包含可重複性套件 (
smoke_minimal) 以及為配套 arXiv 論文所進行的一整套實驗。
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]"(加入選用的研究用途擴充功能)。 - Set up Playwright –
python -m playwright install chromium ffmpeg(用於 web‑based 工具服務所需的安裝)。 - 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 (README 中的範例)
- Generate a deck:
python -m memslides generate \ --instruction "Create a one‑slide project summary" \ --num-pages 1 - Revise a slide (在先前的生成結果之後):
python -m memslides revise \ --workspace .memslides/session \ --feedback "Tighten the title" - Induct a template (教導系統一個新的 PPTX 佈局):
python -m memslides template induct --template-file template.pptx
Project Structure (高層級結構)
src/memslides/– 核心執行時碼與公開進入點。src/memslides/memory/– Profile, working, 與 tool memory 的實作。- ``src/memslides/experiment/` – 用於重現論文實驗的腳本。
tests/– 回歸測試與合約測試。.memslides/&~/.cache/memslides/– 執行時工作空間、快取與生成的產出物 (Git 不會追蹤這些內容)。
Security & Privacy Notes
- API keys 與其他憑證必須透過環境變數、
.env檔案或私有的 YAML config 進行提供;絕不應將其提交至版本控制。 - 網路存取是選配的,且僅在使用者提供搜尋或模型服務的憑證時才會發生。
- 建議使用者在簡報前檢視任何下載的外部資產。
Citation
如果在研究中使用 MemSlides,請引用 README 中提供的 arXiv 論文 (2026)。
License
Apache‑2.0 (見 LICENSE).
Bottom line – MemSlides 是一個全棧、研究等級的框架,用於建立 LLM 驅動的 agent,透過分層記憶來保持個人化的一致性並使修改過程局部化,從而生成並迭代式地編輯簡報投影片。
相關
- 專案
- 專案
- 專案
- 專案
- 專案