pptx Skill:讓 AI Agent 真正會寫 PowerPoint

前言

週報、彙報、路演——職場裏繞不開演示文稿。.pptx 看着像普通文件,打開卻是 ZIP 包裏的 XML、關係表、媒體資源,結構複雜。讓 AI 直接「生成一份 PPT」往往只能得到 Markdown 大綱,或者產出一個 PowerPoint 打不開的損壞文件。

Anthropic 在官方倉庫 anthropics/skills 裏維護了一套文檔類 Agent Skill,其中 pptx 專門處理 PowerPoint 演示文稿(.pptx / .potx)。它把創建、編輯、讀取、模板填充、校驗等流程寫進 SKILL.md,並附帶 Python / Node 腳本,是觀察 Agent 處理複雜 Office 格式能力邊界的一個典型樣本。

這是什麼

pptx 是 Anthropic 出品的 Agent Skill,遵循通用 SKILL.md 格式,可在 Cursor、Claude Code、Claude.ai 等支持 Agent Skills 的工具中使用。

一句話定位:只要任務涉及 .pptx.potx——新建幻燈片、讀取內容、改模板、合併拆分、處理演講者備註——Agent 都應加載這個 Skill,而不是憑通用知識硬寫。

該 Skill 位於官方倉庫 skills/pptx/ 目錄,與 docx、pdf、xlsx 同屬「文檔技能」系列;許可爲 source-available(非 Apache 2.0 開源),詳見目錄內 LICENSE.txt

核心功能與亮點

官方 SKILL.md 把任務分成三條主線,並配套腳本與校驗流程:

任務 推薦方式
從零創建 pptxgenjs 寫 Node 腳本生成
編輯已有文件 / 基於模板 解壓 → 改 ppt/slides/slideN.xml → 重新打包
讀取內容 markitdown deck.pptx 提取文本;thumbnail.py 生成縮略圖網格

1. 創建演示文稿

通過 pptxgenjs 腳本生成 .pptx,Skill 文檔詳細列出了常見踩坑:畫布尺寸要先設 pres.layout、顏色不能帶 #、陰影 offset 不能爲負、圖表要用原生 addChart() 等。生成後需運行 validate.py 做結構校驗。

2. 編輯與模板

.pptx 本質是 ZIP。官方流程是解壓、用 add_slide.py 複製/插入幻燈片、編輯 XML、用 clean.py 清理孤兒資源,最後在解壓目錄內打包。基於 .potx 模板時,流程相同,輸出保持 .potx 擴展名即可。

Skill 還強調設計規範:配色要有主題感、避免千篇一律的標題+ bullet、每頁應有視覺元素,並附有多套參考色板與排版建議——這些是給 Agent 的「審美約束」,不是空泛 prompt。

3. 讀取與分析

markitdown 按幻燈片塊輸出文本,適合摘要與 QA;scripts/thumbnail.py 生成帶標籤的縮略圖網格,便於在模板裏挑選佈局。

4. 配套腳本

腳本 作用
scripts/thumbnail.py 生成幻燈片縮略圖網格
scripts/add_slide.py 複製/插入幻燈片並完成關係註冊
scripts/clean.py 刪除無引用的幻燈片、媒體與 rels
scripts/office/validate.py 校驗 schema、關係、圖表等,失敗時給出修復提示
scripts/office/soffice.py LibreOffice 無頭轉換(如轉 PDF)

5. 三重 QA

官方要求:內容 QA(markitdown + 佔位符 grep)、文件 QA(validate.py,模板場景加 --original)、視覺 QA(轉 PDF 再 pdftoppm 逐頁檢查溢出與對齊)。這套流程說明該 Skill 面向「能交付的文件」,而非僅生成代碼。

安裝與啓用

Skill 本體是一個目錄:內含 SKILL.mdscripts/。各工具啓用方式如下(以官方文檔爲準)。

Cursor

pptx 目錄放到項目或用戶級技能路徑,Cursor 啓動時會自動發現:

# 項目級(隨倉庫共享)
git clone --depth 1 https://github.com/anthropics/skills.git /tmp/anthropics-skills
cp -r /tmp/anthropics-skills/skills/pptx .cursor/skills/pptx

# 或用戶級(所有項目可用)
mkdir -p ~/.cursor/skills
cp -r /tmp/anthropics-skills/skills/pptx ~/.cursor/skills/pptx

目錄結構應爲 .cursor/skills/pptx/SKILL.md。Agent 會根據 frontmatter 裏的 description 自動匹配;也可在對話裏輸入 /pptx 顯式調用。

Cursor 還支持 Rules → Add Rule → Remote Rule (Github),填入 https://github.com/anthropics/skills 從遠程倉庫導入技能(參見 Cursor 官方 Skills 文檔)。

Claude Code

在 Claude Code 中註冊官方插件市場並安裝文檔技能集:

