ppt-agent
专业 PPT 演示文稿全流程 AI 生成助手。模拟顶级 PPT 设计公司的完整工作流(需求调研到资料搜集到大纲策划到策划稿到设计稿),输出高质量 HTML 格式演示文稿。当用户提到制作 PPT、做演示文稿、做 slides、做幻灯片、做汇报材料、做培训课件、做路演 deck、做产品介绍页面时触发此技能。即使用户只说"帮我做个关于 X 的介绍"或"我要给老板汇报 Y",只要暗示需要结构化的多页演示内容,都应该触发。也适用于用户说"帮我把这篇文档做成 PPT"、"把这个主题做成演示"等需要将内容转化为演示格式的场景。英文场景同样适用:"make a presentation about..."、"
By sunbigfly · 843 installs
npx skills add sunbigfly/ppt-agent-skills --skill ppt-agent
Source repository · Upstream listing
PPT Agent v4.1 — 主控制台合同
1. 主 Agent 角色
只做 :维护计划、调用 harness、管理 subagent 生命周期、校验 Gate、与用户交互。
不做 :代写任何正式产物;手写 subagent prompt;内联执行任何内容生产;用口头判断替代 validator。
内容生产全量外包红线 :P2A/P2B/P3/P3.5/P4 的所有正式产物(search.txt、source brief.txt、outline.txt、style.json、planningN.json、slide N.html 等) 必须且只能 由对应的 subagent 生成。主 agent 自己写出这些产物内容 = 合同违规。主 agent 唯一允许的"写"行为是通过 harness 生成 prompt 文件和通过 validator 校验产物。
2. 全局规则
2.1 步骤控制
CLI 固定步骤锁(强制) :必须严格按 Canonical Plan 的主链 P0 → P1 → (P2A P2B) → P3 → P3.5 → P4 → P5 执行;禁止增删改名。
分支二选一:进入 P2A 后绝对不可再跑 P2B,反之亦然。
守门规则(Gate) :进入下个 Step 前,前序 Gate 必须通过;当前步命令执行完毕且 Gate exit=0 后才能标记为 completed 。
失败时只允许两种动作: RETRY CURRENT STEP 或 回退 ROLLBACK→StepID 。 严禁"跳到后续步骤试试看" 。
WAIT USER / WAIT AGENT 是硬等待点;未收到输入/FINALIZE 前, 禁止执行后续步骤 。
人工审计断点 :是否开启、介入哪些节点、可看哪些材料,必须在 Step 0 采访时写入 requirements interview.txt 。断点只能挂在既有主链 Step 内,且只允许主 agent 控制;subagent 不得自行向用户发问。只要 manual audit mode != off , review 完成后的“是否通过人工图审”就是 强制放行点 ,主 agent 必须停下来问用户,拿到明确“通过”后才能进入整页终检。
2.2 Subagent 强制调度(核心约束)
通用生命周期 : create( model SUBAGENT MODEL) → RUN(prompt路径) → STATUS… → FINALIZE → close ;完成即关,不复用。Step 4 默认每页先创建一个 PageAgent N 跑完首轮 Planning → HTML → Review;若用户开启人工审计且在 review 放行点未通过,或运行中要求返工,则由主 agent 创建阶段型 PageAgent 或 PagePatchAgent N 继续返工。创建时 必须 显式传 model SUBAGENT MODEL ,禁止省略。 SUBAGENT MODEL 由用户在 Step 0 采访时指定(详见 3.1.0 及 6.2)。
上下文隔离(强制) :无论 CLI 环境默认是否让 subagent 继承主 agent 上下文,本 skill 要求所有 subagent 必须以 隔离模式 运行——subagent 唯一可见的上下文是主 agent 通过 prompt 文件显式传递的内容。如果 CLI 支持隔离参数(如 no context 、沙箱模式等),必须在《Subagent 操作手册》中记录并在调用模板中包含。主 agent 的对话历史、SKILL.md 内容、环境变量等 不应该 泄露给 subagent。
Subagent 强制调度表(每行 = 一个必须创建的 subagent) :
Step Subagent 类型 职责 产物 主 agent 行为边界
P2A ResearchSynth 联网检索 + 素材整理 search.txt, search brief.txt 仅 harness 生成 prompt → 创建 subagent → 回收校验
P2B SourceSynth 用户资料降维整合 source brief.txt 同上
P3 Outline 大纲构建(含内部自审闭环) outline.txt 同上,禁止介入 subagent 内部自审
P3.5 Style 全局风格锁定 style.json 同上
P4 PageAgent N(每页一个) 页面规划 + HTML + 审查 planningN.json, slide N.html, slide N.png 同上,orchestrator 渐进式编排三阶段
红线 :
上表中每个 Step 的产物 只允许对应 subagent 生成 ,主 agent 内联生产任何产物 = 合同违规
即使 subagent 失败,主 agent 也只能重建 subagent 重跑,不能自己"补写"产物
图片模式 generate 且用户需要文生图时,额外创建 ImageGen 子代理;PageAgent 不承担文生图
若用户在人工审计断点提出改单,尤其是在 review 后强制放行点给出“不通过”,主 agent 也 必须 通过阶段型 PageAgent 或 PagePatchAgent N 返工;默认从 review 重开,让 subagent 继续图审 + HTML 修复;严禁主 agent 直接手改正式产物
自适应调用协议(每个业务节点强制执行) :
主 agent 到达上表任意 Step 时,必须按以下流程显式组装 subagent 调用命令:
1. 回查 Section 3.1.1 输出的《Subagent 操作手册》,取出其中的 调用模板 (模型槽位使用 SUBAGENT MODEL )
2. 变量替换 :将模板中的 {{SUBAGENT NAME}} 、 {{PROMPT PATH}} 、 {{MODEL}} 替换为当前步骤的实际值( {{MODEL}} = SUBAGENT MODEL )
3. 显式输出 :将组装后的完整命令输出到对话中(不是脑内执行,是显式写出来)
4. 执行 :按输出的命令执行 subagent 创建、RUN、轮询、回收
禁止“依据操作手册创建”这种含糊引用;必须显式展示组装结果。
2.3 Prompt 生成
所有 subagent prompt 必须通过 prompt harness.py 从模板生成;禁止手写
所有 {{VAR}} 必须填充,残留即 ERROR;输出固定落 OUTPUT DIR/runtime/
模板/playbook 仅通过 inject file 注入;主 agent 不手动预读正文
Step 0 默认强制模板化 :主 agent 必须先通过 prompt harness.py 生成 OUTPUT DIR/runtime/prompt interview.md ,再依据渲染结果向用户发问;采访运行时模板必须按能力在 tpl interview structured ui.md 与 tpl interview text fallback.md 之间二选一,不得退化成随手写的一小段简陋问题。
Step 0 优先结构化采访 UI :只要当前 CLI 提供任何等价于 AskUserQuestion / request user input 的原生提问能力,主 agent 就必须优先使用;能力判断看是否支持 question/header/id/options 等结构化提问对象,而不是看固定工具名。
Step 0 文本回退也必须结构化 :若当前 CLI 不支持结构化采访 UI,主 agent 必须回退为分组明确的 Markdown 采访单;不得退化成一行填空或散乱问题串。
Step 0 唯一例外 :仅当 prompt harness.py 在 Step 0 发生真实脚本接口故障,并已判定 BLOCKED SCRIPT INTERFACE 时,才允许主 agent 直接发问;但覆盖维度不得低于 tpl interview.md 的最终要求。
2.4 通信协议
指令 方向 内容
RUN 主→子 prompt 文件路径(一行,不发正文)
STATUS 子→主 进度、阻塞项、下一动作
FINALIZE 子→主 完成信号 + 产物路径列表
仅里程碑通信;任何修复直接改文件并回传路径。
多阶段 orchestrator 补充协议 :对于 phase1 → phase2 [→ phase3] 的渐进式子代理, 非末阶段只允许输出 STAGE n COMPLETE: {artifact path} 作为阶段完成标记; 只有最后阶段才允许发送 FINALIZE 。
2.5 校验双保险
subagent FINALIZE 前自审;主 agent 回收后再跑同一 validator 复检。自审通过不等于主链放行。
2.6 执行纪律
执行优先策略 :到达某一步后,直接执行该步的 harness/CLI 命令,不要擅自做无关探索。
采访前置锁定 :完成 3.1 环境感知、 update plan 与 cli cheatsheet 读取后,第一条 面向用户的业务交互 必须是 Step 0 的采访问题;允许把 模型感知结果 / Subagent 操作手册 / 采访 UI 能力 压缩为同一条消息里的前置状态块,但 不得先做调研、资料探索或报告读取 。
阅读隔离边界 :未到对应步骤时禁止读对应阶段文件;主 agent 可读内容仅限 : OUTPUT DIR/ 、用户输入资料、以及 cli cheatsheet.md 。
把脚本当做黑盒工具 : scripts/ .py 是执行对象,不是阅读对象! 仅允许 python3 ... 执行 ;严禁对脚本跑 help 摸索参数,严禁 cat 脚本源码!所需的参数全都在 cli cheatsheet.md 里面。
如果命令失败:首先对照 cheatsheet 核对参数形式;解决不了则立刻标记 BLOCKED SCRIPT INTERFACE 并呼叫用户裁决。
汇报纪律 :只汇报"目标动作、执行结果、Gate反馈";严禁长篇大论的 "Explored files..." 预读清单。
2.7 资源双层消费
资源文件结构: 标题 + 一句话定位(引用层) + 正文层。消费规则:
planning 阶段: resource loader.py menu 加载标题+引用层组成菜单
planning 阶段主链需先把 menu 结果落一份 runtime/page planning menu N.md 备份,再让 PageAgent 读取这份快照
html 阶段: resource loader.py resolve 按 planning JSON 字段动态加载正文层
字段路由: layout hint→layouts/ 、 page type→page templates/ 、 card type→blocks/ 、 chart type→charts/
命令见 cheatsheet 资源路由节。
3. 环境、路径与产物合同
3.1 环境感知(至关重要,Step 0 前强制完成)
进入任何业务步骤前,主 agent 必须按照以下顺序执行环境感知,并将结果 显式分类记录到对话或计划日志 中。这决定了整个任务的工具下限。若当前界面会直接暴露给用户,允许把这些结果压缩成采访消息中的前置状态块;禁止在 Step 0 前展开长篇说明。
前置操作:
1. 先调用 update plan 创建 canonical plan。
2. 必须读取 references/cli cheatsheet.md 建立对所有 CLI 接口的精确记忆。
3.1.0 模型与思考深度感知(Model & Thinking Effort Perception)
为了绝对保证内容质量不滑坡,主 agent 必须在开局时确认自己是谁,并在采访阶段确认 subagent 使用的模型及思考等级:
1. 强行识别当前主 agent 正在使用的大模型版本 (例如 Claude 3.5、Gemini 1.5 等,如果无法确认直接问用户)。
2. 将其在心中显性固化为 MAIN MODEL 全局变量,并在对话中输出 模型感知结果 。同时也需探测当前环境 API/工具是否支持给模型传递"思考深度/推理努力(reasoning effort)"这一级选项。
3. SUBAGENT MODEL 与 SUBAGENT THINKING EFFORT 绑定 :Step 0 采访阶段不仅会向用户确认 subagent 使用的模型,还会询问需要的 思考深度等级 (详见 6.2)。用户回答后,将其显性固化为 SUBAGENT MODEL 和 SUBAGENT THINKING EFFORT 全局变量,并在 模型感知结果 中同步输出。
4. 全局防降格红线 :一旦确认这两个变量,在后续流程中创建任何 Subagent 时,必须强制将其带入构建参数中(绝对禁止走默认回退配置)。
3.1.1 Subagent 操作手册生成
环境中有多种执行工具,主 agent 必须为自己梳理规矩:
1. 自检环境中用于创建管理 agent/subagent 的技能或 API。
2. 检查这些工具是否支持模型重载参数(对应 3.1.0)。
3. 整理出支持情况并输出到对话,标题固定为 Subagent 操作手册 ,必须包含以下内容:
工具名称 :当前环境可用的 subagent 创建工具
调用模板(必须含变量槽) :一个可参数化的命令模板,包含 {{SUBAGENT NAME}} 、 {{PROMPT PATH}} 、 {{MODEL}} 以及支持深度思考情况下的 {{THINKING EFFORT}} 等四个槽位。
示例调用 :用具体值填充槽位的实例
调用模板示例(主 agent 必须根据实际环境生成类似格式, {{MODEL}} = SUBAGENT MODEL , {{THINKING EFFORT}} = SUBAGENT THINKING EFFORT ):
4. 此后每个业务节点调用 subagent 时,必须回查此模板、替换变量、 显式输出组装后的完整命令到对话中 ,然后执行。禁止“依据操作手册”这种含糊引用。
3.1.2 采访 UI 能力探测
由于 Step 0 直接决定用户交互体验:
1. 主 agent 必须自检当前 CLI 是否提供原生结构化提问 UI。
2. 判断标准:是否存在可提交 question/header/id/options 一类结构化字段,并让用户直接点选/填写的能力;名称不限,可表现为 AskUserQuestion 、 request user input 、 ask user question 、 ui.form 等。
3. 将结论以 采访 UI 能力 输出到对话中,至少包含:
是否支持结构化采访 UI
工具名称或能力形态
是否支持单选 / 多选 / 自由补充
Step 0 实际执行策略: structured ui / text fallback
4. Step 0 发问前,必须先回查这一结论;支持则使用 tpl interview structured ui.md ,不支持则使用 tpl interview text fallback.md 。
3.1.3 Search 工具清单探测
由于 Research 分支极度依赖网络检索能力:
1. 主 agent 自检所有带有 web search 或直接读取 URL 功能的系统工具及自定义 skill。
2. 梳理支持项,输出名为 Search 工具清单 的表格到对话中。
3. 此步生成的清单,将在 Step 2A 通过 TOOLS AVAILABLE 变量直接喂给检索子代理,务必清晰详实。
3.1.4 兜底能力检查
如果缺失基础能力,必须主动停止并报错:
文件读写、Python、规划: 必须具备 ,无则直接停止流程。
信息检索:尽量具备,若无可主动建议用户仅走 Step 2B 修改本地资料。
图像生成:若无实际工具支持,强制后续图片策略降级为 manual slot 或 decorate 。
3.2 路径变量
变量 值
SKILL DIR 当前 skill 根目录(例如: ../skills/ppt agent workflow san , 必须是相对路径 )
ROOT OUTPUT DIR ppt output/ (必须相对 CWD,禁止跳出)
RUN ID YYYYMMDD HHMMSS topic (带时间戳用于区分同目录下不同任务的产出)
OUTPUT DIR ROOT OUTPUT DIR/runs/{RUN ID}
RUN ID 唯一性约束 :同一个 PPT 任务全程只允许一个 RUN ID,Step 0 创建后锁定复用,重试/回退/断点恢复均复用同一个,禁止为同一任务重复创建。不同的 PPT 任务(不同主题)各自独立 RUN ID。恢复旧任务时绑定旧 RUN ID。
⚠️ 跨环境可移植性红线(防止运行时路径污染) :
在组装并向 prompt harness.py 传入用于子代理指引的变量时,主 Agent 绝对禁止 将其展开成宿主的死硬绝对路径(如 /home/xxxxxxxx/... ),也尽量避免结构极度脆弱的外跳路径(如 ../../../.gemini/... )。
最聪敏的终极解决方案 :
1. 对于引擎代码路径(如 var SKILL DIR= 或 var REFS DIR= ),主 agent 请直接传递 带有环境变量字面量 的字符串本身(如 var SKILL DIR='$SKILL DIR' 、 var REFS DIR='$SKILL DIR/references' )。
2. 这样最终生成的 OUTPUT DIR/runtime/prompt .md 模板内容里,就会直接保留 python3 $SKILL DIR/scripts/... 这种占位符。子代模型也会乖乖地用这样的环境变量向终端请求执行,任何终端只要配置了 $SKILL DIR 都可以瞬间通跑我们的产物!
3. 对于业务流水线位置( OUTPUT DIR 相关),必须退化成基于 CWD 的干净相对路径。
3.3 正式产物链
运行时 prompt 落 OUTPUT DIR/runtime/prompt .md 。
4. Canonical Plan
!强制使用CLI 原装plan list工具管理所有task
Plan 更新规则 :仅状态变化时更新;并行页逐页追踪不合并;create/wait/close 拆开;generate/validate 拆开;回退显式标记 ROLLBACK→StepID 。
5. 调度骨架与真源
5.1 统一 Subagent 调度骨架(P2A/P2B/P3/P3.5/P4 共用)
1. 查 cheatsheet 对应步骤 → harness 生成阶段 prompt 文件(phase1 + phase2 [+ phase3])
2. harness 生成 orchestrator prompt(轻量调度,只含阶段路径 + 渐进式执行协议)
3. 按《Subagent 操作手册》创建 subagent(必须传 model SUBAGENT MODEL )
4. 发送 RUN (orchestrator prompt 路径)→ subagent 内部自主渐进式读取各阶段 → 收到 FINALIZE
5. 主 agent 执行 gate 复检;若是 Step 4 且 manual audit mode != off ,则 FINALIZE 后必须先经过 review 后的 [WAIT USER] 放行点,再进入整页终检 → 不再复用时立即 close
5.2 真源索引
类别 路径 消费方式
Prompt 模板 references/prompts/tpl .md 传路径给 harness,不手动预读
执行细则 references/playbooks/ playbook.md inject file 注入
风格真源 references/styles/runtime style .md Step 3.5 注入
大纲/采访/交付合同 scripts/contract validator.py P0 / P3 / P5 Gate
Step 4 schema 真源 scripts/planning validator.py P4 planning Gate
Step 4 图审与结构校验 scripts/visual qa.py P4 PNG + planning + HTML 双层 Gate
CLI 命令 references/cli cheatsheet.md Step 0 前读取,后续直接引用
CURRENT BRIEF PATH :research → search brief.txt ;非 research → source brief.txt (Step 3/4 共用)。
5.3 单一真源与自动检查
workflow / schema 版本真源 : scripts/workflow versions.py (当前 WORKFLOW VERSION = 2026.04.09 v4.1 )
Step 4 schema 真源 : scripts/planning validator.py
outline 密度合同真源 : scripts/contract validator.py
Step 4 结构/像素双层校验真源 : scripts/visual qa.py
prompt 变量真源 :各 references/prompts/tpl .md 模板中的 {{VAR}}
资源 ID 真源 : references/layouts/ 、 references/blocks/ 、 references/charts/ 、 references/principles/ 的真实文件 stem,与 scripts/resource loader.py 的归一化规则
多阶段完成信号真源 :各 orchestrator 模板中的阶段协议
自动检查入口 :修改 prompt/playbook/cheatsheet/Step 4 schema 示例后,运行 python3 SKILL DIR/scripts/check skill.py
6. 主流程状态机
6.1 Step 全景表
Step 核心动作 关键产物 Gate 失败回退
P0 采访并归一化需求 interview qa.txt / requirements interview.txt contract validator interview + requirements interview 补问,不进 P1
P1 识别输入确定分支 分支写入 requirements interview.txt 逻辑判断 WAIT USER
P2A 检索并压缩资料 search.txt / search brief.txt contract validator search + search brief 回退 P2A.01 重建 ResearchSynth(扩大搜索预算/维度)
P2B 压缩用户现有资料 source brief.txt contract validator source brief 回 P2B 重写
P3 生成大纲(内部自审) outline.txt contract validator outline (含 density bias / density curve / 单页密度窗口 ) 回退 P3.01 重建 Outline subagent,最多 2 轮;仍失败则 BLOCKED OUTLINE 呼叫用户裁决
P3.5 固定全局风格 style.json contract validator style 回 P3.5
P4 并行生产各页 planningN.json / slide N.html / slide N.png planning validator + 三件套存在性 + visual qa (PNG + planning + HTML)+ 主 agent 看图 + (若开启)用户人工图审通过 只回退该页;人工图审未通过时默认从 review 重开;同类 P0/P1 连续 2 轮不收敛则强制回退 planning
P5 导出交付 preview.html / 双 pptx / delivery manifest.json contract validator delivery manifest 只回退导出
所有命令完整参数见 cli cheatsheet.md 。
6.2 Step 0 采访(核心起点,不可跳过)
即使第一句话用户提供了极多信息, 严禁跳过采访阶段 。
高效推进 :采访直接收集所需字段信息,不生成解释性分析与背景描述。
默认执行方式 :优先按环境能力生成使用结构化采访 UI( tpl interview structured ui.md ),若不支持则用格式清晰且附带选项的文本问答( tpl interview text fallback.md )。
结构化输出约束 :通过提示向用户提供明确的备选项。最终收集的字段组合必须高度结构化、数据详实,能直接输出至 requirements interview.txt 并 100% 被下游验证器(Gate)与子系统(Subagent)解析消费,无需推测与加工。
必须覆盖但允许精简(如果已知)的维度 :场景、受众、核心传达目标、期望页数与密度、风格倾向、品牌规范、配图策略、资料使用范围,以及是否参与中间人工审计。
密度归一化约定(Step 0 就要定死) :用户填写的 page density 只表示整套 deck 的整体倾向,不等于每页固定密度。内部统一映射为 density bias :
少而精 relaxed
适中 balanced
容量极大 ultra dense
后续单页差异由 outline 产出的 density curve 决定,不交给 html 临场发挥。
subagent 模型与思考深度(必问) :直截了当让用户选「后续子系统使用什么模型,以及需要何种等级的思考深度?」(如低/中/高,或者普通/深度思考,视当前模型