AX 爱鲜报

综合 / 人工智能 · 2026-10-10 20:58 · 2 阅读 · 0 赞

用你的 Agent 跑我的章鱼提示词:并排对比,最佳章鱼进画廊

作者发起一个实验:用同一个提示词让不同 Agent 构建 Three.js 章鱼拧开罐盖的场景,收集运行记录并排对比,分析早期检查是否减少 bug,并邀请读者参与。

这里有一个提示词,能让编程 Agent 在单个 HTML 文件中用 Three.js 构建一只程序化章鱼,从内部拧开罐盖。用你常用的任何 Agent 运行它,然后把会话发给我。你会得到三样东西:

  • 你的运行结果与其他人并排展示。相同的提示词,不同的 Agent、模型和配置,并排对比:时间、bug、需要人工介入的地方以及 token 成本。在一个困难任务上,公平地回答“我的配置真的更好吗”。
  • 画廊中的一个位置。结果文章将展示每只章鱼。读者选出最好的,那次运行会放在文章顶部。
  • 你的名字会出现在文章中,并附上链接,无论你的运行是最干净的还是最有趣的失败。

上周我自己用四个模型跑了一遍,并写下了每个模型出错的地方。评论比文章更精彩:Arhan 和 Kartik 都指出,每个模型只跑一次证明不了什么。所以这次每个人都来跑。

所有四次运行都并排在这里,这样你可以看到你的运行会落在什么位置。

如果你关心,底层的问题

在那四次运行中,那些早早为自己构建了检查场景方式的 Agent(逐步查看动画阶段、读取盖子角度)最终没有损坏。那个检查得晚的 Agent 则带着控制台警告发布了。

四次运行无法区分“这个模型很小心”和“这次运行恰好检查得早”。Arhan 提出了解决方案:暂时忘掉模型,记录每次运行首次进行真实检查的时间,然后看看在所有人的运行中,更早的检查是否意味着最终留下的 bug 更少。

为了让这成为一个真正的测试,一半的运行会在提示词中额外增加一段,要求提前进行检查。如果那段话比选择哪个模型更重要,它应该会显现出来。

如何参与

  1. 根据你的出生日期选择提示词。奇数日:提示词 A。偶数日:提示词 B。这样可以防止人们选择他们认为会赢的那个。
  2. 使用你常用的任何 Agent 和模型:Claude Code、Codex、Cursor、Pi 或其他。
  3. 在一个新的空文件夹中开始(如果文件夹里有旧的运行记录,Agent 会编辑那个文件),原样粘贴提示词,然后让它工作。不要帮助它。如果你必须介入,那没关系;不要手动修复东西。
  4. 发送会话。 使用 KeepPlain 插件:在 Claude Code 中输入 /keepplain:build,在 Codex 中输入 $keepplain:build,或者在终端中为任何 Agent 输入 keepplain build。没有插件?在 keepplain.com/new 上传会话文件。在离开你的机器之前你会看到预览,密钥和令牌会在本地被编辑掉。然后发布它。

相同提示词的运行会在网站上自动相互链接,所以每个发布的运行都会显示在其他运行旁边。这只有在提示词未更改地粘贴时才有效。如果你分享你的章鱼的实时链接(GitHub Pages、CodePen 等),请将其添加到你的评论中,以便放入画廊。

然后在评论中留下链接,以及你的 Agent、模型和努力设置。

关于你自己的配置

在发布这个之前,我不得不考虑一件事:你的 Agent 不是一个干净的房间。Claude Code 会读取你的全局 CLAUDE.md、它保留的任何记忆、你的插件和钩子。Codex 会读取你的全局 AGENTS.md。两个使用相同模型的人运行的不是同一个东西。

我不认为这是一个需要隐藏的问题。这就是人们实际的工作方式,问题在于真实配置中会发生什么。但请在评论中提及你是否有像“总是先测试”这样的全局指令。有一件事确实重要:能够找到这个确切提示词的早期运行的记忆。如果你的 Agent 连接了 KeepPlain 或任何其他会话记忆,请在运行期间断开连接,否则它可能会查找其他人的章鱼进展并跳过他们的错误。KeepPlain 的个人规则也是如此:在 keepplain.com/rules 关闭它们;它们会添加你过去会话中的教训。