/plugin marketplace add anthropics/skills
/plugin install document-skills@anthropic-agent-skills

安裝後可直接說:「用 pptx skill 根據這份大綱生成 10 頁路演 deck」。

Claude.ai 與 API

Anthropic 文檔說明:倉庫中的示例 Skill 對已付費 Claude.ai 用戶可用;自定義 Skill 上傳方式見 Using skills in Claude。API 側可通過 Skills API 掛載預置或自定義 Skill。

依賴環境

Skill 聲明的運行時依賴包括:

  • Nodepptxgenjs(環境預裝,僅在 require 失敗時再 npm install
  • Pythonmarkitdown[pptx]Pillowdefusedxmllxml
  • 系統:LibreOffice(soffice)、Poppler(pdftoppm

腳本路徑相對於 Skill 目錄;若只複製了 SKILL.md 而沒有 scripts/,編輯與校驗能力會不完整,建議整目錄拷貝。

典型用法示例

示例 1:讀取現有演示文稿

markitdown deck.pptx
python scripts/thumbnail.py deck.pptx my-deck-thumbs

第一句提取每頁文本;第二句生成縮略圖,便於 Agent 理解版式。注意 thumbnail.py 的第二個參數是輸出前綴,同一目錄下多次運行默認前綴 thumbnails 會互相覆蓋。

示例 2:基於模板編輯並重新打包

python3 -c "import sys,zipfile; zipfile.ZipFile(sys.argv[1]).extractall('unpacked')" deck.pptx
python scripts/add_slide.py unpacked/ slide2.xml --after slide2.xml
# 調整 ppt/presentation.xml 中的 <p:sldIdLst> 可 reorder / delete
python scripts/clean.py unpacked/
# 編輯 ppt/slides/slideN.xml 中的內容
(cd unpacked && rm -f ../out.pptx && zip -Xr ../out.pptx .)
python scripts/office/validate.py out.pptx --original deck.pptx

官方強調:結構變更(增刪頁、排序)應放在內容編輯之前;不要用 xml.etree round-trip OOXML,應使用 defusedxml.minidom 解析,避免命名空間被破壞。

示例 3:從零創建並校驗

Agent 會編寫 pptxgenjs 腳本,例如設置寬屏佈局、添加標題與圖表,然後:

node generate-deck.js
python scripts/office/validate.py deck.pptx

若校驗報錯(常見如組合圖 secondary 軸未聲明、堆疊圖 dataLabelPosition 用了 outEnd),應在生成腳本里修復後重新生成,而不是手改打包後的 XML。

示例 4:視覺 QA

python scripts/office/soffice.py --headless --convert-to pdf output.pptx
rm -f slide-*.jpg
pdftoppm -jpeg -r 150 output.pdf slide

將 PDF 再轉爲逐頁 JPEG,檢查文字溢出、元素重疊、低對比度等問題。修改 .pptx 後需重新跑完整轉換鏈。

適用場景與注意事項

適合誰

  • 需要 Agent 批量生成或改版 PPT 的產品、運營、研發同學
  • 想在 Cursor / Claude Code 裏把「寫材料」自動化進 CI 或內部工具鏈的團隊
  • 研究 Agent 如何處理 OOXML、如何做文件級 QA 的開發者

典型場景

  • 根據大綱或數據生成 pitch deck、培訓課件
  • 讀取客戶發來的 .pptx 做摘要、改稿、換模板
  • 基於企業 .potx 品牌模板填充內容並保留版式
  • 合併、拆分、複製幻燈片並清理無用媒體

限制與注意

  1. 許可:pptx Skill 爲 source-available,商用前請閱讀 LICENSE.txt
  2. Legacy .ppt:需先用 soffice.py 轉爲 .pptx 再處理。
  3. python-pptx 邊界:官方指出它不能複製幻燈片、直接改 text_frame.text 會丟樣式、無法讀 SVG/EMF 模板圖——複雜結構應走 XML 流程或自帶腳本。
  4. 字體與 QA:LibreOffice 預覽與真實 PowerPoint 字體度量可能不一致;正文建議用 Arial、Calibri 等「安全字體」,非安全字體需留約 10% 餘量。
  5. 環境:依賴 LibreOffice、Node、Python 包;沙箱環境需用 Skill 自帶的 soffice.py 包裝,避免 bare soffice 掛起。

小結

pptx Skill 把 PowerPoint 從「AI 只會描述幻燈片」推進到「能創建、能改、能讀、能驗」的完整鏈路:創建走 pptxgenjs,編輯走 OOXML,質量靠 validate.py 與視覺 QA。對職場演示文稿這種剛需場景,它同時也是觀察 Agent 駕馭複雜二進制文檔格式的一個官方參考實現。

官方目錄與完整 SKILL.md:

https://github.com/anthropics/skills/tree/main/skills/pptx

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