☰
给 Agent 装上“设计师之眼”:huashu-design 在 Claude Code 中的 HTML 与 PPTX 生成实践
2026/10/2 11:53:17 网站建设 项目流程

1. 为什么 Agent 需要一双“设计师之眼”

如果你最近在 Claude Code 里让 Agent 帮忙做页面或者 PPT,大概率遇到过这种场景:代码逻辑没问题,但出来的东西一股“AI 味”——配色是那种说不上来的紫蓝渐变,字体大小全靠猜,间距忽大忽小,PPT 更是直接把网页截图贴上去,改一个字都得重来。这不是模型能力不行,而是它缺少一套“设计上下文”的约束。

huashu-design 这个开源 Skill 想解决的就是这件事。它本质上不是组件库,而是一套让 Claude Code 这类 Agent 具备真实设计交付能力的协议:先强制做品牌资产验证,再动手画;产出物不是一张死图,而是可编辑的 HTML 和原生 PPTX。换句话说,它给 Agent 装上了一双“设计师之眼”,让它知道什么叫“从已有设计上下文长出来”,而不是凭空捏造。

这篇文章面向的是已经在用 Claude Code、想让 Agent 产出高保真页面或演示文稿的开发者。我会把环境准备、Skill 接入、可复制的配置片段、验证请求和常见报错排查都拆开讲,你跟着做就能复现一套“终端里出设计稿”的工作流。核心检索词就三个:huashu-design、Claude Code、HTML 与 PPTX 生成。适合谁?适合那些宁愿待在终端里、也不想为了改一个按钮颜色去打开图形界面的人。

先说清楚它和普通绘图 Skill 的区别。普通 Skill 是你给指令它画图,画完就完了;huashu-design 在动笔前会先问品牌指南、搜官网资产、抓色值、生成一份brand-spec.md作为唯一真理来源,最后交付前还会用 Playwright 自己点一遍。这套“事实验证先于假设”的流程,才是它和 65 分平庸作品的分水岭。下面从接入开始。

2. 前置准备:把 huashu-design 接进 Claude Code

在讲配置之前,先明确一个前提:Claude Code 要调用外部模型或 Skill 生态,需要一个稳定的 API 入口。我这边用的是 TaoToken 的 API 地址https://taotoken.net/api,它兼容 Anthropic 的接口格式,Claude Code 可以直接指过去。官网在https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=,需要看文档的话从那里进。

第一步是拿到 API Key。进控制台创建密钥,地址是https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite。创建完复制那串sk-开头的字符串,后面配置里要用。注意别把它提交到 Git 仓库,我一般放在本地环境变量或者~/.claude/settings.json里。

第二步是确认 Claude Code 版本。huashu-design 依赖 Skill 机制和 Playwright 自动化,建议 Claude Code 用较新的版本。终端里跑claude --version看一眼,太旧的话先升级。Node 环境建议 18 以上,因为html2pptx.js里用到了PptxGenJS,对 Node 版本有要求。

第三步是拉取 huashu-design 仓库。它是个开源项目,直接 clone 到本地一个固定目录,比如~/skills/huashu-design。目录结构里你会看到SKILL.md、scripts/html2pptx.js、assets/animations.jsx这几个关键文件,后面排障会反复提到它们。

第四步是把 Skill 注册给 Claude Code。Claude Code 读取 Skill 的方式是扫描指定目录下的SKILL.md,所以你要么把 huashu-design 放进它默认的 skills 路径,要么在配置里显式声明路径。我选后者,因为路径可控,出问题好排查。

这里有个容易踩的坑:很多人以为把仓库 clone 下来就完事了,其实 Claude Code 根本不知道这个 Skill 存在。必须让它在启动时能读到SKILL.md的元信息,否则你在对话里说“用 huashu-design 生成 PPT”,Agent 只会一脸茫然地自己瞎画。所以下一步的配置文件才是关键。

另外提醒一句,huashu-design 的SKILL.md里定义了“位置四问”和 5 步品牌资产协议,这些是它区别于普通绘图 Skill 的核心。接入后不要急着改这些流程,先按原样跑通一遍,理解它的设计规划逻辑,再考虑定制。

