受够了 AI 紫 PPT?我用 Slidev + Agent 搞了套 PPT 基础设施,告别撞衫
但凡你有过使用 Agent 生成网页版 PPT 的经历,你肯定见过那个“熟悉的配方,熟悉的味道”。大圆角卡片、蓝紫主色。没错,这就是那个著名的 “AI 紫”。去年至今见了多少次这样的 PPT 已经记不清了,但看多了,真的有点审美疲劳。
典型的"AI紫" PPT
你甚至怀疑,全世界的 AI 工具是不是共用了同一套模板库。这不是错觉。这是 AI 生成 PPT 真实痛点:
- 风格同质化严重:不管你用什么 AI 工具,生成出来的 PPT 长得像亲兄弟。同一张 “AI 脸”。
- 美不起来,不符合品牌视觉要求:品牌、企业有自己的视觉风格,怎么样让 Agent 生成的那个 PPT 符合企业的视觉要求?想想都挠头。
- 难以搭配叙事逻辑:网页的主要设计诉求是阅读,PPT 更讲究有逻辑的叙事,配合自己的演讲。需要严格的控制显示内容,配合自己的演讲。Agent 随机生成的很难让每一个页面上展示的内容恰好配合自己的叙事。
- 内容和代码混在一起:你知道那种「在
<div> 标签里找自己写的文字」的痛苦?在 100 行代码里找 1 行需要修改的内容。 - 缺乏 PPT 的基本功能:没有演示者模式,标注、翻页等基础的 PPT 功能。
作为一个经常需要做产品分享、技术演讲的打工人,我决定换个思路 - 不再让 AI 直接生成 PPT,而是让 AI 帮我搭建一套 演示文稿的基础设施。以此为蓝本,再用 AI 生成我想要的 PPT。
这一次我的工具选型:Slidev + Kiro + OpenCode;并且在本次实践中,我也同时使用了闭源模型和开源模型,探索下这些工具的能力边界。
Slidev 是什么?为什么选它?
如果你还没听过 Slidev[1],简单说:它是一个面向开发者的演示文稿框架,由 Anthony Fu 开发。核心理念是用 Markdown 写幻灯片。
听起来平平无奇?它的杀手锏在于:
- Theme 机制、统一样式:这是关键,一行配置切换风格。做一次主题,所有演示文稿统一风格。
- Markdown 驱动:你只需要写 Markdown,用
--- 分隔每一页。内容和样式天然分离,AI 生成内容时不会把 CSS 和文字搅在一起。 - 内置 PPT 演示功能:演示者模式、标注笔、遥控翻页、过渡动画等 PPT 基本功能都支持。
- 导出能力:一键导出 PDF、PPTX、PNG,甚至打包成静态网站部署到 GitHub Pages。
- Vue 组件支持:需要交互式 Demo?直接在 Markdown 里嵌入 Vue 组件。代码高亮、实时编辑、Mermaid 图表,开箱即用。
Slidev 解决了我的核心痛点:内容归内容,样式归样式,主题归主题;此外 Slidev 还有官方的 Skill 支持,配合 Agent 简直完美。
废话少说,先看成品
这个是我用 Kiro 的 PPTX 和设计规范,让 Kiro CLI 帮我设计出来的一个成品 Slidev 主题。
我的方案:做一个品牌的 Slidev Theme
既然 Slidev 支持自定义 Theme,那思路就很清晰了:
做一个 Kiro 品牌风格的 Slidev Theme,然后让 AI 只负责生成 Markdown 内容,风格由 Theme 统一控制。
这样一来,不管是把现有 PPT 转成 Slidev,还是把一篇文章变成演示文稿,输出的风格都是一致的。
- 创建一个 Slidev Theme 项目。
- 安装好 slidev, pptx, agent-browser 这些 Skills。slidev skill 提供如何创建 theme 和使用 theme 的相关知识和最佳实践;pptx 负责提取 PPT 中的素材和内容;agent-browser 主要用于 Agent 自我修正。
- 让 Kiro CLI / OpenCode 从 PPTX 中解压,识别相同的layout, 对 layout 进行归类,对于不清楚的向你提问;并且提取出素材。
- 让 Agent 通过 agent-browser 截图与原始PPT 进行 page by page 对比。(此处容易失败,一次不行就拆下任务,每次对比3~5页)。
- 人类审核每一页,通过对话,进行局部微调。
- 让 Agent 基于当前的,写成一个如何使用这个 theme 的教程,直接用 slides 的形式展现出来。
三个实战场景
自从开发出来这套用法之后,我做了一些尝试:
场景一:PPT 转化成 Slidev
一句话在 Kiro CLI 中将 PPT 转化成 Slidev,Agent 自动提取 PPT 中的素材,应用 Kiro 的主题布局和配色,最后生成 Slidev 支持的 Markdown。
我们一起来将一份 PPT 转化成 slidev 项目: 1. 待转为的 PPT 位于 ../decks/目录,叫 Kiro Finst Call Deck; 2. 我们使用 Slidev kiro theme,位于 ../slidev-theme-kiro/; 3. 你需要自己提取 PPT 中的 assets; 4. 你需要了解如何使用这个主题 5. 对于不能覆盖的 PPT 中的layout,请给我建议,让我做选择
场景三:选择一篇或者多篇网络热文,转化成 Slidev
我在学习 harness engineering, 帮我生成一个 slidev 项目,用于快速介绍 harness engineering 给我的小伙伴:1. 使用 slidev-theme-kiro, 位于 ../slidev-theme-kiro/ 目录下,先学习如何使用这个theme.2. 一定包含文章:https://openai.com/index/harness-engineering/ 和https://www.anthropic.com/engineering/harness-design-long-running-apps3. 搜索一些网络资料用于补充,要包含 reference 页4. 你需要自己下载文章中的素材5.生成之后利用 agent-browser 自我验证一轮
这套方案的本质
回到开头的痛点,这套方案的解法其实很简单:
| 痛点 | 传统 AI PPT | Slidev + Theme |
|---|
| 风格同质化 | 用平台模板,和别人撞衫 | 自定义 Theme,品牌独占 |
| 不符合品牌视觉 | 无法定制,千篇一律 | Theme 锁定品牌风格,一次定制反复用 |
| 难以搭配叙事逻辑 | Agent 随机生成,内容难以控制 | Markdown 逐页编写,精确控制每页内容 |
| 内容代码混杂 | HTML/CSS 和文字搅在一起 | Markdown 纯内容,样式在 Theme 里 |
| 缺乏演示功能 | 网页无演示者模式、标注等 | Slidev 内置演示者模式、标注、翻页等 |
本质上,这是一个关注点分离的思路:
- Theme(样式层):做一次,反复用
- Markdown(内容层):AI 擅长的部分
- Slidev(渲染层):把两者组合成最终演示
这和我们写代码的理念一模一样——别把业务逻辑写在 CSS 里 😅
给想尝试的你几个建议
使用Slidev Skill:Slidev 提供了官方的 Skill, 用起来很方便,通过 npx skills add https://github.com/antfu/skills --skill slidev 一键安装,无论是制作 theme 阶段,还是后期基于 theme 生成内容阶段,都建议安装这个 Skill。
使用视觉模型自我迭代:我安装了 Agent-brower, 和 它对应的 Skil。过程中我都是让 Agent 生成完一次之后先自我迭代验证一轮。
IDE + CLI 同时使用:我主要的 Agent 交互已经基于 CLI 了,但依然会使用 Kiro IDE 来查看并且做局部调整。
用 Slidev 的 VS Code插件:Slidev 提供了 VS Code 插件,在 Kiro IDE 的插件市场里就能搜到。每一个页面都列出来,且都能看到预览,体验很棒。
善用 Workspace:很多情况下,我们很难用语言描述清楚我们想要的layout, 但 “天下文章一大抄啊”,Slidev 自己提供了很多的 theme, 这些theme 里面有一些layout, 当说不清楚的时候,“类似这个”,“类似那个” 就是最好的办法。我的做法就是在同一个 workspace 里面的打开多个项目,然后“这个”,“那个”。
边做边调整theme:我的 theme 也不是一次生成的,在后面制作内容的时候,会发现有些 layout Agent 弄得不太对,例如有些 text block 折行,在theme 里没看出来,制作内容的时候,字一长就自动换行了。
善用搜索:我并没有去看 slidev 的文档,而是让 Agent 自己去搜。Kiro CLI 内置了 web_search 功能,OpenCode 没有,我就让 OpenCode 生成一个Skill, 这个skill 就是调用 Kiro CLI 的 web_search 功能,用起来很流畅。
你可能想问的
Q. 这个例子里什么时候用闭源模型,什么时候用开源模型?
制作主题的时候我是主要靠闭源模型来完成的,主要的原因是 Claude 1M 的上下文和视觉能力。制作主题的时候,我让 Kiro CLI 配合闭源模型读取了整个 PPT, 提取共性的 layout, 生成主题之后,我又让他打开浏览器自己截图,并且和 PPT 的原始排版进行视觉对比。Agent 自己迭代了好几轮。
大致框架有了之后,后面的微调部分,基本靠开源模型,我用了 Kiro CLI 里的GLM-5 和 MiniMax M2.5;同时我还用了 OpenCode + Seed 2.0 Pro 模型;都可以完成任务。
Q. 为什么同时用 Kiro CLI 和 OpenCode CLI?
哈哈,主要是 OpenCode 可以随意接模型。不过实战中也踩了坑——OpenCode 的图片处理似乎有些问题(不确定是不是模型的锅),在生成之后与原始 PPTX 进行自动视觉对比阶段经常报错,这也是我在场景一中主要依赖 Kiro CLI 完成视觉对比的原因。有一说一,OpenCode 的 TUI 设计真心不错,值得学习。
Q. 用了哪些 Skills?
除了 slidev 官方 skill; 还用了 Anthropic 的 PPTX,提取 PPTX 里的资产,理解PPTX, 制作 theme; Vercel 的 Agent-brower,主要用于 Agent 自我修正。
Q. 总共花了多久?
制作 theme 花的时间久一点,加起来有半天到一天,中间断断续续的,调整到自己满意的样子。没办法,我是个处女座,忍不了一点。连主题里那个跳动的小鬼的位置我都得给它加上去。一旦制作完成。后面生成 slidev project 就很快了,每个场景就是几十分钟,几次对话。
Q. 这个方法能复制不?
当然可以,你可以用相同的方法,制作你们品牌或者企业的 slidev theme。
Q. 能开源 theme 不?
本来计划是的,后来才知道那些图标有版权,不让开源(此处省略我搞了半天发现不能开源后的暴躁心情)。哎,公司内的小伙伴有需要的,可以找我要。
这套方案的局限
说了这么多好处,也得聊聊不太适合的场景:
- 纯图片型 PPT:如果你的 PPT 几乎全是图片拼接、没什么文字内容,Slidev 的 Markdown 驱动优势就发挥不出来,不如直接用传统工具。
- 需要复杂动画:Slidev 支持基础的过渡动画和 Vue 组件交互,但如果你需要 PowerPoint 那种精细的逐元素动画编排,目前还做不到。
- 制作 Theme 需要投入:第一次做 Theme 确实要花半天到一天,如果你只是偶尔做一次 PPT,投入产出比不一定划算。适合经常需要做演示的场景。
写在最后
AI 生成 PPT 这件事,工具不是问题,思路才是,花几个小时磨一磨刀,长就看收益是值得的。
Slidev + 自定义 Theme + Kiro/OpenCode,这套组合拳打下来,我现在做演示文稿的效率提升了不少,而且每一份输出都是统一的品牌风格。
写到最后我突然想起来上一次我的同事 Brian Beach 来中国的时候表达了一个观点 人类很快就会迎来,再也无法审核 AI 生成的内容了。是啊,传统的 Agent 直接生成网页 PPT 的方式总是把负责layout的代码和真正显示的内容混杂在一起,造成我们很难审核。Slidev 这样的一个做法提供了一个很好的思路,把真正人类需要关注的那 1% 的内容提取出来,放到一个 markdown 里,其他的内容就全部交给 AI 吧。这也许是一个不错的解题思路。