PPTAgent: Präsentationen aus einem Agentenlauf statt aus einem Template
An Agentic Framework for Reflective PowerPoint Generation
Auf einen Blick
- Was ist das?
- Das Projekt der ICIP-CAS-Gruppe erzeugt PPTX-Dateien über einen agentischen Workflow mit Sandbox, MCP-Tools und einem eigenen feinabgestimmten 9B-Modell. Der Ansatz ist interessant für alle, die den Layoutzwang klassischer Generator-Tools umgehen wollen, aber er bringt einen echten Modell- und Umgebungsaufwand mit.
- Für wen ist es gedacht?
- Sinnvoll ist PPTAgent für Teams, die PPTX als Build-Artefakt eines agentischen Laufs behandeln und bereit sind, ein 9B-Modell selbst zu betreiben. Wer nur schnell ein Deck aus Stichpunkten braucht, ist mit python-pptx besser bedient, weil dort kein Modell, keine Sandbox und kein MCP-Server im Weg stehen.
- Darf ich es kommerziell nutzen?
- Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
- Wird es noch gepflegt?
- Ja. Die letzten Commits kamen vor 1 Tag.
- In welcher Sprache ist es geschrieben?
- Hauptsächlich Python, laut der Sprachstatistik von GitHub.
Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.
TIEFGEHENDE OPEN-SOURCE-ANALYSE
Welches Problem PPTAgent überhaupt adressiert
Die meisten Werkzeuge, die aus Text eine Präsentation machen, arbeiten mit einem festen Satz an Layouts. Man füllt Platzhalter, das Ergebnis sieht ordentlich aus und ähnelt jedem anderen Deck, das dasselbe Werkzeug produziert hat. PPTAgent geht einen anderen Weg: Das Repository beschreibt ein agentisches Framework, in dem ein Modell Werkzeuge aufruft, um Inhalte zu recherchieren, Assets zu erzeugen und daraus eine PPTX-Datei zu bauen. Die Zielgruppe sind damit nicht Anwender, die eine Folie mit Titel Hello World brauchen, sondern Entwickler und Forschende, die den Generierungsprozess selbst steuern wollen. Das Projekt stammt aus der ICIP-CAS-Gruppe, ist in Python geschrieben und steht unter MIT. Es gibt drei veröffentlichte Versionen, v0.1.0 im April 2025, v0.2.0 im Oktober 2025 und v2.0.0 im Dezember 2025, die laut Release-Notizen DeepPresenter integriert. Die zugehörige Arbeit zu PPTAgent wurde laut README auf der EMNLP 2025 angenommen, die Arbeit zu DeepPresenter laut News-Eintrag auf der ACL 2026.
Agentenumgebung, Sandbox und zwanzig Werkzeuge
Der Kern von v2.0.0 ist eine Agentenumgebung mit Sandbox und mehr als zwanzig Tools, wie die Release-Notizen vom Dezember 2025 festhalten. Dazu kommen Deep Research Integration, freie visuelle Gestaltung, autonome Asset-Erstellung und Text-zu-Bild-Generierung. Der Datenfluss lässt sich aus der Konfiguration ablesen: Ein Lauf zieht über MCP-Server externe Dienste hinzu, etwa Tavily für die Websuche und MinerU für das Parsen von PDFs. Die Sandbox kapselt die Ausführung, die Tools liefern Inhalte und Bilder zurück, und am Ende steht eine PPTX-Datei. Bemerkenswert ist, dass die Asset-Erstellung nicht auf einen festen Bildkatalog zurückgreift, sondern Bilder generieren kann; das t2i_model wird in deeppresenter/config.yaml gesetzt. Ein weiterer Punkt, der in den Release-Notizen auftaucht: Kontextmanagement soll verhindern, dass der Kontext überläuft. Das ist bei einem mehrstufigen Agentenlauf mit vielen Tool-Aufrufen keine Nebensache, sondern die Voraussetzung dafür, dass lange Decks überhaupt durchlaufen.
Installation über uvx und die Konfigurationsdateien
Der schnellste Weg führt über die CLI. Das README zeigt die Installation von uv per curl-Skript, danach den interaktiven Erstlauf mit uvx pptagent onboard. Dieser Befehl legt die Konfiguration an und aktualisiert sie. Wer stattdessen Docker Compose nutzt oder aus dem Quellcode baut, kopiert die Beispieldateien selbst: cp deeppresenter/config.yaml.example deeppresenter/config.yaml und cp deeppresenter/mcp.json.example deeppresenter/mcp.json. Ein einfacher Lauf sieht so aus: uvx pptagent generate "Single Page with Title: Hello World" -o hello.pptx. Mit Anhängen wird es konkreter, das README nennt uvx pptagent generate "Q4 Report" mit den Optionen -f data.xlsx, -f charts.pdf, -p "10-12" und -o report.pptx, wobei -p offenbar den Seitenbereich angibt. Für die Qualität sind drei optionale Dienste relevant. Tavily verbessert die Websuche, der Schlüssel gehört als TAVILY_API_KEY in deeppresenter/mcp.json. MinerU verbessert das PDF-Parsing, entweder über MINERU_API_KEY oder über eine lokal betriebene Instanz mit MINERU_API_URL. Für einen vollständig offline arbeitenden Aufbau empfiehlt das README, MinerU lokal zu deployen und offline_mode: true in deeppresenter/config.yaml zu setzen, damit netzabhängige Werkzeuge wie die Websuche gar nicht erst geladen werden. Weitere Variablen liegen laut README in deeppresenter/utils/constants.py.
Das Modell ist Teil der Installation, nicht ein austauschbarer Parameter
Hier liegt der größte Reibungspunkt. Das README empfiehlt ausdrücklich, das feinabgestimmte Modell zu deployen, und verweist auf DeepPresenter-9B in voller oder quantisierter GGUF-Fassung, gehostet auf HuggingFace und ModelScope. Die Begründung im Text lautet, das Modell übertreffe bestehende Open-Source-Modelle deutlich. Diese Aussage stammt aus dem Projekt selbst und ist ohne die zitierte Arbeit nicht unabhängig überprüfbar. Wer den Agenten mit einem anderen Modell betreibt, verlässt den Pfad, für den das Projekt optimiert wurde, und muss mit anderen Ergebnissen rechnen. Ein 9B-Modell lokal zu betreiben ist kein Nebenaspekt: Es braucht passende Hardware, und die quantisierte Variante ist genau deshalb vorhanden. Wer PPTAgent ohne eigene GPU einsetzen will, hängt an einem externen Inferenzdienst und damit an Netzwerk und Kosten. Die Sandbox und die über zwanzig Werkzeuge kommen als zweiter Aufwandsposten hinzu.
Plattformgrenzen und der Windows-Fallstrick
Die deutlichste Einschränkung steht ganz oben in der Usage-Sektion: Windows wird nicht unterstützt, Anwender sollen WSL verwenden. Das ist keine Formalie. Die CLI installiert auf macOS laut Hinweis automatisch mehrere lokale Abhängigkeiten, darunter Homebrew, Node.js, Docker, poppler, Playwright und llama.cpp. Auf Linux muss die Umgebung selbst vorbereitet werden. Ein Werkzeug, das beim Erstlauf Paketmanager und Container-Runtime anfasst, ist in einer kontrollierten Unternehmensumgebung erklärungsbedürftig. Dazu kommt der Hinweis, mit der CLI und einer minimalen Aufgabe zu beginnen, um Abhängigkeiten und Umgebung zu prüfen. Das README formuliert das als dringende Empfehlung, was als Eingeständnis gelesen werden kann, dass der Einstieg andernfalls schnell an fehlenden Bestandteilen scheitert. Für einen reinen Offline-Betrieb bleibt zudem die Frage, wie gut die Ergebnisse ohne Tavily und ohne Netzwerk ausfallen, denn beide Dienste werden ausdrücklich als qualitätsverbessernd beschrieben.
MCP-Server als Integrationspfad
Seit September 2025 unterstützt das Projekt einen MCP-Server, die Konfiguration ist in PPTAgent/DOC.md unter MCP Server beschrieben. Das ist der sauberere Weg für alle, die PPTAgent nicht als Kommandozeilenwerkzeug, sondern als Dienst in eine bestehende Agentenlandschaft einhängen wollen. Der Unterschied zur CLI ist praktisch: Statt einen Prozess mit Argumenten aufzurufen, spricht ein anderer Agent über das MCP-Protokoll mit PPTAgent und kann die Generierung als Werkzeug behandeln. Das verschiebt die Verantwortung für Konfiguration und Modellwahl auf den Betreiber des Servers, was in größeren Setups die Wartung vereinfacht. Der Preis ist eine zusätzliche Komponente, die laufen muss, und eine Konfigurationsdatei mehr, die gepflegt werden will.
Alternative: python-pptx und der Unterschied im Ansatz
Die naheliegende Alternative ist python-pptx. Diese Bibliothek erzeugt PPTX-Dateien deterministisch: Man beschreibt Formen, Textrahmen und Positionen im Code, und das Ergebnis ist bei gleichem Input reproduzierbar. Es gibt kein Modell, keinen Prompt, keine Sandbox und keine Netzwerkabhängigkeit. Der Unterschied liegt genau dort, wo PPTAgent seinen Wert sieht. python-pptx kann nicht recherchieren, keine Bilder generieren und keine Struktur aus einem PDF-Anhang ableiten. Dafür liefert es immer dasselbe Ergebnis, kostet keine Inferenzzeit und lässt sich in jeder CI-Umgebung ohne GPU ausführen. Wer die inhaltliche Arbeit selbst macht und nur das Zusammenbauen automatisieren will, fährt mit python-pptx günstiger. PPTAgent ist dann sinnvoll, wenn die inhaltliche Arbeit Teil des Automatisierungsziels ist.
Wartung, Lizenz und was vor der Adoption zu prüfen ist
Das Repository ist nicht archiviert, der letzte Push datiert auf September 2026, und zwischen v0.1.0 und v2.0.0 liegen weniger als neun Monate. Diese Geschwindigkeit bedeutet, dass sich Konfigurationsschlüssel und Aufrufe zwischen Versionen verschieben können; die Trennung von config.yaml, mcp.json und constants.py ist bereits ein Hinweis darauf, wo Anpassungen anfallen. Der Code steht unter MIT, was die kommerzielle Nutzung und Änderung erlaubt, solange Lizenz- und Copyright-Hinweis erhalten bleiben. Diese Einschätzung ist keine Rechtsberatung. Wichtig ist die Trennung: Die DeepPresenter-9B-Gewichte werden separat über HuggingFace und ModelScope verteilt und sind nicht automatisch von der MIT-Lizenz des Repositories abgedeckt. Wer das Modell produktiv einsetzt, muss die dort angegebene Lizenz eigenständig prüfen. Vor der Adoption sollte man außerdem klären, ob die im README gezeigten Aufrufe für onboard und generate die eigene Umgebung treffen, ob der MCP-Serverpfad aus PPTAgent/DOC.md zum vorhandenen Agentenstack passt und ob ein lokaler Betrieb des 9B-Modells auf der vorhandenen Hardware realistisch ist.
Redaktionelles Fazit
Sinnvoll ist PPTAgent für Teams, die PPTX als Build-Artefakt eines agentischen Laufs behandeln und bereit sind, ein 9B-Modell selbst zu betreiben. Wer nur schnell ein Deck aus Stichpunkten braucht, ist mit python-pptx besser bedient, weil dort kein Modell, keine Sandbox und kein MCP-Server im Weg stehen. Vor dem Adoptionsentscheid sollte man prüfen, ob die im Repo dokumentierten Beispielaufrufe für generate und onboard die eigene Umgebung treffen und ob der Lizenzhinweis MIT auch für die separat verteilten DeepPresenter-Gewichte gilt.
Community-Notizen