3. 可复制配置:settings.json 与 Skill 声明片段

这一节给你可以直接抄的配置。Claude Code 的配置分两层:一层是模型接入(Base URL + Key + Model ID 三件套),一层是 Skill 路径声明。两样都要配对,缺一个都跑不起来。

先看模型接入。Claude Code 支持通过settings.json指定 API 端点。文件位置通常在~/.claude/settings.json,没有就新建。下面这段是完整可用的片段,注意把sk-你的密钥换成上一步创建的真实 Key:

{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "sk-你的密钥", "ANTHROPIC_MODEL": "claude-sonnet-4-20250514" }, "skills": { "paths": [ "/Users/yourname/skills/huashu-design" ] } }

这里三个字段对应三件套:ANTHROPIC_BASE_URL是接口地址,ANTHROPIC_API_KEY是密钥,ANTHROPIC_MODEL是模型 ID。Model ID 按你实际能用的填,不同账号可选的模型可能不一样,填错会直接报模型不存在。skills.paths指向你 clone 下来的 huashu-design 目录,Claude Code 启动时会去这个目录找SKILL.md。

如果你用的是 Codex 或者 Cline 这类工具,配置形式不同但三件套逻辑一样。比如 Codex 的auth.json里要写base_url和api_key,Cline 的 MCP 配置里要写baseUrl、apiKey、model。不管哪个工具,记住 Base URL 用https://taotoken.net/api,不要带 UTM 参数,那是给网页链接用的,接口地址保持干净。

Skill 声明还有一种方式是在项目根目录放.claude/skills软链接,但我不推荐,因为项目一多路径就乱。统一放全局settings.json里最省心。

配置改完记得重启 Claude Code,它只在启动时读一次配置。重启后在对话里输入/skills之类的命令(具体命令看版本),应该能看到 huashu-design 被加载。如果看不到,先检查 JSON 有没有语法错误——多一个逗号都会导致整个配置静默失效,这是最常见的坑。

还有一点,skills.paths里写的是绝对路径,别用~简写,某些版本不解析波浪号。Windows 用户注意路径分隔符用正斜杠或者双反斜杠,单反斜杠会被当转义符。

4. 验证请求:从一句话到 HTML 与 PPTX 产出

配置好了,怎么确认它真的在工作?我给你一条最小验证路径,从对话到产出物一步步看结果。

启动 Claude Code,进入一个空目录,输入类似这样的话:“用 huashu-design 帮我做一个产品介绍页,品牌主色用 #1A73E8,输出 HTML,再转一份可编辑 PPTX。” 注意这里我故意给了品牌色,因为 huashu-design 的 Step 1 就是问品牌指南,你给了它就不用再搜。如果你想测试它的资产抓取能力,可以只说品牌名,让它自己去搜官网。

正常流程下,Agent 会先输出一段设计规划,包括叙事角色、观众距离、视觉温度、容量估算这“位置四问”的答案。这一步很关键,如果它跳过规划直接写代码,说明 Skill 没被正确加载,回去检查上一节的配置。

规划确认后,它会生成 HTML 文件。你会在当前目录看到类似index.html和brand-spec.md两个文件。打开brand-spec.md,里面应该是从你的品牌色或官网抓取结果里提取的 Hex 色值、字体栈、间距规范。这份文件就是“唯一真理来源”,后续所有样式都引用它。

接着是 PPTX 转换。huashu-design 调用scripts/html2pptx.js,把 DOM 元素逐个翻译成 PptxGenJS 对象。核心逻辑是这样的:

// 源码位置:scripts/html2pptx.js async function translateDomToPpt(element) { const style = window.getComputedStyle(element); const rect = element.getBoundingClientRect(); pptx.addText(element.innerText, { x: rect.left / scale, y: rect.top / scale, color: rgbToHex(style.color), fontSize: parseFloat(style.fontSize) * 0.75 }); }

