ARTICLE · 1070923
万物皆插件:一句话让 Agent 替你做完整套 PPT
这篇文章的主角是我开源的一个插件,但它挂在别人的地基上。所以我想先把地基讲明白——不然下面「万物皆插件」那段会看得云里雾里。
DeepSeek Harness(命令行里写作 dsh)是 DeepSeek AI 开源的 agent harness,也就是智能体框架。MIT 协议,TypeScript 写的,跑起来只要一行 npx @deepseek-ai/dsh web,它会在 127.0.0.1:3080 起一个 Web UI,然后你就在浏览器里跟 Agent 对话。
它上线才一个多月,已经攒到 23.4 万 star、2.8 万 fork。这个速度本身说明了一件事:大家在等的不是又一个聊天框,而是一个能往里塞东西的壳。
有意思的是它官方仓库的一句话简介,连引用格式里的标题都是同一句:
「DeepSeek Harness: Everything is a Plugin.」
「一切皆插件」。这六个字就是它全部的设计主张,也是我写这篇东西的真正起因。
但先说一句不客气的:DSH 目前处于开发者预览阶段,官方明确写着「未来将出现破坏兼容性的变更」。打算把它用进工作流的话,锁版本、别裸奔。
大多数项目说「插件化」,意思是「我们架构比较松耦合」。DSH 这里不一样——它有形式化基础。
它构建在 Cordis 之上,设计写成了一篇论文:《A Programming Paradigm for Spatiotemporal Composability》(时空可组合性的编程范式),作者 Yifan Shi、Wei Zhang、Tianyi Cui,2026 年 8 月 26 日挂上 arXiv。
论文把「动态组合组件」这个老问题拆成两个正交的维度:
组件被移除时,它造成的副作用能不能被完整回退。这一条听起来像细节,其实是所有插件系统的老伤:装了一堆插件,卸掉之后配置项还留在那里、事件监听还挂着、状态是脏的。用久了就没人敢动。
组件之间的依赖能不能被声明出来,并被响应式地管理——谁依赖谁、谁先启动谁后卸载,不靠人肉记。
针对这两个维度,论文给出的机制是:可回退的副作用(每一次上下文变换都带一个由运行时持有的逆操作)与响应式协效应(每一次上下文变化都对照组件的协效应规格做分类,据此驱动它的启用与停用)。然后把两者统一到同一个上下文类型里,让所有副作用与协效应都经过它中介——这套纪律被命名为「上下文范式」。
落在代码上,Cordis 提供的是:带副作用追踪与协效应解析的核心库,外加一个声明式组件加载器,带配置协调和热模块替换。
这才是我想说的部分。上面那套形式化的东西,翻译成插件作者的日常,是很具体的三条好处。
我陆续把图像编辑、演示生成、尽调文档审查这三个八竿子打不着的方向,都做成了 DSH 插件,它们共用同一套骨架:
dsh-image-forge —— 图片编辑与生成,三条上游引擎路线加一个网页编辑器;
dsh-ppt-forge —— 就是今天这篇的主角,四条 PPT 生成路线;
dsh-dd-forge —— 尽调文档审查,文档进去、带出处的风险报告出来。
三个完全不同的领域,骨架是同一套:一个薄编排层 + 设计对话先行 + 上游能力原样挂载。这不是因为我聪明,是因为地基把那部分复杂度吃掉了。
所以「一切皆插件」的分量不在「能装插件」,而在装上和卸下都是干净的——它才敢成为唯一的扩展方式。
用过 Agent 做 PPT 的人,大多踩过这两个坑。
一是生成的东西不好改。要么是一堆截图拼出来的假 PPT,要么是花里胡哨的 HTML——交付之后你没法在 PowerPoint 里继续编辑,等于拿到一张画。
二是各家工具各有绝活但互不兼容。有的擅长模板回改,有的擅长网页演示,有的设计方法论极强。你为了不同任务得来回换工具,还得记清楚哪个场景用哪个。
dsh-ppt-forge 的做法是:设计对话先行,四引擎按需接管。你不用研究该用哪个工具——插件自带一个路由技能,先跟你把三件事聊清楚,再把需求原样移交给最合适的引擎。
它问的三件事是:交付后还要不要编辑?在哪放映?有没有企业模板要遵守?
四条路线背后整合的是四个成熟的开源项目,插件本身只做编排,上游仓库原样拉取、署名完整:ppt-master、guizang-ppt-skill、PPT-Design-Skill、frontend-slides。
我原本可以把四个引擎的代码抄进来、揉成一个「大而全」的 PPT 工具。那样看起来更厉害,但会死在三件事上:上游一更新我就得手动合并;四个引擎的设计哲学会被我揉成一锅;出问题时我根本不知道是哪一层坏了。
只做编排,等于把「谁最懂这件事」的权力还给上游。 上游作者的措辞、动效、验收标准全都原样保留——用户拿到的不是我的二手转述,而是原作者的原意。
代价是我得接受上游的风格差异。这个代价我认为很值。
顺带一提:guizang-ppt-skill 是 AGPL-3.0,其它三个是 MIT。选择上游时这一条值得多看一眼。
已经在用 DSH,装了 git,Python ≥ 3.10,Node 用 22.19 以上或 24 以上。
最后这条不是凑数——已发布的 dsh CLI 依赖 import.meta.main,在 Node 23.x 上会静默退出、什么都不做。我在这上面浪费过一个下午,所以单独拎出来说。macOS 加 Homebrew 的话,用 /opt/homebrew/opt/node@24/bin/node。
dsh plugin --profile default add github:McBonB/dsh-ppt-forge
run ppt_setup
它会自动克隆四个技能仓库(design 路线用稀疏克隆,只取 skill/)、建好 Python 虚拟环境、装齐依赖、注册技能。首次要几分钟,之后再跑是秒级——这一步是幂等的,上游更新后重跑一次即可重新注册。
为什么强调「进工作目录」:你生成的所有东西都落在启动 dsh 的那个目录里,不会污染插件包,也不会污染技能仓库。建议专门开一个目录(比如 ~/ppt-lab)做实验。
直接提需求。
你说:
帮我做一份我们团队 Q3 复盘的演示文稿,交付之后我还要在 PowerPoint 里继续编辑。
它不会闷头就画,而是先回你几个关键问题:受众是内部复盘还是向管理层汇报?会议多长(15 分钟约 10 页,30 分钟约 20 页)?基调偏务实数据还是更有仪式感?有没有 KPI 数据和项目清单可以给它?
你补齐之后,它锁定一份设计简报,移交给对应引擎正式开工。期间会跑插件内置的质量门(版式检查、溢出校验、演示稿校验),最后交付到你的工作目录。
想快?加一句「快速生成,不用确认」。想改现成的文稿?把文件丢给它说「按新内容回改这份,没动过的页保持原样」——未改动的对象会逐字节保真透传。
光说没用,看东西。我给它的需求是「生成一份介绍提示工程的 PPT」,受众是团队成员、约 15 到 20 分钟。
它最后交付了 13 页,风格落在 手绘笔记 · 亲和课堂——暖米纸底配暖绿、暖橙、薄荷绿和陶土红,手绘云朵、波浪横线、虚线学习路径,微软雅黑,16:9。
下面是从这份交付里挑的 5 页(直接取自终稿 SVG,矢量重绘,不是拍照):

