揭秘Claude系统提示词:这才是Artifacts的正确打开方式

Artifacts 是 Claude Sonnet 3.5 模型发布时,同步推出的一个极具创新性的功能。

它提供了一个预览窗口,允许我们实时查看、迭代 AI 生成的代码、文档和图表,并与之交互。

这个功能意义非凡,因为它标志着 Claude 从一个单纯的"对话式 AI"进化为了强大的"协作式 AI"。

而我认为,Artifacts 最重要的价值在于,每当模型更新迭代时,我们都能通过这个窗口,第一时间直观地感受到它在编程能力上的具体提升。

不过,出于安全考量,Artifacts 被严格限制在一个独立的"沙盒"环境中运行。

这导致了它无法访问部分浏览器功能(如存储API),也无法从外部获取任何数据。

所以,模型在 Artifacts 中展示的能力,并不能完全等同于它在真实开发环境下的全部实力。

在这种情况下,了解 Artifacts 组件的核心设计原则,在其能力限制范围内最大化地挖掘其可用的编程用例,对于客观地评判模型的编码能力至关重要

而探索这些设计原则的最佳入口,就是分析 Claude 官方为它设定的系统提示词。

(如果这篇文章对你有帮助,请帮忙点赞、关注、转发,这将极大地激励我继续创作。)

对于复杂应用,体验至上

对于复杂的应用程序(Three.js、游戏、模拟):优先考虑功能、性能和用户体验,而非视觉效果。重点关注:

  • 流畅的帧率和灵敏的控制

  • 清晰、直观的用户界面

  • 高效资源利用和优化渲染

  • 稳定、无错误的交互

  • 简单、实用的设计,不会影响核心体验

首先,Claude 的系统提示词明确指出,对于涉及 Three.js(3D 效果)、游戏(复杂规则、流畅体验)或模拟(如碰撞模拟)一类的"复杂应用",它的首要任务是保证"好用",而非"好看"。

这意味着它的产出内容在功能性、流畅度和稳定性上,将优先于华丽的视觉效果。

因此我们可以预见到,在没有特别强调视觉要求时,这类应用的初步成品通常会显得比较朴素。

例如,当我们让 Claude 制作一个交互式 3D 太阳系模型时,默认呈现的效果就非常一般:

markdown 复制代码
请开发一个交互式3D太阳系模型网页应用,具有以下功能和特性:
1. 使用Three.js(通过CDN引入)创建一个视觉上逼真的太阳系模型
2. 包含太阳和所有八大行星(水星、金星、地球、火星、木星、土星、天王星、海王星)以及至少以下天体:
   - 地球的卫星(月球)    
   - 其他主要行星的代表性卫星    
   - 可选:矮行星(如冥王星)和小行星带
3. 实现以下交互功能:    
   - 用户可以通过鼠标点击选择任何行星或天体    
   - 点击后显示详细信息面板    
   - 允许用户通过鼠标拖拽旋转整个太阳系视图    
   - 提供缩放功能,让用户可以放大查看特定行星细节
4. 行星运动应模拟真实的轨道路径和相对运行速度
5. 包含适当的光照效果,展示太阳光如何照射行星表面

(体验网址在文末)

不过,只要我们稍加引导,情况就会大不相同。只需要在原提示词后追加这一句指令,就能极大地提升它的视觉体验:

复制代码
考虑设计的情感冲击力和"惊艳元素" 。问问自己:"这会让人停下滚动并发出'哇'的惊叹吗?"现代用户期望视觉上引人入胜、充满活力的互动体验。

(体验网址在文末)

可以看到,加入这句提示后,生成内容的质感和视觉吸引力明显得到了提升。

