PPTAgent / DeepPresenter
A reflective agent framework that generates and exports PowerPoint presentations from prompts and attached materials.
Per-dimension scores and reasoning
Evidence shows: project uses Docker sandbox for isolated tool execution, offers offline mode, but does not explicitly follow least privilege; CLI generate command has no user confirmation step; data flow transparency is limited, only mentions config files and API keys; sensitive data handling not mentioned; many dependencies without security audit; external effects include web search and file generation, but side effects not explicit; no rollback mechanism; source attribution has contributor list and citations, but publisher unverified. Deductions: missing user confirmation, sensitive data handling, dependency security, rollback.
Evidence shows: project has test files (test_apis.py, conftest.py), but tests depend on external models and APIs, no complete test results; many dependencies from external services (Tavily, MinerU), availability depends on external; failure messages not explicit in docs. Deductions: missing failure messages, limited test coverage.
Evidence shows: README provides multiple usage scenarios (CLI, Docker, source), supports multiple languages, but capability boundaries not explicit; trigger precision moderate, CLI commands clear but internal triggers not detailed; environment fit limited, only Linux/macOS, Windows not supported. Deductions: insufficient capability boundaries and trigger precision.
Evidence shows: README well-structured, provides install instructions, examples, case studies, MIT license, but lacks explicit version changelog and known limitations; naming stable but version dynamic; maintenance responsibility has contributor list but no clear maintainer. Deductions: missing version changelog and known limitations.
Evidence shows: output is PPTX file, directly usable; provides case studies, but no cost-benefit analysis; marginal value high, but depends on external services and models, cost may be high. Deductions: missing cost-benefit analysis.
Evidence shows: README cites papers and models, but no detailed experimental data; cross-source verification limited, relies on own claims; facts and inferences not clearly separated. Deductions: insufficient separation of facts and inferences.
- Publisher unverified, identity unknown, handle with caution.
- Many dependencies including external services, be aware of supply chain security.
- Windows not supported, limited environment fit.
- Lack of user confirmation and rollback, operate with caution.
What does this agent do, and when should you use it?
The PPTAgent repository currently presents DeepPresenter, an agentic framework for presentation generation. It offers a local CLI, a web UI, Docker Compose deployment, and a sandbox runtime for isolated tool execution. Users can call `pptagent generate` with a prompt and attachments such as XLSX or PDF files to produce a `.pptx` file. The project also documents MCP server configuration and an offline path using locally deployed MinerU with `offline_mode: true` to avoid network-dependent tools.
pptagent onboard interactively creates or updates configuration, while pptagent generate accepts a presentation request, -f attachments, an optional -p page range, and an -o output path to generate a PowerPoint file. Source deployments use deeppresenter/config.yaml and deeppresenter/mcp.json; optional integrations include Tavily for web search, MinerU for PDF parsing, and a text-to-image model configured through t2i_model. Development mode runs with python webui.py; server mode runs with docker compose up -d and exposes the web UI at http://localhost:7861. The deeppresenter-host image provides the web UI and orchestration runtime, while deeppresenter-sandbox provides isolated tool execution; source builds also install Node dependencies in deeppresenter/html2pptx.
- A researcher who needs to turn a document into a presentation can provide the material and generate a PPTX.
- A business user preparing a quarterly report can pass
data.xlsxandcharts.pdftopptagent generate. - An individual who wants a quick title slide can run
uvx pptagent generate "Single Page with Title: Hello World" -o hello.pptx. - A team that needs a self-hosted presentation-generation interface can deploy the host service and sandbox runtime with Docker Compose.
- An operator handling materials without internet access can deploy MinerU locally and enable
offline_mode: true.
What are this agent's strengths and limitations?
- It provides three delivery paths—CLI, source-based web UI, and Docker Compose—covering personal and server deployments.
- The CLI accepts multiple attachments, a page range, and an explicit PPTX output path for document- and data-driven presentation workflows.
- The runtime separates orchestration and isolated tool execution into the
deeppresenter-hostanddeeppresenter-sandboximages. - It documents MCP server configuration plus optional Tavily, MinerU, and text-to-image integrations for quality improvements.
- Windows is unsupported; Windows users must use WSL.
- Source setup requires Docker, Playwright, Chromium, Node.js dependencies, and image preparation, which adds environment setup overhead.
- Web search and hosted MinerU require network access and their respective API keys; offline mode requires a locally deployed MinerU instance.
- The project strongly recommends its fine-tuned DeepPresenter model for the best experience, while the supplied material does not provide a complete credential or provider-compatibility matrix for the core model.
How do you install or deploy this agent?
For first-time configuration, use the documented CLI flow:
uvx pptagent onboardThen generate a first file:
uvx pptagent generate "Single Page with Title: Hello World" -o hello.pptxFor source development, the documented steps include:
uv pip install -e .
playwright install-deps
playwright install chromium
npm install --prefix deeppresenter/html2pptxPrepare configuration files with:
cp deeppresenter/config.yaml.example deeppresenter/config.yaml
cp deeppresenter/mcp.json.example deeppresenter/mcp.jsonTavily and MinerU are optional. When using their hosted services, set TAVILY_API_KEY or MINERU_API_KEY respectively in deeppresenter/mcp.json. The supplied material does not enumerate the precise credential fields required for core model configuration.
How do you use this agent?
After pptagent onboard, submit a request with pptagent generate and choose an output file. For example:
uvx pptagent generate "Q4 Report" -f data.xlsx -f charts.pdf -p "10-12" -o report.pptxTo run the source web UI, execute python webui.py. For server deployment, prepare or build the deeppresenter-host and deeppresenter-sandbox images, then run docker compose up -d; the web UI is available at http://localhost:7861. For offline operation, set offline_mode: true and deploy MinerU locally.
FAQ
Is the fine-tuned DeepPresenter model mandatory?
Can it run offline?
offline_mode: true in deeppresenter/config.yaml to avoid loading network-dependent tools such as web search.What inputs and outputs are supported?
-f attachments, and an optional -p page range; the examples use XLSX and PDF attachments and write a .pptx output.