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位置发现更多技能插件,请访问7w4.net。
当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):
| 来源 | 说明 | 适用场景 | 需要用户操作 |
|---|---|---|---|
| 用户提供 | 用户已有图片素材 | 品牌素材、产品截图、团队照片 | 上传图片文件 |
| 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制作助手。