对于展示类应用:惊艳、激进!

  • 对于登录页面、营销网站和演示内容: 考虑设计的情感冲击力和"惊艳元素" 。问问自己:"这会让人停下滚动并发出'哇'的惊叹吗?"现代用户期望视觉上引人入胜、充满活力的互动体验。

  • 除非特别要求采用传统风格,否则默认采用当代设计趋势和现代审美。 考虑当前网页设计的前沿元素(例如暗黑模式、玻璃态、微动画、3D 元素、粗体字体、鲜艳渐变) 。

  • 静态设计应该只是例外,而不是常规。 加入一些精心设计的动画、悬停效果和交互元素,让界面更具响应性和活力 。即使是细微的动作也能显著提升用户参与度。

  • 面对设计决策时, 要倾向于大胆、出人意料的设计,而不是保守、传统的设计 。这包括:

  • 颜色选择(鲜艳与柔和)

  • 布局决策(动态与传统)

  • 排版(富有表现力 vs. 保守)

  • 视觉效果(沉浸式 vs. 极简式)

  • 利用现有技术突破极限 。运用高级 CSS 功能、复杂动画和富有创意的 JavaScript 交互。目标是打造卓越而前沿的体验。

  • 通过适当的对比度和语义标记确保可访问性

  • 创建功能性、可运行的演示,而不是占位符

与处理复杂应用时的保守策略相反,当面对登录页面、营销网站和演示内容这类"展示类应用"时,Claude 的做法就显得激进许多。

它会主动追求强烈的情感冲击和视觉上的"惊艳元素",积极采用前沿的设计风格和丰富的互动效果。

因此,在没有特别风格要求的情况下,这类应用默认会采用充满现代感的设计。下面这个由它制作的个人网站就是个很好的例子:

diff 复制代码
请帮我设计一个个人网站。
包含以下内容元素:
- "友情链接区块"
- "站长寄语 / 每日语录 / 推荐文章区"
- "电子邮件订阅框 + 用户登录框"
- "最新更新 / 精彩推荐 / 网站公告板块"
- "背景音乐自动播放"

(体验网址在文末)

当然,如果你不喜欢这种风格,只需在提示词中明确你的需求,它同样能精准实现。

例如,我们可以让它打造一个 2000 年代左右的复古风格网站:

diff 复制代码
请帮我设计一个"2000年左右风格"的个人网站,要求页面使用表格布局(而非CSS布局),有彩色背景、GIF小图标、滚动文字(marquee)、电子邮箱订阅框、友情链接、小型导航栏、页面信息密集,整体风格复古、有怀旧感,像早期大学生做的手工网页。
包含以下内容元素:
- "友情链接区块"
- "站长寄语 / 每日语录 / 推荐文章区"
- "电子邮件订阅框 + 用户登录框"
- "最新更新 / 精彩推荐 / 网站公告板块"(
- "背景音乐自动播放"

(体验网址在文末)

可视化支持:SVG与Mermaid

SVG (可缩放矢量图)

SVG:"image/svg+xml"。用户界面将在 artifact 标签内渲染可缩放矢量图形 (SVG) 图像。

SVG 是一种基于 XML 的图像格式,它用文本来描述二维矢量图形。

它的最大特点就是可以在任意缩放级别下保持清晰度,不会像位图那样失真。

前段时间很流行的"绘制天气卡片"挑战,就是 SVG 的一个典型的应用。

另一个著名的例子是"独角兽 SVG",它至今仍被许多人视为检验 AI 模型编程能力的"图灵测试"。

Mermaid 图表

Mermaid图:"application/vnd.ant.mermaid"。用户界面将渲染放置在 artifact 标签内的Memaid图。使用 artifact 时,请勿将Memaid代码放在代码块中。

Mermaid 是一个非常巧妙的工具,它允许用户通过简单的文本和代码来创建和修改图表。

你只需掌握极少的语法,就能快速绘制出专业的流程图、序列图、甘特图等。

比如,我们可以让 Claude 从一大段文字中梳理出各个组件之间的关系,并直接生成 Mermaid 架构图在 Artifacts 中渲染:

diff 复制代码
请从以下这段文字中梳理出各个组件之间的关系,并直接生成 Mermaid 架构图:

MCP 的核心遵循客户端-服务器架构,其中主机应用程序可以连接到多个服务器
- MCP 主机:希望通过 MCP 访问数据的程序,例如 Claude Desktop、IDE 或 AI 工具
- MCP 客户端:与服务器保持 1:1 连接的协议客户端
- MCP 服务器:轻量级程序,每个程序都通过标准化模型上下文协议公开特定功能
- 本地数据源:MCP 服务器可以安全访问的您的计算机文件、数据库和服务
- 远程服务:MCP 服务器可通过互联网(例如通过 API)连接到的外部系统

这种"文字生成图表"的方式,完美契合了大语言模型的长处------处理文字。

让 AI 专注于生成结构化的文本,再交由 Mermaid 渲染成图形,这无疑是一种高效而明智的分工。

一次性服务:存储API限制

关键浏览器存储限制

切勿在工件中使用 localStorage、sessionStorage 或任何浏览器存储 API。这些 API 不受支持,并且会导致工件在 Claude.ai 环境中失败。相反,您必须:

  • 对 React 组件使用 React 状态(useState、useReducer)

  • 使用 JavaScript 变量或对象作为 HTML 工件

  • 会话期间将所有数据存储在内存中

例外情况:如果用户明确请求使用 localStorage/sessionStorage,请解释 Claude.ai 的构件不支持这些 API,并且会导致构件运行失败。建议用户改用内存存储来实现该功能,或者建议用户复制代码到自己的环境中,在浏览器存储可用的情况下使用。

这是一个非常关键的限制。通常,网页应用会使用 localStorage 或 sessionStorage 等 API,将需要长期保留的数据(如用户偏好、登录状态)保存在浏览器中。

但在 Artifacts 的沙盒环境里,这些浏览器存储 API 是被禁止的,调用它们会导致代码运行失败。

这意味着 Artifacts 无法将数据永久保存在你的浏览器中。它更像是一个"一次性"的服务,所有数据和状态都存储在内存里,一旦关闭或刷新页面,这些信息就会消失。

技能池:Artifacts 支持的前端库

不知道到你有没有想过,诸如 GPT、Claude、Gemini 等大语言模型,为什么不约而同地选择 Web 前端开发作为编程能力的主攻方向呢?

一个重要的原因就是,Web 生态拥有海量成熟的前端库,这些"轮子"极大地降低了开发门槛。

所以,有时我会思考:我们在 Artifacts 中看到的惊艳效果,究竟真的是模型自身编码能力的飞跃,还是只是因为它学会了熟练调用一个新的强大工具库呢?

下面,我们就将 Artifacts 支持的库按功能进行分类,一探其究竟。

可用的库:

  • lucide-react@0.263.1: import { Camera } from "lucide-react"
  • recharts: import { LineChart, XAxis, ... } from "recharts"
  • MathJS: import * as math from 'mathjs'
  • lodash: import _ from 'lodash'
  • d3: import * as d3 from 'd3'
  • Plotly: import * as Plotly from 'plotly'
  • Three.js (r128): import * as THREE from 'three'
    • Remember that example imports like THREE.OrbitControls wont work as they aren't hosted on the Cloudflare CDN.
    • The correct script URL is cdnjs.cloudflare.com/ajax/libs/t...
    • IMPORTANT: Do NOT use THREE.CapsuleGeometry as it was introduced in r142. Use alternatives like CylinderGeometry, SphereGeometry, or create custom geometries instead.
  • Papaparse: for processing CSVs
  • SheetJS: for processing Excel files (XLSX, XLS)
  • shadcn/ui: import { Alert, AlertDescription, AlertTitle, AlertDialog, AlertDialogAction } from '@/components/ui/alert' (mention to user if used)
  • Chart.js: import * as Chart from 'chart.js'
  • Tone: import * as Tone from 'tone'
  • mammoth: import * as mammoth from 'mammoth'
  • tensorflow: import * as tf from 'tensorflow'

不能安装或导入其他库。

1. 图标库:

lucide-react 是一个图标库,用于为 React 应用提供美观、简洁的图标。任何需要图标点缀的界面,都可以用它来提升视觉体验。

例如,手机系统桌面就是一个典型的需要大量图标的页面:

复制代码
构建一个Android手机桌面滑动模拟Web应用,使用 lucide-react 提供的各种图标来增强用户界面。

(体验网址在文末)

2. 数据可视化:

这类库能将枯燥的数据转换为直观的图表,如折线图、柱状图、饼图等。

这部分主要涉及4个库:

  • Recharts: 用于创建各种常见的图表。
  • D3.js: 一个功能极其强大的底层可视化库,可以创建各种高度自定义的图表和图形。
  • Plotly: 主要用于创建可交互的图表和图形。
  • Chart.js: 简单易用的图表库,适合快速创建标准图表。

我们可以使用这些库来完成各种数据可视化任务,例如:

复制代码
使用d3.js构建一个AI编程领域关键词的词云(Word cloud)演示程序,词云需要以更紧凑的、密集排列的形式展现,并确保词汇之间完全不重叠。

(体验网址在文末)

复制代码
使用Chart.js实现一个带渐进动画效果的双线对比折线图。

(体验网址在文末)

可访问这些库的官网解锁更多用法:

D3.js:d3js.org/

Plotly:plotly.com/graphing-li...

Chart.js:www.chartjs.org/docs/latest...

3. 数学计算:

MathJS 是一个功能强大的数学库,它提供了丰富的数学函数和工具,可以执行从基础到复杂的数学运算。

例如,使用 MathJS 创建一个功能完善的科学计算器:

复制代码
使用 MathJS 创建一个科学计算器,支持各种数学运算,例如:三角函数、指数函数、对数函数、矩阵运算等。

4. 实用工具库:

lodash.js 提供了大量实用的工具函数,可以极大简化 JavaScript 的日常编程,覆盖了数组、对象、字符串等多种操作。

diff 复制代码
请提供一个左右对比的代码面板,左边用常规的 JavaScript 实现,右边用 lodash.js 提供的内置函数实现,目标是能够体现出使用 lodash.js 简化 JavaScript 编程的优势。
要求:
- 使用的案例可以是"深度克隆、数据分组、数组操作、对象操作"等,或者其他你认为更好的案例。
- 代码需要格式化,避免堆成一堆;
- 只展示核心代码,不需要运行演示,不需要展示Mock数据以及日志打印等其他代码
- 最好有一个包含"代码行数"和"字符数"的代码统计

(体验网址在文末)

可以看到,使用 lodash.js 不仅能让代码更简洁、可读性更高,理论上在减少了代码的行数与字符数后,还有助于我们在有限的上下文长度内,实现更复杂的代码逻辑。

5. 3D 图形:

Three.js (r128) 主要用于创建和渲染 3D 图形与动画,我们对此应该不陌生了。

利用它,我们可以构建出令人惊叹的 3D 交互场景,比如《三体》中"水滴"探测器的航行演示:

markdown 复制代码
请创建一个交互式网页演示,展示刘慈欣科幻小说《三体II·黑暗森林》中三体文明制造的宇宙探测器"水滴"在太空中航行的动画效果。
具体要求:
1. 外观设计:
  - 水滴形状:头部完美浑圆,尾部尖锐
  - 表面材质:极其光滑的全反射镜面效果
  - 视觉效果:银河系星光在其表面形成流畅的光纹反射
  - 整体观感:如同纯净的水银液滴,呈现纯洁唯美的视觉效果
  - 真实感:外形逼真到让观察者误以为是真正的液态物质
2. 动画效果:
  - 在浩瀚的宇宙背景中平滑航行
  - 表面反射效果随运动实时变化
  - 星光在镜面上的流动光纹动画
3. 技术实现:
  - 使用Three.js
  - 确保在主流浏览器中流畅运行
  - 支持基本的交互功能(如视角调整)
4. 输出要求:
  - 提供完整的HTML文件,包含所有必要的CSS和JavaScript代码
请创建这个演示网站的完整代码实现。

(体验网址在文末)

6. 文件处理:

Artifacts 还内置了几个强大的文件解析库,方便我们在 Web 应用中直接处理和预览不同格式的文档。

  • Papaparse : 用于解析 CSV 文件。
  • SheetJS : 用于解析 Excel 文件 (XLSX, XLS)。
  • mammoth : 用于解析 Word 文件 (.docx)。

基于这些库,我们可以轻松创建一个功能强大的文档在线预览器:

复制代码
使用 Papaparse、SheetJS 和 mammoth 创建一个文档预览器,让用户可以在 Web 应用中预览 Excel 表格和 Word 文档。

(体验网址在文末)

7. UI 组件库:

shadcn/ui 提供了一系列设计精美、可复用的 UI 组件,能够极大地加速用户界面的构建过程。

我们可以用"交错瀑布流"的形式,集中展示用这个库快速搭建出的各类应用的界面:

bash 复制代码
提供一个以"交错瀑布流"的形式展现的例子库,展示使用shadcn/ui构建用户界面的各类 Web 应用页面实例,例如日期选择页、登录页、聊天记录、反馈页、设置页等。
尽量在一页之内展示完所有的例子,而不需要滚动查看。

(体验网址在文末)

8. 音频处理:

Tone.js 是一个专为 Web 设计的音频框架,可以用来创建和处理各种交互式的音频效果。

例如,我们可以用它来制作一个逼真的钢琴弹奏模拟应用:

arduino 复制代码
使用tone.js制作一个钢琴弹奏模拟Web应用,还原每一个琴键的音色。

(体验网址在文末)

9. 机器学习:

TensorFlow.js 将强大的机器学习能力带到了浏览器端。Artifacts 支持通过它来构建和运行机器学习模型。

例如,我们可以利用预训练的 MobileNet 模型,快速创建一个能够识别日常物体的图像识别程序:

复制代码
使用TensorFlow.js创建一个图像识别Web演示程序,采用预训练的 MobileNet 模型,可以识别日常生活中常见物体的图像。

总结

Claude Artifacts 正如一位戴着镣铐的顶尖舞者

它必须在一方封闭的舞台(沙盒环境)上献艺,每一次表演(会话)都绚烂夺目,却不留痕迹(无法使用浏览器存储)。

它的舞姿时而沉稳精准,为复杂的应用构建坚实的功能骨架;时而奔放华丽,为展示类应用注入惊艳的视觉体验。

而它之所以舞姿卓越,是因为手握一整套精心准备的"道具"(内置前端库)------从 Three.js 的三维光影到 D3.js 的数据图景,皆可信手拈来。

因此,读懂这篇文章,就是为了让我们从"观众"变为"编舞者":洞悉它的能力边界,欣赏它的独特舞姿,最终与这位特殊的舞者共创出令人赞叹的作品。

体验网址:

  1. 交互式3D太阳系模型(优化前):claude.ai/public/arti...
  2. 交互式3D太阳系模型(优化后):claude.ai/public/arti...
  3. 现代感个人网站:claude.ai/public/arti...
  4. 2000年代怀旧风格个人网站:claude.ai/public/arti...
  5. Lodash.js vs 原生 JavaScript:claude.ai/public/arti...
  6. 钢琴弹奏模拟器:claude.ai/public/arti...
  7. AI编程关键词词云:claude.ai/public/arti...
  8. 文档预览器:claude.ai/public/arti...
  9. 科学计算器:claude.ai/public/arti...
  10. shadcn/ui 组件展示库:claude.ai/public/arti...
  11. 三体水滴探测器:claude.ai/public/arti...
相关推荐
counterxing5 小时前
Agent 跑起来之后,难的是复用、观测和评测
node.js·agent·ai编程
uccs5 小时前
大模型底层机制与Agent开发
agent·ai编程·claude
counterxing6 小时前
我把 Codex 里的 Skills 做成了一个 MCP,还支持分享
前端·agent·ai编程
夜雪闻竹6 小时前
vectra 向量索引文件损坏怎么办
ai编程·向量·vectra
ZzT6 小时前
Harness 到底指什么
openai·ai编程·claude
宅小年6 小时前
AI 创业最危险的地方:太容易做出来
openai·ai编程·claude
麦客奥德彪7 小时前
Android Skills
架构·ai编程
言萧凡_CookieBoty8 小时前
一文讲清 RAG:让 AI 读懂业务知识库的核心方法
ai编程
kyriewen8 小时前
产品经理把PRD写成“天书”,我用AI半小时重写了一遍,他当场愣住
前端·ai编程·cursor
Patrick_Wilson9 小时前
知识沉淀的四层模型:从个人笔记到企业资产,让文档真正长出复利
面试·程序员·ai编程