注意它不是截图贴图,而是把每个div、span映射成 PowerPoint 里的原生形状和文本框。所以你拿到 PPTX 后,双击文字就能改,颜色也能在 PowerPoint 里调。这是它和“网页截图塞进 PPT”最本质的区别。

验证成功的标志有三个:一是目录里同时出现 HTML、brand-spec.md和 PPTX;二是打开 PPTX 能选中单个文本框并编辑;三是 HTML 在浏览器里打开,配色和brand-spec.md里定义的一致。三个都满足,说明整条链路通了。

如果你想测它的自动化点击验证,可以做一个带按钮的原型,它会用 Playwright 跑一遍点击测试,按钮点不动会自我修正后再交付。这一步耗时稍长,但能省掉你手动检查的功夫。

5. 常见报错排查:401、local proxy failed 与 reading choices

跑不通的时候别慌,huashu-design 这条链路的报错其实就那几类,对着下面这张表基本能定位。

报错信息大概率原因处理方式
401 UnauthorizedAPI Key 错误或未生效检查settings.json里 Key 是否完整、是否重启
local proxy failedBase URL 写错或网络不通确认地址是https://taotoken.net/api,不带多余路径
reading choices 报错模型返回格式异常换 Model ID,或检查是否触发了内容过滤
OAuth 相关报错误用了需要 OAuth 的端点改用 API Key 方式,别走 OAuth 流程
Skill not foundskills.paths路径不对用绝对路径,确认目录下有SKILL.md
PPTX 空白Playwright 未安装在项目目录跑npx playwright install

401 是最常见的。很多人 Key 复制的时候漏了尾部字符,或者配置里多了空格。还有一种情况是 Key 创建后没生效,去控制台确认状态是启用。改完配置一定要重启 Claude Code,它不热加载。

local proxy failed这个报错名字有点误导,其实多数时候不是代理问题,而是 Base URL 写成了带路径的形式,比如https://taotoken.net/api/v1这种。接口地址就保持https://taotoken.net/api,后面的路径由 SDK 自己拼。另外确认你的网络能正常访问这个域名,公司内网有时候会拦。

reading choices这类报错通常出现在模型返回结构不符合预期时。可能是 Model ID 填了一个不支持当前接口格式的模型,换一个再试。也可能是输入内容触发了安全过滤,把请求精简一下重发。

OAuth 报错一般是你混用了两种认证方式。Claude Code 支持 OAuth 登录,但走 API Key 的时候不要同时开 OAuth,两者会打架。在配置里只保留ANTHROPIC_API_KEY就行。

如果 Skill 加载了但 PPTX 是空白,八成是 Playwright 的浏览器没装。html2pptx.js依赖它做渲染和点击测试,在项目目录跑一次npx playwright install chromium就好。

最后提醒,排障时优先看 Claude Code 的日志输出,它会打印实际请求的 URL 和状态码。对照上面的表,基本五分钟内能定位。搞不定的时候,接入文档在https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite,里面有接口格式和常见问题。

6. 把设计生产力留在终端里

跑通这套流程之后,我最大的感受是:Agent 做设计这件事,瓶颈从来不是画得好不好看,而是它有没有“约束”。huashu-design 的价值就在于把品牌资产协议、位置四问、自动化点击验证这些约束固化成了 Skill,让 Claude Code 从“随手画”变成“带着品牌手册入场的设计师”。

如果你要长期做这类工作流,比如批量生成不同风格的 PPT、给多个产品做落地页,建议把模型调用走 Coding Plan,地址是https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite,适合高频、长时间的 Agent 编码场景。只是想先验证模型对话效果,用模型对话入口https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=model-chat&utm_campaign=rewrite试几句也行。

一个实用技巧:把brand-spec.md纳入版本管理。每次 Agent 生成新页面,先让它读这份文件,配色和字体就不会漂。另一个技巧是并行跑多个 Agent 试不同风格方向,huashu-design 支持一次推荐 4 个差异化方向,你只做最后决策,规模化产出的效率比手动改稿高得多。

至于那些再也没点开过的图形界面图标,就让它们安静待着吧。终端里一句话能拿到 80 分交付物的时候,工作流自然就绕开了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询