name: ppt-design-flow description: PPT專業製作技能——從需求對齊到可編輯.pptx交付的完整協作工作流。覆蓋需求分析、資料來源確認、圖片獲取(使用者提供/AI生成/網路下載)、素材搜尋、大綱設計、逐頁版式選擇(42種版式)、129種設計技法自由組合、風格×配色自由搭配(10風格×20配色)、HTML預覽驗證、原生PPTX生成、動畫設計、輸出分享全流程。適用於公眾號配圖、工作彙報、產品介紹、教學課件、品牌宣傳等任意PPT製作場景。觸發詞:做PPT、製作PPT、生成PPT、PPT製作、簡報、幻燈片、做個PPT。 agent_created: true disable: false
本技能封裝了PPT製作的完整協作工作流:從需求對齊、資料來源確認、圖片獲取、素材搜尋、大綱設計、逐頁版式選擇到原生可編輯PPTX交付。核心原則是協作模式——分步與使用者確認,關鍵決策由使用者做主,不一口氣從頭做到尾。
技能內建 129種設計技法(11大類)、42種版式型別、10種風格定位×20套配色方案自由組合,支援技法自由組合,適用於任意主題和場景。
如果你是第一次用這個技能,整個流程可以濃縮為5個關鍵步驟:
第1步 · 需求對齊 定風格、定配色、定篇幅、問模板
第2步 · 大綱設計 分模組、定結構、確認邏輯順序
第3步 · 逐模組設計 生成帶內容的預覽 → 你選版式 → 確認/修改
第4步 · 全頁確認 所有模組完成後過一遍整體效果
第5步 · 交付輸出 選格式:原生PPTX / 截圖PPTX / PDF
每一步都必須等你確認後才繼續,不會跳步、不會自作主張。
快速跳轉: 如果你只想用某個環節(比如"我已經有大綱和配色了,直接做版式"),直接告訴我就行,我會從對應步驟開始,不重做前面的工作。
不同需求複雜度,入口不同。說出你的需求,技能會自動跳到對應的起點:
| 你的話 | 自動跳到 | 說明 |
|---|---|---|
| "幫我做個PPT" / "做PPT" / "生成簡報" | 第1步:需求對齊 | 全新專案,從頭聊需求 |
| "做個科技風的PPT,15頁,內容我發你" | 第1步:需求對齊(跳過風格提問) | 已經帶了明確規格,只問不確定的部分 |
| "已經有配色和大綱了,直接做版式" | 第3步:逐模組設計 | 跳過需求對齊和大綱,直接用已有內容出預覽 |
| "已經有HTML預覽檔案,幫我生成PPTX" | 第5步:交付輸出 | 只做轉換,不管你之前怎麼做的 |
| "幫我最佳化這幾頁PPT的版式" | 第3步:逐模組設計 | 基於現有PPT內容重新設計版式 |
| "把這個PPT改成XX風格" | 第1步:需求對齊(只問風格/配色) | 換皮不改內容,快速對齊新風格 |
| "給我PPT配個圖" / "幫我找這個PPT的配圖" | Phase 2.5:圖片獲取確認 | 只處理圖片,不動其他 |
以上是常見入口,你說的話不在表裡也沒關係——我會自動判斷從哪開始,不用你自己選。
當用戶提出以下需求時觸發本技能: - "幫我做個PPT" / "製作PPT" / "生成簡報" - "做個幻燈片" / "PPT製作" - 任何涉及建立PowerPoint簡報的任務
絕對不能違反的原則:
1. 協作模式,不要一氣呵成 — 接到任務後分步與使用者確認,不能從頭做到尾
2. 關鍵決策由使用者做主 — 每頁用什麼版式、什麼技巧、什麼風格,拿不準時直接問使用者讓使用者決定,不要自行猜測
3. 每頁提供2-3個版式方案 — 讓使用者選擇,而非自行決定
4. 按模組分批交付,及時調整 — 以模組(3-5頁)為單位分批推進,確認一批做一批,不要等全部做完才發現不滿意
5. 每模組完成後必須用 AskUserQuestion 提示使用者確認 — 展示該模組所有HTML預覽後,必須用 AskUserQuestion 詢問"這批頁面是否OK?哪頁需要調整?",使用者確認後才繼續下一模組。絕不跳過確認步驟,絕不自作主張連續做多模組
6. 左右分欄必須嚴格對稱 — 當頁面內容分成左右兩部分時,左右兩側的視覺高度、頂部對齊、底部對齊必須嚴格一致。使用CSS flex:1 讓左右等高,使用 justify-content 控制內部分佈。使用者對左右不對稱非常敏感,這是高頻返工點
7. 交付可編輯的.pptx檔案 — HTML只是預覽手段,最終必須交付原生PowerPoint檔案
8. 資料來源必須確認 — 涉及資料內容時,必須先確認資料來源(上傳檔案/手填/搜尋/連結提取等)
9. 圖片來源必須確認 — 涉及配圖時,必須確認圖片來源(使用者提供/AI生成/網路下載/截圖處理)
10. 每次給選項必須留自定義口子 — 提供風格、配色、版式、資料來源、圖片來源等任何選項時,都要明確告知使用者"以上選項不滿意可以自己定義"。使用者的想法優先於預設選項,不要把使用者框死在給定的選項裡
11. 重操作交給子代理,主對話保持輕量 — HTML建立、版式預覽生成、PPTX指令碼生成等重操作通過Agent子代理完成,主對話只做AskUserQuestion、present_files等輕量操作,避免上下文膨脹
這個技能能做什麼、不能做什麼,一目瞭然,避免預期錯位:
| 能力 | 狀態 | 補充說明 |
|---|---|---|
| 從零設計一套PPT(風格/配色/版式) | ✅ 核心能力 | 129種技法×42種版式×10風格×20配色自由組合 |
| 基於使用者模板適配(繼承配色/字型/版式) | ✅ 支援 | 深度適配(全繼承)和輕度適配(只取配色字型)兩種模式 |
| 使用者提供內容大綱 → 轉化為PPT | ✅ 核心能力 | 支援Word/Excel/手寫大綱/口述等多種輸入方式 |
| AI聯網搜尋行業資料填充PPT | ✅ 支援 | 自動標註資料來源,不確定的標註"待確認" |
| AI生成配圖(概念圖/氛圍圖/插畫) | ✅ 支援 | 提示詞自動適配當前風格和配色 |
| 生成可編輯的 .pptx 檔案 | ✅ 輸出格式 | python-pptx 原生生成,文字/形狀/圖表均可編輯 |
| 生成截圖版 PPTX/PDF(100%還原HTML效果) | ✅ 輸出格式 | Playwright 截圖 + Pillow 合成,視覺無損 |
| 匯出為長拼圖/圖片序列 | ✅ 附加 | 用於公眾號配圖、社交媒體等場景 |
| 完整的動畫設計指導 | ✅ 附加 | 切換動畫/物件動畫/平滑切換/觸發器,提供設計建議而非直接注入 |
| Excel原始資料 → 自動生成資料圖表 | ⚠️ 半自動 | 能讀取資料並生成圖表,但複雜資料清洗需使用者預處理 |
| 直接在PPTX中注入複雜CSS漸變/陰影/SVG | ❌ 做不到 | 原生PPTX格式限制,python-pptx只能近似模擬。追求視覺效果請選截圖版 |
| 直接在PPTX中注入平滑切換/複雜動畫 | ❌ 做不到 | python-pptx 不提供動畫API,動畫只能提供設計指導由使用者在PowerPoint中手動新增 |
| 替換複雜PPT模板中所有版式的佔位符 | ❌ 做不到 | 模板越複雜、佔位符巢狀越深,自動化適配越困難。簡單模板可以,複雜模板建議輕度適配 |
| 保持與Adobe Illustrator/Photoshop相同的圖形精度 | ❌ 做不到 | PPT是演示工具不是向量設計工具,複雜圖形會有精度損失 |
| 即時協作/多人同時編輯同一PPT | ❌ 不涉及 | 這是Office 365的雲端能力,與本地PPTX生成無關 |
接到PPT任務後,不要急著動手,先通過提問確認以下關鍵維度:
| 維度 | 需確認的內容 | 常見選項 |
|---|---|---|
| 目標受眾 | PPT給誰看?決定內容深度和表達方式 | 新使用者/有經驗使用者/泛讀者/領導彙報/學生/客戶 |
| 視覺風格 | 整體視覺調性?貫穿全部頁面 | 詳見下方風格定位選項 |
| 配色方案 | 用什麼色調?與風格自由組合 | 詳見下方配色方案選項 |
| 篇幅 | 多少頁?影響資訊密度 | 精簡版8-12頁/標準版15-20頁/深度版25頁+ |
| 內容素材 | 有現成材料嗎? | 使用者提供大綱/AI研究整理/部分內容+AI補充 |
| 使用場景 | PPT用在哪裡? | 公眾號配圖/現場演講/郵件傳送/展臺播放/教學課件 |
| 現成模板 | 有自己的PPT模板嗎? | 無(從頭設計)/有(上傳.pptx或.potx檔案) |
| 頁面比例 | 什麼比例? | 16:9寬屏(預設)/4:3標準/9:16豎版/1:1方形 |
視覺風格定位選項(10種,詳見 references/color-style-guide.md):
| 風格 | 視覺特徵 | 適用場景 |
|---|---|---|
| 深色科技風 | 深色背景+高飽和強調色+光效 | AI/科技/產品釋出/遊戲 |
| 淺色科技風 | 白底+少量強調色+大量留白 | 科技產品(蘋果風格)/SaaS/白皮書 |
| 簡約商務風 | 白底+少量主題色+資料為主 | 商務彙報/諮詢報告/資料分析 |
| 漸變質感風 | 大面積漸變+毛玻璃卡片+精緻裝飾 | 公眾號配圖/品牌宣傳/高階展示 |
| 中國風 | 水墨/書法/傳統色彩+留白意境 | 文化類/政府/傳統節日/教育 |
| 活力卡通風 | 明亮色彩+圓角+插畫/圖示 | 教育/親子/活動營銷/遊戲 |
| 極簡黑白風 | 黑白灰+大量留白+極少裝飾 | 設計/藝術/攝影/高階品牌 |
| 莫蘭迪柔和風 | 低飽和度色彩+柔和質感+文藝氛圍 | 時尚/生活方式/文藝/設計 |
| 資料包告風 | 灰白底+資料視覺化為主+精確資訊 | 資料分析/年度報告/行業研究 |
| 雜誌編輯風 | 大圖+大字標題+網格排版+有節奏感 | 品牌畫冊/產品故事/年度回顧 |
配色方案選項(20套,可與任何風格自由組合):
| 配色方案 | 主色 | 適用情緒 |
|---|---|---|
| 紫藍深空 | #1E1B4B→#312E81 | 神秘/科技/未來 |
| 暗夜深空 | #0F0F23→#1A1A2E | 深沉/賽博/酷炫 |
| 黑金奢華 | #0A0A0A→#171717 | 奢華/高階/精緻 |
| 墨綠暗調 | #064E3B→#022C22 | 自然/沉穩/生態 |
| 深棕暖調 | #44403C→#292524 | 溫暖/復古/厚重 |
| 琥珀金漸變 | #854F0B→#412402 | 高階/溫暖/質感 |
| 純白極簡 | #000000→#1F1F1F | 極致簡約/蘋果風 |
| 清新藍白 | #3B82F6→#1D4ED8 | 清新/科技/信任 |
| 深海藍商務 | #1E3A5F→#0F172A | 專業/穩重/金融 |
| 商務藍灰 | #1E40AF→#1E3A8A | 企業/諮詢/法律 |
| 暖灰簡約 | #374151→#1F2937 | 簡約/中性/專業 |
| 莫蘭迪柔和 | #6B7280→#4B5563 | 柔和/文藝/時尚 |
| 醫療藍綠 | #0891B2→#0E7490 | 醫療/健康/清潔 |
| 中國紅喜慶 | #991B1B→#7F1D1D | 喜慶/傳統/政務 |
| 活力橙黃 | #EA580C→#C2410C | 活力/運動/營銷 |
| 粉紫夢幻 | #C026D3→#A21CAF | 夢幻/少女/創意 |
| 翠綠清新 | #059669→#047857 | 清新/自然/環保 |
| 文藝復古 | #5D4037→#3E2723 | 復古/文化/質樸 |
| 青花藍白 | #1E3A5F→#0C4A6E | 素雅/文人/傳統 |
| 漸變彩虹 | #6366F1→#8B5CF6→#EC4899 | 多元/創意/活力 |
風格×配色自由組合: 風格和配色完全解耦——任何風格可以用任何配色。比如科技風不一定是紫藍色,蘋果的科技風就是純白極簡。詳見 references/color-style-guide.md 中的"風格×配色推薦組合"表。
用 AskUserQuestion 工具一次性提問多個維度,避免反覆打擾使用者。
⚠️ 配色方案必須視覺化預覽(重要): - 選定風格後,必須用 show_widget 渲染配色色板(含主色/輔助色/背景色/文字色/功能色的完整色階 + 一個模擬頁面效果預覽),不能只列文字 - 每次配色提問必須包含一個"換一批配色看看"的選項(label: "換一批配色看看"),讓使用者不滿意可以換 - 如果使用者選"換一批",從20套配色中換5套不同風格的展示,同時保留原始推薦供對比 - 使用者也可能自己描述想要的顏色,直接按要求定製
⚠️ 必須主動詢問模板: 即使使用者沒有提到模板,也要在第一次需求對齊時主動問一句"你有自己的PPT模板嗎?比如公司企業模板、之前做過的PPT、或者買的設計模板"。很多使用者不會主動想到這一點,但如果他有模板,後續的配色/字型/風格選擇都可能被模板決定——提前問了能省掉大量返工。
模板處理(如使用者提供模板):
如果使用者表示有現成模板,執行以下流程(詳見 references/master-template.md 第十一節):
scripts/analyze_template.py 分析模板,提取:主題顏色、字型、頁面比例、可用版式、背景風格、Logo位置當PPT涉及資料內容時(如統計數字、對比資料、趨勢分析等),必須先確認資料來源:
| 資料來源 | 說明 | 操作方式 |
|---|---|---|
| 使用者提供檔案 | 使用者有現成的Excel/CSV/表格檔案 | 請使用者上傳檔案,讀取資料後整理到PPT中 |
| 使用者口述/手填 | 使用者直接提供資料內容 | 用 AskUserQuestion 或讓使用者直接傳送資料 |
| AI聯網搜尋 | 需要行業資料/公開統計資料 | 使用 WebSearch 搜尋可靠資料來源,標註來源 |
| 使用者提供連結 | 使用者給出包含資料的網頁URL | 使用 WebFetch 提取頁面中的資料 |
| 使用者提供截圖 | 使用者給出資料截圖/圖片 | 讀取圖片,提取其中的資料資訊 |
| AI生成示例資料 | 沒有真實資料,用合理示例 | 明確告知使用者是示例資料,建議替換為真實資料 |
| 使用者提供資料庫/文件 | 使用者有資料庫或文件中的資料 | 請使用者匯出相關資料 |
注意事項: - 使用搜索獲取的資料必須標註來源 - 不確定的資料要明確標註"資料待確認" - 涉及敏感資料時提醒使用者脫敏 - 資料視覺化方式(柱狀圖/餅圖/折線圖等)也要讓使用者選擇 - 以上來源選項不滿意,使用者可以自定義資料來源方式
根據PPT主題,可能需要搜尋以下素材(詳見 references/material-sourcing.md):
| 素材型別 | 說明 | 是否需要使用者確認 |
|---|---|---|
| 字型 | 中英文標題/正文字型選擇 | 建議確認 |
| 圖片 | 高質量配圖、背景圖 | 建議確認風格方向 |
| 圖示 | 向量圖示輔助表達 | 通常無需確認 |
| 配色參考 | 參考優秀配色方案 | 已在Phase 1確認 |
| 資料 | 行業資料/統計資料 | 已在Phase 1.5確認 |
素材搜尋原則: - 優先使用免費可商用素材 - 圖片風格要統一(同一種攝影風格/插畫風格) - 圖示風格要統一(線性/面性/雙色) - 字型不超過3種(標題+正文+數字)
當PPT需要配圖時,必須確認圖片來源(詳見 references/image-acquisition.md):
來源於7w4.net。
| 來源 | 說明 | 適用場景 | 需要使用者操作 |
|---|---|---|---|
| 使用者提供 | 使用者已有圖片素材 | 品牌素材、產品截圖、團隊照片 | 上傳圖片檔案 |
| AI生成 | 使用AI影像生成工具建立 | 概念圖、氛圍圖、插畫、抽象背景 | 確認風格方向 |
| 網路下載 | 從免費相簿搜尋下載 | 通用配圖、背景圖、風景照 | 通常無需操作 |
| 截圖處理 | 擷取螢幕內容作為圖片 | 軟體介面、網頁、操作演示 | 提供截圖或確認擷取內容 |
AI生成圖片時:
- 根據PPT風格和配色方案,提供提示詞建議
- 提示詞包含:風格描述+色調描述+主題元素+構圖描述
- 加入"no text"避免AI生成不自然的文字
- 同一PPT中所有AI生成圖片使用相同的風格關鍵詞
- 詳細的提示詞模板和風格關鍵詞速查見 references/image-acquisition.md
確認原則: - 品牌相關圖片優先請使用者提供 - 概念性/氛圍性圖片可以AI生成 - 通用場景圖片可以從相簿下載 - 同一PPT中圖片風格必須統一 - 以上來源選項不滿意,使用者可以自定義圖片來源方式
根據需求研究結果,設計完整的PPT大綱結構:
將大綱以視覺化方式呈現給使用者確認,可用 show_widget 渲染結構框架圖。使用者確認結構後再進入逐頁設計。
常見PPT結構模板: - 問題-方案-收益型:痛點→解決方案→效果→行動號召 - 總分總型:概述→分點展開→總結回顧 - 時間線型:過去→現在→未來 / 步驟1→2→3 - 對比型:Before→After / 方案A vs B - 遞進型:入門→進階→高階 - FAB型:屬性→優勢→利益
內容匯入: 如果使用者有現成的Word文件、Excel資料等,可使用高效匯入方法(詳見 references/content-import.md):
- Word轉PPT(傳送到PowerPoint / 大綱檢視複製)
- Excel匯入(複製貼上 / 插入Excel物件 / 貼上連結同步)
- 批次插入圖片(相簿功能 / 圖片版式)
- 匯入其他幻燈片(重用幻燈片)
按模組分批推進,不以單頁為單位。 一個PPT通常分3-5個模組,每個模組3-5頁。每個模組走以下3步迴圈:
第1步:子代理生成版式方案HTML(1輪)
用Agent子代理為該模組所有頁面直接生成帶真實內容的版式方案HTML。不是做簡化mockup,而是直接填充真實文案、資料、配色,生成可用的完整頁面。每頁2-3個版式方案,全部合併在一個HTML檔案中(如 ppt-previews/module1_preview.html)。
⚠️ 不做"版式預覽"和"正式HTML"兩遍 — 舊流程先做簡化mockup讓使用者選版式,再做正式HTML,導致重複勞動。最佳化後直接生成帶內容的版式方案,使用者選的就是最終版,選完即定稿。
子代理prompt需包含:
- 該模組包含哪些頁面、每頁的內容要點和真實文案資料
- 配色色值、風格規範(字型/圓角/陰影/間距等)
- 從42種版式型別中為每頁選2-3個合適方案
- 每個方案直接用真實內容實現,不是佔位色塊
- 左右分欄必須嚴格對稱(flex:1等高、min-height防溢位)
- 檔案儲存路徑(如 ppt-previews/module1_preview.html)
- 尺寸1280×720px、內聯CSS
- 多個方案合併在一個HTML檔案中,每頁用分隔線和頁碼標註區分(如"P1 方案A"、"P1 方案B")
⚠️ 不要在主對話中用 show_widget 渲染版式SVG — SVG程式碼會永久留在主對話上下文中。版式預覽通過子代理生成HTML檔案 + present_files 展示,程式碼不進入主對話。
⚠️ 合併展示原則 — 預覽面板一次只能開啟1個HTML檔案,因此同模組多頁必須合併在一個HTML檔案中展示。不要每頁一個檔案,否則使用者只能看到第一頁。合併檔案中每頁用分頁容器包裹,頁間間距40px,整體背景#E8E8ED區分頁面。
第2步:使用者選擇+確認(1輪)
用 AskUserQuestion 讓使用者一次性選擇該模組所有頁面的版式方案,並確認。使用者可以: - 為每頁選擇一個方案("P3選C,P4選B,P5選B") - 確認全部通過 - 對某頁提修改意見(如"P6左邊換一下,P7沒問題")
第3步:修改(僅在有修改意見時,1輪)
如使用者對某些頁提了修改意見,用Agent子代理修改對應方案的HTML(從合併檔案中提取選中方案,單獨儲存為每頁一個檔案如 ppt-previews/P3_solution_overview.html,並修改)。修改後再次合併展示確認。
如使用者確認通過,子代理將選中的方案從合併檔案中拆分為每頁單獨的HTML檔案儲存(用於後續PPTX生成)。
每個模組 = 2-3輪對話。 5個模組 = 10-15輪 + 需求對齊2-3輪 + PPTX生成2輪 = ~15-20輪總對話。
⚠️ 左右分欄對稱規則(高頻返工點):
當頁面採用左右分欄佈局時,必須確保左右嚴格對稱:
- 左右兩側容器的視覺高度必須一致(CSS用 flex:1 或等高佈局)
- 左右頂部對齊、底部對齊
- 如果左側有N張卡片、右側有M張卡片,兩側都要撐滿相同高度
- 使用 min-height 而非固定 height,避免內容溢位
- 完成HTML後自檢:左右是否等高?頂部是否齊平?底部是否齊平?
- 使用者對此極其敏感,不對稱是最高頻的返工原因
- 子代理建立HTML時,prompt中必須包含以上對稱規則要求
版式方案型別(42種,11類,詳見 references/layout-library.md):
| 分類 | 版式型別 | 適用內容 |
|---|---|---|
| 封面型 | 居中英雄封面/全圖封面/漸變質感封面/分欄封面/大數字封面 | PPT首頁 |
| 目錄型 | 數字編號目錄/卡片式目錄/時間線目錄 | 內容導覽 |
| 過渡頁型 | 大字章節頁/圖片章節頁/色塊章節頁 | 模組過渡 |
| 內容型 | 左右分欄/上下分欄/卡片矩陣/居中英雄/圖文並排/純文字排版/全圖型 | 通用內容 |
| 對比型 | Before/After/紅綠對比/方案對比 | 效果對比 |
| 資料型 | 大數字衝擊/資料儀表盤/柱狀圖/餅圖/折線趨勢 | 資料展示 |
| 流程型 | 時間軸/步驟流程/環形流程 | 過程展示 |
| 結構型 | 組織架構/金字塔/同心圓/矩陣象限 | 層級關係 |
| 引用型 | 大引號引用/對話示例/金句卡片 | 文字強調 |
| 互動型 | 問答互動/清單速查/標籤矩陣 | 互動/速查 |
| 收尾型 | 行動號召/總結回顧/聯絡方式 | PPT結尾 |
每頁HTML預覽需遵循以下規範:
尺寸:1280×720px(16:9標準比例)
技術棧:純HTML+CSS(內聯樣式,無需外部依賴)
視覺要素:
- 漸變背景用 linear-gradient / radial-gradient
- 毛玻璃效果用 backdrop-filter: blur() + 半透明背景
- 卡片用 border-radius + box-shadow + 半透明背景
- 色標系統用統一的顏色編碼
重點文字規範(重要): - 標題:28-56px,font-weight: 700-900 - 關鍵資料/關鍵詞:22-48px,加粗,用主色調強調 - 正文:14-16px - 標籤/輔助文字:10-12px - 重點文字和關鍵詞字號必須明顯大於正文,要醒目
風格統一性(重要): - 所有頁面使用統一的配色方案 - 所有元素必須遵循統一的設計語言 - 避免使用與整體風格不符的元素 - 展示程式碼/技術內容時,用與整體風格協調的卡片
通用設計原則: - 留白是設計語言,不是浪費——高階質感頁面留白可達40-50% - 對齊是基礎——所有元素必須嚴格對齊 - 層次要分明——通過字號、顏色、粗細、間距建立資訊層級 - 色彩要剋制——主色1-2個,輔助色2-3個,強調色1個 - ⚠️ 不留大片空白(高頻返工點): 頁面內容必須合理填充,不能讓下半部分空著。使用者對此極其敏感,大片空白是最常見的返工原因之一。如果內容較少,通過以下方式撐滿:① 擴大字號/行距/元素尺寸 ② 底部加一條翠綠色總結條或要點提示 ③ 增加輔助說明文字或資料標註 ④ 內容區用 flex:1 自動撐滿。完成後自檢:頁面上下是否有大片未使用區域?
左右分欄對稱規範(重要,高頻返工點):
- 左右分欄時,兩側容器必須等高:父容器 display:flex,子容器 flex:1
- 如果一側卡片多、一側卡片少,少的一側用 justify-content:space-between 或 space-evenly 撐滿高度
- 不要用固定 height,用 min-height 防止內容溢位
- 完成後必須自檢左右是否嚴格對稱(頂部齊平、底部齊平、高度一致)
上下文管理與積分最佳化(重要 — 必讀):
原理說明: LLM對話的機制是每一輪都把之前所有輪次的完整歷史重新發送給模型。對話歷史中的內容無法刪除,只能控制什麼內容進入對話歷史。因此積分消耗 = 每輪內容量 × 輪次數,兩個因子都要控制。
上下文膨脹的三大元兇及對策:
| 元兇 | 每次塞入token量 | 對策 | 效果 |
|---|---|---|---|
| Write寫入HTML/SVG程式碼 | ~4000-6000 | 交給子代理,主對話不碰Write | 程式碼不進入主對話 |
| show_widget渲染SVG | ~2000-3000 | 改用子代理生成HTML預覽檔案 + present_files展示 | SVG程式碼不進入主對話 |
| 逐頁互動輪次過多 | 16頁×3.5輪=56輪 | 按模組分批,5模組×2.5輪=12.5輪 | 輪次減少78% |
| 版式預覽與正式HTML重複 | 每頁做2遍HTML | 合併為一步:直接生成帶內容的版式方案 | 工作量減半 |
核心原則:主對話只做輕量操作,重操作全部委託子代理
| 主對話做(輕量) | 子代理做(重量,獨立上下文) |
|---|---|
| AskUserQuestion(~500 token) | 生成帶內容的版式方案HTML檔案(合併展示) |
| present_files(~300 token) | 拆分選中方案為每頁單獨HTML檔案 |
| 簡短文字描述(~500 token) | 修改HTML檔案 |
| 讀取memory | 生成PPTX指令碼並執行 |
按模組分批工作流(已內建Phase 4):
每個模組(3-5頁)= 2-3輪對話:
① 子代理生成帶內容的版式方案HTML(合併展示)→ present_files ← 1輪
② AskUserQuestion選版式+確認(整模組一次完成) ← 1輪
③ (如需修改)子代理修改 → present_files → 確認 ← 0-1輪
5個模組 × 2.5輪 + 需求對齊2-3輪 + PPTX生成2輪 = ~17輪
vs 逐頁方式 ~56輪,輪次減少70%
積分消耗參考(16頁標準PPT): - 逐頁方式(初版):~1000積分 - 逐頁+子代理(第一版最佳化):~400積分 - 按模組分批+子代理(第二版最佳化):~130-150積分 - 按模組分批+版式合併+子代理(當前方案):~80-100積分 - 關鍵節省點:① 子代理隔離HTML/SVG程式碼 ② 按模組分批減少輪次 ③ 版式預覽與正式HTML合併為一步 ④ 主對話只做輕量操作 ⑤ 合併展示避免多檔案預覽問題
全部頁面確認後,使用 scripts/build_pptx.py 生成可編輯的PowerPoint檔案。
⚠️ 上下文最佳化:PPTX生成指令碼也交給Agent子代理 生成16頁PPTX的Python指令碼可能長達500+行,如果在主對話中用Write建立,這500行程式碼會永久留在上下文中。改為: 1. 主對話中用Agent工具委託子代理:提供16頁HTML檔案路徑、配色色值、輸出路徑 2. 子代理讀取HTML檔案、編寫指令碼、執行生成PPTX 3. 子代理返回"PPTX已生成,儲存在桌面" 4. 主對話用present_files展示給使用者
技術要點:
- 使用 python-pptx 庫建立原生PPTX
- 使用 lxml 注入XML實現漸變填充(python-pptx原生不支援漸變)
- 所有文字放在可編輯文本框中
- 所有形狀用原生PowerPoint形狀
- 漸變背景通過XML注入 <a:gradFill> 實現
- 輸出到使用者桌面(通過 os.environ.get('USERPROFILE') + 'Desktop' 獲取路徑)
母版與模板:
- 如需建立企業模板,參考 references/master-template.md 中的完整指南(母版三層繼承、Logo新增、佔位符設定、企業模板打造8步驟)
- 如使用者提供模板,根據Phase 1選擇的適配深度生成:
- 深度適配:Presentation('template.pptx') 基於模板建立,優先使用模板版式
- 輕度適配:建立空白PPT,應用模板提取的配色和字型
- 模板分析指令碼:scripts/analyze_template.py
依賴安裝:
# 使用 WorkBuddy 管理的 Python 環境
python -m pip install python-pptx lxml
指令碼使用方法詳見 scripts/build_pptx.py 中的註釋和示例程式碼。
PPTX高階技術詳見 references/pptx-technical-guide.md。
如果使用者需要動畫效果,在PPTX生成後新增動畫指導:
動畫原則: - 寧可不用,不可濫用——動畫服務於內容表達 - 統一使用1-2種切換效果,不要每頁不同 - 進入動畫優先用"淡入"和"縮放",簡潔專業 - 資料展示頁可用"擦除"動畫讓圖表逐步呈現
動畫型別詳見 references/animation-guide.md。
⚠️ 交付格式必須讓使用者選擇(重要):
全部頁面確認後,必須用 AskUserQuestion 詢問使用者選擇輸出格式,不能預設只出原生PPTX:
| 格式 | 視覺效果 | 文字可編輯 | 適用場景 |
|---|---|---|---|
| 原生 PPTX | ⚠️ 效果打7折(漸變/陰影/SVG圖表丟失,python-pptx無法渲染CSS) | ✅ 可編輯 | 需要後續修改內容 |
| 截圖 PPTX | ✅ 100%還原HTML效果 | ❌ 每頁是圖片 | 追求視覺效果,不需要改文字 |
| 截圖 PDF | ✅ 100%還原HTML效果 | ❌ 每頁是圖片 | 只讀分發,列印,存檔 |
原因說明:HTML 預覽中你看到的效果(linear-gradient漸變、box-shadow陰影、SVG內聯圖表、border-radius圓角、flex彈性佈局、opacity半透明疊加、::before/::after偽元素等)依賴瀏覽器CSS渲染引擎,python-pptx 原生不支援這些。原生PPTX是從零用矩形+文字+表格重新搭建的,效果必然打折扣。
推薦做法: - 需要後續編輯 → 原生 PPTX - 追求視覺效果 → 截圖 PPTX(推薦,也是使用者滿意度最高的方案) - 只讀分發 → 截圖 PDF
用 AskUserQuestion 讓使用者選擇,選項:原生PPTX / 截圖PPTX / PDF / 都要(全部生成)。必須明確告知"原生PPTX會丟失HTML中的CSS效果(漸變/陰影/SVG等),效果打7折"。
截圖版生成方法(Playwright + Pillow):
1. 已確認通過的HTML預覽檔案(每個模組一個檔案,共3-7個)
2. 使用 Playwright 對每個 .slide 元素截圖(viewport 1280×720,device_scale_factor=2 確保清晰)
3. 使用 Pillow 將 PNG 合成為 PDF,或使用 python-pptx 將 PNG 貼入幻燈片(每頁一張全幅圖)
# 依賴安裝(在 WorkBuddy 管理的 Python venv 中執行)
pip install playwright Pillow
python -m playwright install chromium
# 如果 playwright install 遇到 "safe-delete" 錯誤,手動清理 ms-playwright 快取目錄後重試
# 快取目錄位置:Windows 在 %LOCALAPPDATA%/ms-playwright,macOS 在 ~/Library/Caches/ms-playwright
present_files 展示給使用者輸出與分享選項(詳見 references/output-sharing.md):
- 檔案保護(密碼/只讀/最終狀態)
- 檔案大小最佳化(壓縮圖片/刪冗餘)
- 匯出格式(PDF/圖片/影片/長拼圖)
- 放映模式(演講者/觀眾/展臺/演講者檢視)
- 線上分享(雲端儲存/線上會議/影片平臺)
本技能內建129種設計技法(詳見 references/design-techniques.md),可自由組合使用。以下是組合指導:
| 內容型別 | 推薦技法組合 |
|---|---|
| 封面頁 | 漸變填充 + 居中構圖 + 文字美化 + 首尾呼應 |
| 資料展示頁 | 資料強調 + 資料圖表 + 色塊強調 + 留白構圖 |
| 對比頁 | 雙色對比 + 分欄排版 + 劃線刪除 + 對比排版 |
| 流程頁 | 時間軸設計 + 流程圖設計 + 漸變色塊遞進 + 標註設計 |
| 卡片矩陣頁 | 卡片矩陣 + 四宮格排版 + 色標系統 + 圖層疊加 |
| 引用金句頁 | 資料強調 + 留白構圖 + 文字美化 + 居中構圖 |
| 圖文頁 | 分欄排版 + 圖片蒙版 + 色塊打底 + 對齊分佈 |
內容是什麼型別?
├─ 文字為主 → 文書處理類技法(字型搭配/文字美化/資料強調/化字為圖)
├─ 資料為主 → 資料視覺化類技法(圖表/大數字/表格設計)
├─ 圖片為主 → 圖片處理類技法(裁剪/調色/蒙版/圖片版式)
├─ 流程步驟 → 排版+視覺類技法(時間軸/流程圖/步驟標註)
├─ 對比關係 → 色彩+排版類技法(雙色對比/分欄/Before-After)
├─ 層級結構 → 排版類技法(組織架構/金字塔/同心圓)
└─ 總結收尾 → 視覺+文字類技法(首尾呼應/居中構圖/留白)
詳細的技法說明詳見 references/design-techniques.md。以下是11大類技法速查:
分欄排版、對齊分佈、留白構圖、居中構圖、四宮格排版、圖層疊加、參考線系統、組合與巢狀、旋轉與變換、層次管理、格式複製(格式刷/F4)、形狀微調、瀏覽模式檢查、網格定位、安全區域
色塊強調、漸變填充、色標系統、雙色對比、漸變色塊遞進、單色方案、類比色方案、互補色方案、三分色方案、HSL調色法、企業VI取色法、蒙版疊加、主題色系統、交替行色、條件色彩
資料強調、劃線刪除、文字美化、對比排版、字型搭配、漸變文字、圖片填充文字、鏤空文字、文字描邊、三維文字、文字雲、標點創意、藝術字效果、化字為圖、字圖結合
合併形狀五法(聯合/組合/拆分/相交/剪除)、漸變融合、柔化邊緣切口、圓滑曲線繪製、線條十種用途、色塊打底、形狀陰影層次、墨跡繪圖、任意多邊形、形狀組合創意、連線線使用、形狀旋轉陣列
裁剪為形狀、按比例裁剪、反向裁剪、圖片調色統一、藝術效果、摳圖三法、圖片版式、圖片蒙版、圖片混合、亮度對比度調整、重新著色、圖片填充
表格簡化、交替行色、關鍵資料強調、表格創意拼圖、條件格式、標題行強調、內邊距最佳化、邊框精簡
柱狀圖、條形圖、餅圖/環形圖、折線圖、面積圖、雷達圖、甘特圖、組織結構圖、SmartArt圖示、大數字衝擊、進度條/儀表盤、資料標註
毛玻璃效果、卡片矩陣、時間軸設計、流程圖設計、模擬UI介面、標註設計、首尾呼應、2.5D立體效果、倒影/映像效果、發光效果、平滑切換、動態鏤空文字
切換動畫(淡入淡出/推入/揭開/平滑)、進入動畫(飛入/淡入/縮放/擦除)、強調動畫(脈衝/陀螺/閃爍)、退出動畫、動作路徑、觸發器互動、動畫窗格管理、動畫刷統一、文本框動畫、動畫計時控制
格式刷、動畫刷、F4重複、選擇窗格、快速訪問工具欄、組合快捷鍵、幻燈片瀏覽、選擇性貼上、大綱檢視調整、母版批次修改
標準形狀繪製、文字方向、圖片變圓形三法、形狀避免濫用原則、圖文並茂利弊、四步快速美化法、常見PPT避坑清單、依賴模板vs學習設計
以下是一個完整的對話示例,展示從使用者提出需求到逐頁確認的協作過程。不是指令碼,是參考節奏——實際對話根據使用者回答靈活調整。
使用者: 幫我做個PPT,公司新產品釋出會用的。
AI: 好的,產品釋出會PPT,先確認幾個關鍵資訊:
[AskUserQuestion 一次性提問以下維度] - 目標受眾:行業媒體/潛在客戶/投資人/內部員工? - 視覺風格:深色科技風/漸變質感風/簡約商務風/其他?(以上都不滿意可以說自己想要的風格) - 配色方案:有無品牌色或偏好的色調?(沒有的話我推薦幾套,也可以自己定) - 篇幅:精簡版8-12頁/標準版15-20頁/深度版25頁+? - 內容素材:有現成大綱嗎?還是需要我研究整理? - ⚠️ 你有自己的PPT模板嗎?比如公司企業模板、之前做過的PPT、或者買的設計模板?有的話上傳給我,我直接基於模板來做,省得配色字型重新定。 - 頁面比例:16:9寬屏(預設)/4:3標準/9:16豎版?
💡 以上所有選項都只是建議——不滿意可以自己定義,你的想法優先。
使用者: 受眾是潛在客戶,風格要科技感一點的,篇幅15頁左右,內容我自己寫了個大綱發你。模板沒有,你幫我設計。
AI: 收到。科技風格+15頁+你自己提供大綱。風格我推薦兩個方向:
- 深色科技風 — 深色背景+高飽和強調色+光效,適合產品釋出會的舞臺感
- 淺色科技風 — 白底+少量強調色+大量留白,蘋果釋出會那種調性
這兩個只是推薦,你有其他想法也可以直接說。
配色方面,我先給你看幾套方案的色板效果:
[show_widget 渲染3-5套配色色板,每套包含完整色階+模擬頁面效果預覽]
哪套順眼?都不滿意可以換一批,或者你自己描述想要的顏色。
使用者: 深色科技風,品牌色是我們的藍綠色 #00B4D8。
AI: 明白,深色科技風+藍綠色#00B4D8作為主色。大綱我看了,整理成以下結構:
[show_widget 渲染大綱結構圖]
模組1:開場(封面+產品概念)2頁 模組2:痛點與需求(行業痛點+使用者場景)3頁 模組3:產品介紹(核心功能+技術亮點)5頁 模組4:資料與案例(使用者資料+合作案例)3頁 模組5:收尾(路線圖+聯絡方式)2頁
這個結構OK嗎?需要調整哪些模組?
使用者: 結構沒問題,開始做吧。
AI: 好,大綱分5個模組。從模組1(開場2頁)開始,子代理已經生成了帶內容的版式方案,全部合併在一個檔案裡:
[present_files 展示 module1_preview.html — 包含P1封面2個方案、P2產品概念2個方案,每個方案都是帶真實內容的完整頁面]
P1封面: - 方案A:全屏背景圖+居中大標題,深色科技背景+藍綠光效 - 方案B:左側標題+右側產品渲染圖,更有資訊量
P2產品概念: - 方案A:一句話定義+三個關鍵詞卡片 - 方案B:左文右圖+核心價值主張
你每頁選哪個?選完即定稿,不需要再做一遍。都不滿意也可以自己描述想要的效果。
使用者: P1選方案B,產品圖我發你。P2選方案A,但關鍵詞卡片再大一點。
AI: 收到。P1方案B+P2方案A,產品圖已收到。子代理修改P2關鍵詞卡片大小……
[present_files 展示修改後的 module1_preview.html]
P2關鍵詞卡片放大了,現在OK嗎?
使用者: 可以,繼續下一個模組。
AI: 好,模組2(痛點與需求3頁)。子代理生成版式中……
[present_files 展示 module2_preview.html]
...(每個模組同此迴圈:生成帶內容的版式方案→選+確認,2-3輪完成一個模組)
對話節奏要點: 1. 第一次提問就問模板 — 不要等到選完配色字型才發現使用者有模板 2. 風格和配色分開問 — 風格定調性,配色定顏色,分開問才能自由組合 3. 配色必須視覺化 — 不能只列文字名稱,必須用 show_widget 展示色板+模擬效果+換一批選項 4. 大綱用視覺化呈現 — 不要純文字列出來,用結構圖讓使用者一眼看懂 5. 每頁2-3個版式方案 — 給選擇而不是給答案 6. 按模組分批推進 — 以模組(3-5頁)為單位:子代理生成帶內容的版式方案→使用者選+確認。不要逐頁互動,也不要一次做全部 7. 每模組完成後必須用AskUserQuestion確認 — 展示該模組所有預覽後必須主動詢問"這批是否OK?哪頁要調整?",不能預設通過 8. 左右分欄必須嚴格對稱 — 左右等高、頂部底部齊平,這是使用者最敏感的視覺問題,高頻返工點 9. 不留大片空白 — 內容必須撐滿頁面,底部加總結條,flex:1填滿,高頻返工點 10. 涉及資料先問來源 — 不要自己編資料 11. 涉及圖片先問來源 — 品牌素材要使用者提供,概念圖可以AI生成 12. 每次給選項必須留自定義口子 — 風格、配色、版式、資料來源、圖片來源……所有選項後面都要跟一句"不滿意可以自己定義"。使用者的想法永遠優先於預設選項,不要把人框死 13. 交付前詢問輸出格式 — 原生PPTX / 截圖PPTX / PDF,必須告知原生PPTX會丟失CSS效果(漸變/陰影/SVG等),讓使用者自己選 14. 主對話保持輕量,重操作交給子代理 — 主對話只做AskUserQuestion、present_files、簡短文字描述。HTML建立、版式方案生成、PPTX指令碼等重操作全部通過Agent子代理完成,程式碼不進入主對話上下文。這是控制積分消耗的核心策略(目標:16頁PPT≤100積分) 15. 版式預覽與正式HTML合併為一步 — 不要先做簡化mockup讓使用者選版式,再做正式HTML。直接生成帶真實內容的版式方案,使用者選的就是最終版。省掉一輪重複勞動 16. 同模組多頁合併展示 — 預覽面板一次只能開啟1個HTML檔案,同模組多頁必須合併在一個HTML檔案中展示(頁間間距40px,背景#E8E8ED區分),不要每頁單獨檔案展示
build_pptx.py — 原生PPTX生成指令碼模板,包含漸變填充XML注入、文本框/形狀/配色/表格/圖表的完整示例程式碼analyze_template.py — 模板分析指令碼,提取使用者模板的主題顏色/字型/版式/背景/Logo等資訊design-techniques.md — 完整設計技法庫,11大類129種技法的詳細說明、引數規範和適用場景layout-library.md — 版式型別庫,42種版式的佈局描述、適用內容、推薦技法組合color-style-guide.md — 配色與風格指南,10種風格×20套配色自由組合、配色理論、組合規則animation-guide.md — 動畫指南,切換動畫、物件動畫、平滑切換、觸發器、動畫計時material-sourcing.md — 素材搜尋指南,字型/圖片/圖示/模板/音影片/靈感的搜尋渠道和使用技巧image-acquisition.md — 圖片獲取指南,4種圖片來源(使用者提供/AI生成/網路下載/截圖)+ AI生成提示詞模板content-import.md — 內容匯入指南,Word轉PPT、Excel匯入、資料來源同步、批次圖片、影片/音訊插入master-template.md — 母版與模板指南,母版三層繼承、企業模板打造、基於使用者提供模板製作PPT(深度/輕度適配)、背景填充、字型安裝嵌入、四步美化法output-sharing.md — 輸出與分享指南,檔案保護、壓縮最佳化、格式匯出、放映模式、線上分享plugin-guide.md — 外掛使用指南,iSlide/OK外掛/PA口袋動畫/LvyhTools詳細功能pptx-technical-guide.md — PPTX技術指南,python-pptx API用法、漸變XML注入、表格/圖表/圖片/動畫等高階技術生成PPTX指令碼(build_pptx.py)報錯時,按以下對照表定位問題:
| 報錯資訊關鍵詞 | 原因 | 修正方法 |
|---|---|---|
缺少顏色配置鍵 |
CONFIG["colors"] 中缺少必需的12個顏色鍵之一 | 檢查 colors 字典是否完整,確保 primary_dark / accent_gold 等12個鍵都存在 |
顏色 'xxx'='xxx' 長度不是6位 |
顏色值不是標準6位hex(如寫了 FF 而非 FF5733) |
改為6位十六進位制,如 059669 |
顏色 'xxx'='xxx' 包含非法字元 |
hex中出現了 G-Z 等非十六進位制字元 | 只使用 0-9 和 A-F,去掉非法字元 |
輸出目錄不存在 |
CONFIG["output_dir"] 路徑不存在 | 確認路徑拼寫,或手動建立該目錄 |
檔名應 .pptx 結尾 |
CONFIG["filename"] 忘記寫 .pptx 字尾 |
改為如 presentation.pptx |
圖片檔案不存在 |
add_image 傳入的路徑不正確 | 檢查:1) 路徑拼寫 2) 圖片是否已生成/下載 |
顏色程式碼 'xxx' 格式錯誤 |
hex_to_rgb 收到非6位字串 | 確認傳入的是6位hex字串,配色方案快速切換中的顏色值也要檢查 |
ValueError: invalid literal for int() |
舊版指令碼未升級,顏色值格式有問題 | 確認使用的是最新版 build_pptx.py,此錯誤已被友好提示替代 |
子代理執行失敗的處理:
1. 先閱讀錯誤資訊——95%的情況對照上表即可定位
2. 如報錯為 ModuleNotFoundError: No module named 'pptx',缺少依賴,執行 pip install python-pptx lxml
3. 如報錯為 ModuleNotFoundError: No module named 'playwright',按 Phase 8 的 Playwright 安裝說明執行
4. 如子代理超時/斷開,重試一次——重試時從已儲存的頁數繼續,不會從頭開始
5. 如無法自行解決,將完整錯誤資訊展示給使用者,不要隱藏原始錯誤
這個PPT製作技能質量很高,最大的優點是專業且細緻——從風格配色到版式設計都有大量預設方案可選,而且全程分步確認,不會自作主張。輸出支援原生可編輯檔案和視覺無損的截圖版兩種格式。需要注意的小缺點是:複雜動畫效果無法直接生成,只能提供設計建議;另外如果你有很複雜的模板檔案,自動適配效果可能不太理想。總體來說,這是一個靠譜的PPT製作助手。