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 generatememslides revisememslides template induct 用於腳本化使用,此外還有實驗執行器 (python -m memslides.experiment)。
  • Docker support – Docker Hub 上提供預建的映像檔;可以在容器內執行 smoke-test 套件。
  • Research‑oriented – 包含可重複性套件 (smoke_minimal) 以及為配套 arXiv 論文所進行的一整套實驗。

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]" (加入選用的研究用途擴充功能)。
  4. Set up Playwrightpython -m playwright install chromium ffmpeg (用於 web‑based 工具服務所需的安裝)。
  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 (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,透過分層記憶來保持個人化的一致性並使修改過程局部化,從而生成並迭代式地編輯簡報投影片。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案