— 第 1 页 封面:钩子放在一句话上,你的提示词决定模型输出质量的上限

— 第 2 页 为什么值得学:左边两张吐槽气泡,右边引出杠杆,落脚在「差的不是模型,是你给它的指令」

— 第 11 页 可复用的提示词模板:五区块组装,每一块都回指前面的技巧编号

— 第 12 页 趋势:提示词工程 → 上下文工程 → Agent 应用,并点明提示词工程并未过时

— 第 13 页 行动页:明天就能做的三件事,收在一句可复用的话上
整份交付里我认为最值得说的不是版式,是这几条:

— 运行截图:121 次工具调用、19 条消息、1 个 subagent,最后交到工作目录
github.com/McBonB/dsh-ppt-forge(MIT)
如果你也在用 DeepSeek Harness,欢迎装来试试;觉得方向有意思,点个 Star 是对我最大的鼓励。遇到问题直接提 Issue,或者来公众号后台找我。
一个插件敢长到多大,取决于它能被卸得多干净。
「一切皆插件」的分量从来不在「能装」,而在装上和卸下都不留残渣——所以它才敢成为唯一的扩展方式,也才容得下一个人同时维护图像、演示、文档三个方向的插件。
我是 小凡想有腹肌。
如果你觉得今天这篇有收获,帮忙点个赞、点个在看,再把公众号加个星标,三连,我们下篇见。
THANKS FOR READING ✂
/