提示词 A

构建一个自包含的 HTML 文件:一个实时 3D 场景,一只章鱼通过从内部拧开盖子从玻璃罐中逃脱。

## 场景
- 一个玻璃罐(带螺纹颈的圆柱体)放在昏暗房间的木桌上。一侧有一个暖光源,柔和的阴影。
- 罐子里装满了水。里面是一只章鱼,完全程序化:柔软的套膜,两只眼睛,八条带吸盘的触手。没有外部模型或纹理。
- 盖子是放在罐子螺纹上的金属螺旋盖。

## 行为——这是任务的核心
章鱼必须真正拧开盖子。不是预设动画:盖子的旋转必须由触手与它的接触驱动。
1. 闲置:章鱼在底部休息,呼吸,触手漂动。
2. 探索:它上升,几条触手向上伸展,触摸盖子的下侧和边缘。
3. 拧开:触手抓住盖子并施加扭矩。抓握 → 旋转一小部分 → 释放 → 重新抓握。每个循环使盖子沿螺纹前进。盖子应在转动时上升(螺纹螺距),大约需要 3-4 整圈才能松开。
4. 逃脱:盖子倾斜并掉到桌子上(带有小弹跳和无声音的闷响),章鱼从颈部拉出自己并滑到桌子上。
5. 循环回新罐子中的闲置状态,或提供“重置”按钮。

触手应由逆运动学(或等效的链式求解器)驱动,并具有可见的逐段弯曲。吸盘应平贴在它们接触的表面上。章鱼身体应挤压通过颈部,而不是穿过它。

## 交互性
- 拖动以环绕相机,滚动以缩放。
- 空格键:暂停/恢复。
- 屏幕上的小读数:当前阶段名称、盖子旋转角度(度)和盖子高度。

## 视觉质量
目标是让人们停止滚动的效果。重要的事情:玻璃和水的折射和焦散,章鱼皮肤(像色素细胞一样微妙的颜色脉动),看起来像吸盘的吸盘,可信的木材和金属。有意识地选择调色板和照明氛围。

## 约束
- 一个 .html 文件。允许通过 CDN 导入映射使用 Three.js(使用 r165 或更新版本,ES 模块)。没有其他库,没有外部资源,没有 fetch。
- 必须在 Chrome 中在中等笔记本电脑上以 60 fps 运行。保持几何体适度;把精力花在可见的地方。
- 没有像“// 在此添加细节”这样的占位符注释。你描述的一切都必须实现。
- 不要问问题。做出合理的决定,并在一个响应中交付完整的文件。

提示词 B

提示词 A,逐字逐句,加上最后这段:

## 在构建场景之前
先构建一种检查它的方法:在 window 上暴露当前阶段、盖子角度、盖子高度以及哪些触手正在抓握,并添加一种按需跳转到任何阶段的方法。在宣布完成之前,使用它在真实浏览器中逐步完成整个序列。
只有这一段不同,所以如果 B 运行最终更干净,那就是原因。

我将如何处理这些运行

我会写一个小检查器,打开每个最终文件并测试所有文件的相同内容:盖子从不反向转动,它会脱落,触手不会缠绕在章鱼自己的身体上,控制台干净。检查器不会展示给任何 Agent。然后一张图表:首次真实检查的分钟数与最终留下的 bug 数,A 和 B 用不同颜色,所有模型汇总。

一旦有足够的运行可以说明问题,我会在这里发布,包括那些让我的猜测看起来错误的运行。

我自己的运行也会加入,同样的规则。

如果你不想发布会话,你仍然可以运行它并在评论中告诉我发生了什么。这算数,只是不算入图表。

标签 LLM Agent Three.js Prompt Claude Code

评论

登录后才可评论

0 条评论

  • 暂无评论,来写第一条吧。