渐进式引导生成
让 AI 真正理解你的设计意图
从"差不多"到"就是它",只需要四步对话循环困境
你说"做一个现代风格的博客",AI 几秒后返回代码——打开浏览器一看,完全不是你想要的
❌ 传统:循环困境
┌──────────────────────┐
↓ │
模糊提示 → 差结果 → 微调 ─┘
(反复 5-8 次,勉强能用)
✓ 渐进式:直线推进
直觉描述 → 需求澄清 → 确认原则 → 精准输出 ✓
(一次到位,几乎不用改)
语义鸿沟
当你说"现代简约"时,AI 可能想到 Apple 的极简黑白,也可能是 Medium 的宽松排版——同一个词,100 种理解
你可能想说的
"现代简约" =
浅灰蓝背景
深灰文字
适量留白
轻微阴影
蓝色强调色
AI 可能理解的
"现代简约" 可能是:
→ Apple 极简黑白
→ Medium 宽松排版
→ Notion 柔和色彩
→ 某个模板的默认样式
表达差距
你想说"看起来干净",设计师会说"8px 基准系统,最小间距 0.5rem"——差距在这
| 你的表达 | 设计师的表达 |
|---|---|
| "要看起来干净" | "8px 基准系统,最小间距 0.5rem,最大宽度 75ch" |
| "颜色要协调" | "HSL 色彩空间,主色饱和度 60-80%,辅助色同色系" |
| "要有现代感" | "box-shadow: 0 4px 6px,圆角 0.375rem,无衬线字体" |
渐进式提示
一种分阶段、结构化的 AI 沟通方法:从模糊感受出发,通过关键问题引导,逐步细化,最终生成精准提示词。
一句话 vs 渐进式
一次性输入模糊描述 → 反复修改。分阶段澄清需求 → 一次到位。
核心理念
不是要求 AI 读懂你的心思,而是引导 AI 与你共同澄清需求。
方法对比
传统一句话提示 vs 渐进式提示,差别在哪?
一句话提示
- 一次性输入模糊描述
- 需提前知道所有技术细节
- 结果常偏离真实意图
- 学习曲线低,但效果差
渐进式提示
- 分阶段澄清需求
- 从感觉出发,逐步细化
- 结果精准匹配期望
- 学习曲线稍高,但回报大
四阶段详解
直觉描述 → 需求澄清 → 确认原则 → 精准输出。每一步都在缩小"你想要的"和"AI 理解的"之间的差距。
前两步:输入
直觉描述 — 用日常语言说出感觉。需求澄清 — AI 问你选择题,你选 + 补充。
后两步:输出
确认原则 — AI 总结设计规范,你检查修正。精准输出 — 转化为可执行的专业提示词。
四阶段是个逐渐收窄的漏斗
理解偏差 高 │ ███████ ██████ █████ ████ 低
↓ ① ② ③ ④
┌──────┬──────┬──────┬──────┐
│直觉描述│需求澄清│确认原则│精准输出│
└──────┴──────┴──────┴──────┘
精准度 低 │ │ 高
每往前一步,你和 AI 的理解偏差就缩小一截,提示词的精准度同步上升——所以越往后越省事。
直觉描述
从最模糊的感受开始,用日常语言描述——就像跟设计师朋友聊天
三个要点
- 用日常语言描述感受,不必担心不够专业
- 诚实说"不太确定",这是正常的
- 主动请求 AI 问你问题,而不是自己想
初始提示模板
"我想要一个 [风格] 的 [页面类型],
看起来 [感觉描述],
但具体细节我不太确定。
请你问我一些问题,
通过我的回答逐步细化。"
需求澄清
AI 用选择题帮你把模糊感受转化为可操作的维度——你只需要选,不需要想
1. 颜色系统("简约"的配色方案):
[ ] 极简黑白灰(如 Apple 风格)
[ ] 单色系 + 1 个强调色(如深蓝 + 浅蓝)
[ ] 自然中性色(米白、浅灰、木色)
[ ] 其他:_________
2. 间距与留白("干净清爽"的量化):
[ ] 紧凑型(信息密度高)
[ ] 宽松型(大量留白,突出内容)
[ ] 混合型(标题紧凑,内容宽松)
3. 布局结构:单栏?双栏?网格?
4. 响应式策略:移动优先?桌面优先?
5. 视觉特征:阴影?动画?字体?
确认原则
AI 把你的选择总结成具体设计原则,你来确认或修正
颜色系统:单色系 + 1 个强调色
深灰文字(#1e293b) + 浅灰蓝背景(#f8fafc)
蓝色强调色(#2563eb)
间距系统:宽松型,8px 基准
最小间距 0.5rem,最大宽度 75ch
布局结构:单栏居中,内容宽度适中
响应式: 移动优先,小屏单列 → 大屏增加宽度
视觉特征:轻微阴影 + 简单悬停动画 + 无衬线字体
确认三步
- 检查 AI 的总结是否符合预期
- 修正不准确的部分
- 补充遗漏的细节
精准输出
设计原则转化为 AI 可执行的专业提示词——直接拿来用
创建现代简约博客的 CSS 样式,遵循以下规范:
1. 设计系统:
- 颜色:主色 #2563eb,文字 #1e293b,背景 #f8fafc
- 间距:8px 基准,最大宽度 75ch,段落间距 1.5rem
- 字体:Inter/系统字体,正文 1rem/行高 1.6
2. 布局系统:
- 单栏居中,max-width: 75ch,padding: 2rem 1rem
- 响应式:<768px 基础单栏,768-1024px 可加侧边栏
3. 组件规范:
- 文章卡片:box-shadow 0 4px 6px,悬停 translateY(-2px)
- 标题:h1 字体 2.5rem,底部边框 1px solid #e2e8f0
- 代码块:背景 #f1f5f9,圆角 0.375rem
4. 代码规范:
- 避免 !important,禁止 float/table 布局
- 目标浏览器:现代浏览器最新 2 个版本
实战演练
用"现代简约博客"走一遍完整的四阶段流程,看每一步具体怎么操作。
输入阶段演练
直觉:说出感觉。澄清:选择题 + 补充 — 每个维度先选后补,不确定的跳过。
输出阶段演练
确认:检查 AI 总结的设计规范。输出:拿到可直接使用的专业提示词。
实战:直觉
第一阶段:你只需要说出大致感觉
分析这句话
- 用日常语言("现代简约"、"干净清爽")
- 诚实承认不确定性("不太确定")
- 给了 AI 足够的起点来提问
常见错误
- 一开始就描述技术细节("用 flex 布局")
- 堆砌形容词("要高端大气上档次")
- 不敢说"不确定"
实战:澄清
第二阶段:AI 问你选择题,你选 + 补充
1. 颜色系统
[x] 单色系 + 1 个强调色
补充:深灰文字 + 浅灰蓝背景,强调色用蓝色
2. 间距与留白
[x] 宽松型(大量留白,突出内容)
补充:希望有足够的留白,不要太拥挤
3. 布局结构
[x] 单栏居中(传统博客)
补充:内容不要太宽,保证阅读舒适
4. 响应式行为
[x] 移动优先
补充:手机上要特别好用
5. 视觉特征
[x] 轻微阴影 + 悬停动画 + 无衬线字体
补充:悬停效果要简单,不要太花哨
实战:确认
第三阶段:AI 总结设计原则,你检查并修正
AI 的总结
- 颜色:深灰文字 + 浅灰蓝背景 + 蓝色强调色
- 间距:宽松型,大量留白确保阅读舒适
- 布局:单栏居中,约 75 字符/行
- 响应式:移动优先,小屏体验最佳
- 视觉:轻微阴影 + 简单悬停动画 + 无衬线字体
你的检查
- 颜色方向对吗?需要调整吗?
- 留白程度符合预期吗?
- 有没有遗漏的需求?
- 有没有互相矛盾的地方?
实战:输出
第四阶段:拿到专业提示词,直接生成 CSS
AI 输出的精准提示词(可直接使用):
创建现代简约博客的 CSS 样式:
- 颜色:主色 #2563eb,文字 #1e293b,背景 #f8fafc
- 间距:8px 基准系统,最大宽度 75ch
- 字体:Inter/系统字体,正文 1rem
- 布局:单栏居中,移动优先响应式
- 卡片:轻微阴影 + 悬停上浮效果
- 代码块:浅灰背景 + 圆角
- 避免 !important,禁止 float/table 布局
传统方式
"做一个现代博客"
↓
AI 随机发挥
↓
反复修改 5-8 次
↓
勉强能用
渐进式提示
四步对话
↓
精准提示词
↓
AI 一次生成
↓
几乎不用改
提示工具箱
三个实用工具:风格维度分解表、问题引导技巧、提示模板库。
风格维度表
颜色、间距、布局、响应式、视觉特征 — 五个维度拆解任何风格。
提示模板
风格定义模板和布局细化模板 — 复制即可使用,快速启动渐进式对话。
风格维度表
当你想描述某种风格时,参考这张表思考每个维度的具体表现
| 风格 | 颜色 | 间距 | 布局 | 响应式 | 视觉特征 |
|---|---|---|---|---|---|
| 现代简约 | 单色系+强调色 | 宽松型 | 单栏居中 | 移动优先 | 轻微阴影+无衬线 |
| 极简主义 | 黑白灰 | 大量留白 | 极简结构 | 简单适配 | 几乎无装饰 |
| 复古风格 | 暖色+做旧 | 传统比例 | 对称布局 | 基础适配 | 纹理+衬线 |
| 科技感 | 深色+霓虹 | 精确网格 | 复杂结构 | 高级适配 | 动态效果+发光 |
提示模板
两套现成模板——风格定义和布局细化,复制即可使用
模板一:风格定义
"为了让 CSS 精准匹配 '[风格]',
请帮我澄清以下维度:
1. 颜色系统(典型配色):
[ ] 极简黑白灰
[ ] 单色系 + 1 个强调色
[ ] 自然中性色
补充说明:_________
2. 间距与留白(呼吸感):
[ ] 紧凑型 [ ] 宽松型
补充说明:_________
...(更多维度)"
模板二:布局细化
"基于 '[布局类型]',
请进一步明确布局细节:
1. 响应式策略:
[ ] 移动优先
[ ] 桌面优先
补充说明:_________
2. 断点设置:
[ ] 小屏 <768px
[ ] 中屏 768-1024px
[ ] 大屏 >1024px
补充说明:_________
...(更多细节)"
为何有效
四个原因解释为什么渐进式提示比一句话效果好得多
降低认知门槛
你不需要知道 minmax() 或 aspect-ratio,只需描述你的感觉和期望。AI 帮你翻译成专业术语。
捕捉隐性需求
通过专业问题引导,发现你没意识到的需求——比如"最大内容宽度 75ch"对可读性的重要性。
建立共同语言
逐步将模糊感受转化为专业术语,减少你和 AI 之间的误解。
提高结果质量
每个决策点都经过确认,结果更精准。从"反复修改 5 次"变成"几乎不用改"。
动手练习
风格拆解
选择一个你喜欢的网站(Apple、Medium、Notion 等),用 5 个维度描述它的风格:颜色系统、间距系统、布局结构、响应式行为、视觉特征。
模拟对话
假设你想创建一个"复古风格"的个人作品集网站,模拟渐进式提示的四个阶段:写出初始描述、预期的问题、你的回答、期望的提示词。
实战应用
用渐进式提示方法,让 AI 帮你生成一个页面的 CSS 样式。记录四步对话的过程,对比一句话提示的结果差异。
Open Design 登场
把前面学的"渐进式四步曲"交给一个工具去自动执行——这就是 Open Design
它为什么存在
2026 年 4 月 Anthropic 发布 Claude Design——LLM 不再写废话、直接交付设计成品。但它闭源、收费、云端、锁模型。OD 用同样的"产物优先"思路,但没有任何锁定。
核心反差点
OD 不内置 Agent——你笔记本上最强的 coding agent 已经装好了。OD 做的是把它接进 skill 驱动的设计工作流,每一层都 BYOK(自带密钥)。
站在四个开源肩膀上
OD 不是凭空发明的——它把四个开源项目的能力蒸馏成了一个统一工作流
| 来源项目 | 贡献的能力 | 在 OD 中的位置 |
|---|---|---|
| huashu-design (花叔的画术) | 设计哲学指南:Junior-Designer 工作流、5 步品牌协议、anti-AI-slop 清单、五维自评 | discovery.ts(Discovery 表单 + 视觉方向选择器) |
| guizang-ppt-skill (归藏的杂志风 PPT) | Deck 模式:杂志版式、WebGL hero、P0/P1/P2 自检清单 | skills/guizang-ppt/(原样捆绑,保留 LICENSE) |
| open-codesign (第一个开源竞品) | 流式 artifact 循环、沙盒 iframe(React 18 + Babel)、实时 agent 面板、5 种导出 | apps/web 的预览器与导出管线 |
| multica-ai (运行时架构) | PATH 扫描 agent 检测、本地 daemon 作为唯一特权进程 | apps/daemon 的整体架构 |
三层组合:可插拔的设计引擎
OD 把"建立共同语言"这件事,拆成了三个独立可替换的层
| 层级 | 角色 | 对应本章概念 | 示例 | 如何切换 |
|---|---|---|---|---|
| Agent CLI | 执行者(大脑) | 对话的 AI | Claude Code / Codex / Gemini CLI | PATH 自动检测,picker 一键切换 |
| Skill 技能 | 工作流(方法) | 四步曲的流程脚本 | web-prototype / saas-landing | Skill 下拉(31 个内置) |
| Design System | 视觉语言(词汇) | 风格维度表的具体值 | Linear / Stripe / Notion / Apple | DS 下拉(129 套内置) |
一句 prompt + 选定的 Skill + 选定的 Design System = 符合品牌规范的页面。三层各自独立替换,互不耦合。
技能库(31 个)
按 scenario 分组:design / marketing / operation / engineering / product / finance / hr / sale / personal。每个 Skill 是一份 SKILL.md,规定生成流程与输出规则。
设计系统(129 套)
2 套手写 starter + 70 套产品级(Linear、Stripe、Vercel、Notion、Apple、小红书…)+ 57 个 design skill。每套含确定性 OKLch 色板 + 字体栈 + 布局规则。
四种 Mode:不同的产物形状
Mode 不是订阅档次,而是工作流容器——决定 UI、导出管线、默认 Skill
| Mode | 产物 | 首次出结果 | 默认 Skill 举例 |
|---|---|---|---|
| Prototype | 单屏可编辑 HTML/JSX | ~60-120s | web-prototype、saas-landing、dashboard、mobile-app |
| Deck | 多页横滑 HTML 演示 | ~90-180s | guizang-ppt、simple-deck、replit-deck |
| Template | 策展模板填充副本 | ~20-40s(最快) | stripe-ish-landing、notion-ish-workspace |
| Design System | DESIGN.md + 样例预览 | ~60-180s | design-system-from-screenshot / from-brief |
组合使用的威力
先跑一次 Design System Mode 生成 ./DESIGN.md;之后所有 Prototype / Deck / Template 都会自动读取它——这是 OD 的"一次定义、处处复用"模式。
如何选 Mode
不必手动选——直接打字。prompt 含"slide/deck/ppt"→Deck;含"design system/tokens/brand"→DS;含"template"+模板名→Template;其余默认 Prototype。
三种部署拓扑
同一套 UI,能以三种形态运行——从纯本地到纯云端,按需选择
| 拓扑 | 构成 | 适用场景 | 权衡 |
|---|---|---|---|
| A · 全本地 (默认) | 浏览器 → Next.js → 本地 daemon → 本地 Agent CLI | 日常开发、隐私敏感 | 零配置、零账户;最快、最完整 |
| B · Vercel + 本地 daemon | 浏览器 → Vercel Web → ws 隧道 → 本地 daemon → Agent CLI | 团队共享 Web 层、跨设备访问 | 密钥留在本地;Web 层仅是 UI |
| C · Vercel 直连 API | 浏览器 → Vercel → Anthropic/OpenAI API(BYOK 存浏览器) | "先试一下"的体验路径 | 降级:无 CLI、无文件 artifact、无 PPTX 导出 |
<iframe sandbox="allow-scripts">(不给 allow-same-origin)隔离 XSS;agent 的 cwd 锁定在 artifact 目录,继承 agent 自身的权限模型(如 Claude Code 的 --permission-mode)。
Prompt 三层组合机制
每次按下 Send,OD 都会从三层构建 system prompt——这是"共同语言"的工程化
三层叠加顺序
① BASE_SYSTEM_PROMPT
输出契约:用 <artifact> 包裹
不使用 code fence
② + DESIGN.md 正文
色板 / 字体 / 布局规则
(当前激活的设计系统)
③ + SKILL.md 正文
工作流 / 输出规则 / 自检清单
(当前激活的技能)
然后才是你的输入
user: 你的 prompt
"做一个杂志风格的
种子轮 pitch deck"
→ Agent 看到的完整上下文 =
基础契约 + 品牌视觉 + 技能流程
+ 你的具体需求
会话内缓存
正文按 session 在内存中缓存,切换 Skill 或 DS 只需从 daemon 获取一次,后续 send 复用同一份组合。
热重载
dev 模式下 DESIGN.md / SKILL.md 文件变化会被监听,下次 send 自动用新版本——方便迭代设计系统。
四步曲被自动化了
你刚学的渐进式方法,在 OD 里对应着具体的内置机制
手动渐进式(本章所学)
1. 直觉描述(自己写)
2. 需求澄清(自己问自己)
3. 确认原则(自己查风格表)
4. 精准输出(自己拼提示词)
OD 自动化(工具代劳)
1. Discovery 提问表单(自动弹出)
2. 5 个视觉方向(自动可选)
3. Skill + Design System(下拉切换)
4. <artifact> 实时渲染(沙箱预览)
五步生成回路
从你按下 Send 到看到渲染结果,OD 内部走了这五步
| 步骤 | 动作 | 发生了什么 |
|---|---|---|
| ① 提问 | Discovery 表单 | 交互式表单先弹出,澄清 surface / 受众 / 调性 / 品牌上下文 / 规模——不让模型乱猜一个像素 |
| ② 选向 | 视觉方向选择 | 从 5 个策展方向选一个(Editorial Monocle / Modern Minimal / Warm Soft / Tech Utility / Brutalist),每个带确定性 OKLch 色板 + 字体栈 |
| ③ 规划 | TodoWrite 流式 | 实时计划以活卡片形式流入 UI,in_progress → completed 实时切换,你能中途介入纠偏 |
| ④ 落盘 | 真实项目目录 | daemon 在磁盘建真实文件夹(种子模板 + 布局库 + 自检清单),Agent 拥有真实 Read/Write/Bash/WebFetch |
| ⑤ 批评 | 五维自评 + artifact | 对照自己的产出做五维自评,最终输出 <artifact> 在沙箱 iframe 秒级渲染 |
<iframe sandbox="allow-scripts"> 里渲染(无 allow-same-origin),与宿主应用完全隔离;JSX artifact 注入 vendored React 18 + Babel standalone 动态求值;agent 写文件触发 100ms 防抖重建。
快速上手:三命令跑起来
本地优先——三条命令启动完整产品,无需账户、无需配置
环境要求
Node.js 24 + pnpm 10.33。建议提前装好任一 Agent CLI(Claude Code / Codex / Gemini CLI 等);一个都没装也能用 BYOK API 模式兜底。
三条命令
corepack enable
pnpm install
pnpm tools-dev run web
然后打开终端输出的本地 URL(默认 localhost:3000)。
首次启动自动发生
→ 扫描 PATH 上的 agent CLI
→ 自动选择第一个可用的
→ 默认 Skill:web-prototype
→ 默认 DS:Neutral Modern
→ SQLite 初始化在 .od/
输入第一句
"做一个杂志风格的
种子轮 pitch deck"
→ Discovery 表单弹出
→ 选 5 个视觉方向之一
→ Agent 流式生成
→ 右侧实时渲染
.od/app.sqlite——明天打开 todo 和文件还在原地。
Skill 选择指南
31 个内置 Skill 按场景分组——选对 Skill,等于选对工作流模板
| 你想要的产物 | 推荐 Skill | Mode |
|---|---|---|
| 通用网页原型(landing/hero) | web-prototype(默认) | Prototype |
| SaaS 营销页(hero/features/pricing/CTA) | saas-landing | Prototype |
| 数据密集型后台 | dashboard | Prototype |
| 独立定价对比页 | pricing-page | Prototype |
| 三栏文档布局 | docs-page | Prototype |
| 长文编辑风格 | blog-post | Prototype |
| 手机单屏(iPhone 15 Pro 边框) | mobile-app | Prototype |
| 杂志风演示文稿 | guizang-ppt | Deck |
| 极简横滑演示 | simple-deck | Deck |
| 从截图反推设计系统 | design-system-from-screenshot | Design System |
dashboard;做营销页像 Stripe → saas-landing。Skill 已为该形态预设了布局规则和自检清单。
三种精修方式
生成只是第一步——OD 提供三种粒度的精修,对应不同的纠偏成本
| 方式 | 粒度 | 典型用法 | 是否重新生成 |
|---|---|---|---|
| Chat 自由对话 | 整页/整段 | "把 CTA 移到首屏上方"、"加一个关于定价的章节" | 是(局部) |
| Comment 元素评论 | 单个元素 | 点元素 → 弹窗 → "把这张卡片改成毛玻璃效果" | 否(外科手术式编辑) |
| Slider 参数滑块 | 单个参数 | 调 accent_hue、spacing_scale——只发送参数值 | 否(极快) |
Comment 模式的条件
只在 Agent adapter 支持 surgicalEdit === true 时可用(如 Claude Code 的原生 tool loop)。点击捕获 [data-od-id],生成精确到元素的编辑指令。
Slider 的条件
由 Skill 在 frontmatter 声明 od.parameters。滑块拖动只重发参数值,不走完整 chat——交互成本最低、响应最快。
导出与持久化
OD 把所有产物都当作真实文件——可 git 跟踪、可 PR review、可明天继续
五种导出格式
HTML 内联 CSS,资源转 data: URI
PDF puppeteer → page.pdf()
PPTX slides.json → pptxgenjs
ZIP 归档整个 artifact 目录
MD 原样复制(若产物是 .md)
磁盘上的产物布局
.od/
├── app.sqlite # 持久化数据
├── artifacts/
│ └── <时间戳>-<slug>/
│ ├── artifact.json # 元数据
│ ├── index.html # 主产物
│ └── assets/ # 图片/字体
└── projects/<id>/ # Agent 的 cwd
为什么用文件而非数据库
artifact.json 元数据 + history.jsonl 操作日志 → OD 能不用数据库就重建 artifact 树。可直接 git add ./.od/artifacts/,在 PR 里 review 设计。
SQLite 持久化的内容
projects / conversations / messages / tabs / 用户 templates。明天再开应用,todo 卡片和打开的文件都还在原位——会话状态不丢。
POST /api/import/claude-design 解析成真实项目,agent 接着 Anthropic 停下的地方继续编辑。
实战 prompt 模板与排障
四个场景的起手 prompt + 常见问题的快速排查
场景 A · 产品落地页
Skill: saas-landing
DS: Stripe
"做一个面向开发者 API
的产品落地页,强调低延
迟和全球边缘节点"
场景 B · 投资人演示
Skill: guizang-ppt
DS: 自选
"种子轮 pitch deck,
强调市场大小、产品演示、
团队介绍、融资用途"
场景 C · 后台 dashboard
Skill: dashboard
DS: Linear
"用户增长后台,含 DAU/MAU
折线图、留存热力图、
Top 5 渠道表格"
场景 D · 移动端引导
Skill: mobile-onboarding
DS: Warm Editorial
"三屏引导:splash、
价值主张、登录。
强调温暖友好的语气"
| 问题 | 排查方向 |
|---|---|
no agents found on PATH | 装一个 CLI(claude/codex/gemini…),或切到 Settings 里的 API mode 填 key |
daemon 在 /api/chat 返回 500 | 看 daemon 终端 stderr 尾部;通常是 CLI 拒绝了参数,查 agents.ts 的 buildArgs |
媒体生成报 OD_BIN 缺失 | 运行 pnpm --filter @open-design/daemon build 后重启 tools-dev,并在应用里重开 project |
| artifact 不渲染 | 模型没把输出包在 <artifact> 里;检查 system prompt 传递,换更强模型或更严格 Skill |
| nginx 后长生成中断 | 关 gzip、关 proxy_buffering、加长 proxy_read_timeout(防 ERR_INCOMPLETE_CHUNKED_ENCODING) |
本章学习完毕
渐进式提示四步曲:直觉描述 → 需求澄清 → 确认原则 → 精准输出。掌握这个方法,你就能让 AI 精准理解你的设计意图。