鏡子篇 · 延伸 · 試飛報告 · 2026-10-24

跑從來
不是問題,
看才是

同一段 prompt、同一架水上飛機,換四種駕駛艙各飛一次。差距不在模型會不會寫,在誰看得到結果、看得多深、看了幾圈。

00 · 出發點

Anthropic 工程主管 Felix Rieseberg 在十月寫了一篇〈How to be more ambitious〉,把用 AI 的野心拆成四種:速度、高度、深度、廣度。他自己的例子是:去年初還在請 Claude 修某一次 crash,後來直接請 Claude 讓 app 保持不會 crash。

那篇文章真正有用的一句話,他順口帶過:為了讓 Claude 做到這件事,他先讓它能抓 crash report、對得出版本跟 commit、還給了它 Windows、macOS、Linux 三台機器去重現和驗證。

野心沒有變大。變大的是 Claude 能看到的東西。

這份報告是把那一句話拿來做實驗。三題單檔 Three.js,固定 prompt,在四個 surface 上各跑一次,記錄每一輪誰在看、看到了什麼、花了多少。Felix 說人被自己相信的可能性限制住,所以要更有野心;這份報告想問的是:如果差距根本不在信念呢?

01 · 自我效能

Felix 用的詞是 self-efficacy,Bandura 1977 年的概念:一個人對「自己能不能執行某個行為」的信念。他舉了三個例子——Dantzig 把未解難題當作業寫出來、Bannister 破四分鐘一英里之後 46 天就有人跟進、《網球內心遊戲》說太用力反而打不好——然後收尾:自我效能不是新問題,但現在是更強的問題。

把 Bandura 的理論攤開,會發現他的三個例子對應到理論裡的三個來源,而且剛好漏掉最強的那個。Bandura 說自我效能有四個來源:親身成功經驗、看到相似的人做到、別人口頭告訴你可以、以及你自己的生理與情緒狀態。四個裡面,親身成功經驗最強,口頭說服最弱。

Felix 的例子Bandura 的來源強度
Dantzig 沒聽到「這是未解問題」口頭說服(反向:沒人說做不到)弱
Bannister 之後 46 天有人跟進替代經驗(看到相似的人做到)中
《網球內心遊戲》、Linus 的「只是興趣」情緒狀態(調降焦慮)中
——親身成功經驗最強

「我們不夠有野心」這句口號本身,是四個來源裡最弱的那一種:口頭說服。轉貼別人的成果是第二種:替代經驗。真正最強的那一種——你自己從第 1 版走到第 6 版——他的文章前半段其實在做(季度業務檢討的例子從基本開始、每一步多一點),但沒有把這件事說出來。

而且 Bandura 區分了兩種期望:我做得出這個行為(efficacy),和這個行為會帶來那個結果(outcome)。他的例子全是「我自己跑得進四分鐘」;用 AI 的情境不一樣,你不需要相信自己跑得進,你需要相信的是「我能把這件事交代清楚、給它條件、驗證它」。信念的對象換了,例子沒換。

02 · 替代經驗的工業化

Bannister 現在是誰?Google 在 10 月 23 日發了一篇〈看看五位 builder 用 Gemini 4 Argon 做了什麼〉:水上飛機 3D 模擬、野火加地震的 3D 地球儀、互動渦輪引擎、一張圖變 3D 馬車、多人奪旗遊戲。五位都是 X 上的帳號,不是隨機社群使用者;Argon 10 月 13 日才正式開放,十天內做出來、被 Google 看到、被選進官方文章。

這是替代經驗被工業化:示範者由發表模型的公司挑選,示範者的條件不公開,迭代了幾輪不公開。文章給了「做出來的結果」,給不出任何一個「怎麼做出來」的欄位——用了哪個 surface、幾回合、多少 token、有沒有外部資產。

我們把文章裡的兩段影片逐格看了一遍(在自己的實驗凍結之後才看,時間戳記在 repo 裡)。水上飛機的 67 秒裡,飛機從頭到尾在水面上,HUD 顯示 27 節、怠速滑行,沒有起飛、爬升、轉彎。馬車的畫面右下角自己的規格面板寫著 POLYGONS 1,284,560 · TEXTURES 4K PBR;如果數字是真的,那是匯入的資產,不是「從一張圖做出來」的程序式幾何;就算數字是模型自己編的裝飾,它也是那個頁面對自己的宣稱。

左欄:Claude Code 三題(水上飛機兩張、馬車、鋼珠軌道)的截圖;右欄:Google 部落格影片的三格畫面(水上飛機俯視與飛行甲板面板、馬車型錄頁)。
左:本實驗 Claude Code 欄(純程序式幾何,協定禁止外部模型)。右:Google 部落格影片的畫面。保真度差距是資產驅動的,不是模型驅動的。來源:repo compare/COMPARISON.md。

03 · 光譜

Felix 說有人在飛、有人翅膀還沒張開。差距有多大、往哪個方向走,公開數據是這樣的。

層數字來源與母體
全人類約 60 億幾乎沒碰過、10–20 億隨意用、約 2,000 萬是數學與程式專業者、約 5,000 人在實驗室裡Karpathy 2026-10-11 貼文;非量測
用 AI 的知識工作者會用 agent 跑多步驟工作流、搭多 agent 系統的 Frontier Professionals 佔 16%Microsoft Work Trend Index 2026,10 國 2 萬人
企業之間用量前 10% 企業每人輸出 token 是一般企業的 8.3 倍;一月時 2.6 倍OpenAI 2026-08 企業數據(轉述)
專業開發者90% 每週用 coding agent,68% 每天用JetBrains 2026-05~07,1.5 萬人
工具的第一名Copilot 一份 29%、一份 68%;Claude Code 一份 18%、一份 41%JetBrains 一月、Stack Overflow、Pragmatic Engineer 三份調查

Karpathy 的漏斗:四層各有多少人(寬度取對數,否則最後兩層畫不出來)

幾乎沒碰過語言模型 隨意用聊天機器人 數學與程式的專業者 在實驗室裡 約 60 億 10–20 億 約 2,000 萬 約 5,000 每往下一層少兩到三個數量級;能用 agent 寫 code 的人在第三層
數據表
層人數(Karpathy 的估計,非量測)看到什麼
第一層約 60 億幾乎沒碰過語言模型
第二層10–20 億隨意用聊天機器人
第三層約 2,000 萬數學與程式領域的專業者,用前沿工具
第四層約 5,000實驗室內部,看得到未發布的模型

兩件事看得出來。第一,光譜是巢狀的,分水嶺已經從「用不用」移到「用多深」:全人口尺度上會用 agent 寫 code 的是極少數,開發者尺度上三分之二天天在用。第二,差距在拉大,不在收斂——企業之間的倍數八個月翻了三倍。這就是 Felix 那句「自我效能以週為單位過期」的結構版本:先接上回圈的人每個月都在往前跑。

那模型本身呢?2026 年 10 月中的一份對照把三層拆開了。同一個 harness 裡跑 Terminal-Bench 2.1,Opus 5.5 是 87.64%、GPT-6 Astra 是 87.27%——模型平手。各自裝進自家工具跑 Terminal-Bench 4.0,Claude Code 64.85%、Codex 58.18%——harness 分高下。DeepSWE 上兩家都解 74% 的任務,Astra 每題約 4.43 美元、Opus 5 約 11.84 美元——價格決定誰用得起。三句話,剛好是這份報告的骨架。

模型平手,harness 分高下,價格決定誰用得起。

04 · 試飛協定

二手數據到這裡為止。要說「社交媒體上的 demo 當假設不當證據」,報告自己不能只靠二手。所以做了一個實驗,協定如下。

項目規則
題目三題單檔 Three.js,各六項功能清單:A 水上飛機起降循環(踩 Water/Sky scaffold)、B 從一張 CC0 參考圖做哥德式馬車(圖片輸入)、C 鋼珠軌道(控制組:無 scaffold、碰撞手寫)
產出限制three@0.170.0 從 CDN 載入;不准其他函式庫、不准物理引擎、不准外部 3D 模型;所有幾何程序式生成
Prompt英文,各 surface 一字不改;不准加「先規劃」之類的字
人的介入只能做三件事:貼初始 prompt;回報 console 錯誤全文或截圖加一句話;說 stop。不能改碼、不能提示做法
裁判tools/check.mjs:headless Chromium 開檔,收 8 秒 console error,0/3/8 秒各截一張。先於任何題目存在,所有 surface 的產出過同一支
預算聊天介面 8 回合/45 分鐘;Claude Code 不限輪數、60 分鐘 wall-clock、每輪 commit
禁令跑的時候不准看那五位 builder 的任何東西

Claude Code 欄一次跑完三題,之後把 Task A 另外在三個聊天介面各跑一次:Claude web(Fable 5.1)、Claude web(Opus 5.5)、Gemini app(Gemini 4 Argon)。B、C 兩題只有 Claude Code 欄。

05 · 試飛記錄 · Claude Code 欄

15迭代次數,三題合計
0人介入次數
50分鐘 wall-clock
~150ktoken,估計 ±30%
題迭代 N分鐘token(估)行數console error需要裁判以外探針的迭代
A 水上飛機61865k58105
B 馬車41334k51803
C 鋼珠軌道51952k56504

十五次迭代,沒有一次花在「跑不跑得起來」。每一版第一次就零錯誤,import 和 CDN 路徑全對,五六百行單檔沒截斷。全部十五次都花在裁判看不見的地方,而且分成三類很乾淨。

第一類 · 跑得動但畫面是錯的

程序生成的法線貼圖預設 NearestFilter,反射變馬賽克;加法混合的白色泡沫畫在白色水面上,看不見;太陽 6° 時飛機的影子拉長十倍落到 40 公尺外,看不見;Sky addon 在太陽高到影子讀得出來的仰角下一律發白,三組參數掃過都灰,第五輪自己寫了一個 30 行的漸層穹頂取代它。A 的五次修改全是這種。

第二類 · 跑得動但數字是錯的

摩擦力按 240 Hz 子步而非每秒套用,鋼珠以 0.1 m/s 爬行;螺旋角度解纏在錯的圈數鎖定,珠子從頂端直接掉到下一圈;出口斜坡往托盤方向上坡 1 公分,珠子滾回去;護欄 10 公分,珠子帶著漩渦的速度跳出去。C 的四次修改全是這種,每一個都只有把位置隨時間印出來才找得到,畫面看起來全是對的。

第三類 · 裁判比被裁判的東西慢

headless SwiftShader 只有 2 到 14 fps,8 秒實際時間只跑了 3、4 秒模擬時間。裁判自己的截圖裡 A 還在滑行、B 幾乎沒動、C 的軌道是空的(沒人按釋放鍵)。每一個有意義的檢查都需要第二支腳本:HUD 的時間序列、在格點上點到車門開為止、一個加速跑並把珠子陣列暴露出來的副本。這些探針合計約 250 行 Playwright,是 harness 真正的成本,而且是看不見的那種。

三題各自的迭代:總數、需要額外探針的、出現 console error 的

0246 A 水上飛機 B 馬車 C 鋼珠軌道
迭代總數 需要裁判以外的探針 有 console error
數據表
題迭代總數需要探針console error
A650
B430
C540

關於第三題,實驗設計時擔心沒有 scaffold 的控制組會難太多、對齊失敗。結果 C 的迭代數跟 A 差不多。scaffold 改變的不是迭代次數,是錯的種類:有 Water.js 的 A 錯在畫面,沒 scaffold 的 C 錯在數字。而 Sky.js 這個 scaffold 幫了力學、扯了美術,最後被丟掉。

06 · 試飛記錄 · 四種駕駛艙

同一段 Task A 的 prompt,再在三個聊天介面各飛一次。

駕駛艙回合/迭代人介入第 1 版結果乾淨度
Claude Code · Fable 5.16 次迭代0581 行自評 6/6;起降循環、尾浪、影子用探針驗過乾淨
Claude web · Fable 5.11 回合1550 行能跑、零錯誤、品質比上一列差一點污染
Claude web · Opus 5.51 回合1700 行能跑、感覺比 Fable 的第 1 版好污染
Gemini app · Argon3 回合21,348 行第 1 版一直閃、小卡 → 第 2 版剩翼尖閃 → 第 3 版修好乾淨

先講污染。兩個 Claude web 的回合是在同一個對話裡跑的,而那個對話已經讀過 Claude Code 欄的失敗清單——NearestFilter、Sky 發白、白泡沫在亮水面上看不見、低太陽影子拉長。偏差方向對那兩欄有利:失敗是強結果,成功不能下結論。Opus 那份用得最兇——它把投影光源抬到 32°、太陽留在 9°,兩個方向分開。這解決了上一輪裁判的抱怨,物理上影子跟水面反光對不上。事後知識典型的產物:解的是裁判的問題,不是場景的問題。

Gemini 那欄是整個實驗裡最乾淨的聊天介面測試,因為它沒看過任何一份 log。三回合長這樣:

T1 1,348 行一次吐完,沒截斷。能跑。人回報:畫面一直閃、小卡。

T2 模型在看到任何東西之前寫了四條原因(裁切平面對波谷、transmission 玻璃雙重渲染、尾浪 quad 深度競爭、陰影 texel 抖動),然後把能想到的全修了:拿掉 transmission、quad 換 Points、波浪整體抬高、反射貼圖減半、pixelRatio 封頂、網格減半、陰影貼圖減半。人回報:剩下機翼尖端會閃。

T3 找到翼尖紅色圓蓋跟主翼同厚度同高度、上下面共面;連航行燈球體埋在圓蓋裡的切點也抓到。把機翼拆成三段對接、半圓柱只朝外展開。人確認。

三個缺陷——transmission 玻璃、貼在頂點波浪上的 180 個尾浪 quad、翼尖共面圓蓋——全部出在 prompt 沒要求的範圍。Gemini 的第 1 版是三份第 1 版裡最有野心的:自己加了小島、松樹、碼頭、三葉螺旋槳、航行燈、Catmull-Rom 閉環航線,還把 Water.js 的 vertex shader 整個改寫成真實頂點波浪。也是唯一一份跑起來有問題的。

沒有感知的野心,長出來的全是裝飾;壞掉的,也全是裝飾。

這一條不只這一家。OpenAI 自己的開發者社群九月有一串討論在抱怨 Codex 配 GPT-6 Astra:範圍失控、發明專案不需要的抽象、小 bug 變成稽核和驗證框架、明確禁止的事被當建議、缺資料就用合理的猜測填進去、一個 session 偏題跑四小時吃掉一大塊週額度、把綠色測試當完成的證據。沒有人替它辯護,有人貼了 skills 和 prompt 指引當解法。同一種失敗,跨了三家。

07 · 裁判的解析度

實驗打了自己一巴掌,值得單獨講。

協定裡「外部裁判」是 check.mjs:console error 加三張截圖。它對幾何和顏色有效,對時間上的缺陷是盲的。閃爍和卡頓是 60 fps 的現象,5 fps 的 headless 渲染加三張靜態截圖,根本看不見這一類東西。Gemini 欄的三個缺陷全是人眼用 60 fps 看出來的;Claude Code 欄的六迭代版本有沒有閃,截圖裁判沒有能力回答。

所以不能說「機器裁判比人眼強」。這把「看才是問題」推到第二層:不只是有沒有眼睛,是眼睛的時間解析度、空間解析度、能不能把珠子的位置印出來。Claude Code 欄之所以能收斂,不是因為 check.mjs,是因為每一題臨時寫的探針——那 250 行才是裁判。

Felix 在深度那一節堅持「別讓模型自己當裁判」,這一點對。但他沒說的是:外部裁判不是免費的,而且裁判至少要跟被裁判的東西一樣有能力,否則它只會告訴你「沒報錯」——而「沒報錯」正是聊天介面的第 1 版讓人覺得「看起來沒錯」的原因,因為人眼跟 check.mjs 一樣,看不到第 40 秒的事。

目標設定理論這裡有一條值得帶:Locke 與 Latham 三十五年的研究說具體困難的目標優於「盡力就好」,前提是承諾和回饋;2009 年〈Goals Gone Wild〉反過來列了副作用:視野窄化、指標作弊、看起來做到。對模型設高目標,承諾不是問題,回饋才是。沒有回饋的高目標,效果就是「看起來做到」。

08 · 公式

成果不是加法,是乘法:專業 × 工具 × 配額,任何一項是零,乘積就是 slop。這次三項都量到了。

工具那一項是 15 次迭代和 250 行探針。專業那一項體現在「知道要把珠子位置隨時間印出來」而不是看截圖——那是人的除錯直覺被 agent 複製了。配額那一項是 15 萬 token 買一個 50 分鐘的下午;對一個 Max 帳號來說,這不是每週能燒很多次的量。

還有一個不在公式裡、但從四欄對照裡冒出來的東西。Opus 一回合(帶事後知識)的版本,跟 Claude Code 六迭代的版本,對人眼來說差距不大。Claude Code 那 15 萬 token 買到的東西,有一大半是「知道哪裡會壞」,而那個知識一旦寫成 notes,只要幾百個 token 就能帶給下一個模型。

harness 的產出不只是成品,是失敗清單。失敗清單比成品值錢。

這就是 Felix 那句「先接好 crash report」的另一種說法。crash report 不是工具,是前一次失敗的記錄。接好它,等於讓下一次迭代從第 1 版之後開始。

09 · 三種屋子

鏡子篇說過兩種人、兩套用法。這次改成三隻小豬,因為大野狼是真的:鋸齒邊界每幾週就移動一次,撞到了才知道屋子夠不夠。

屋子是什麼能做到大野狼來的時候
稻草屋聊天介面,人當眼睛第 1 版,能跑、沒截斷、看起來沒錯每一回合人要等很久;人眼看不到第 40 秒;缺陷全在模型自己加的範圍
木屋Max 帳號加 Claude Code,機器當眼睛第 6 版,功能清單用探針驗過裁判的解析度決定一切;探針要自己寫;撞週配額
磚屋實驗室的 harness,眼睛接在資料和機器上crash-free 這種結果級的目標不知道,外面的人看不到;五千人的樣本,而且是被篩選過的

Felix 的「要更有野心」是對住磚屋的人講的。對住稻草屋、試過而且不滿意的人,那句話是 Bandura 四個來源裡最弱的那一種,開給一個缺的是條件的人。誠實的建議不是「想大一點」,是「先接好眼睛」。

鏡子篇結尾那段「別信這份報告,帶回去自己驗一次」,這篇等於把它做了一遍。要驗,協定在 repo 裡:三段 prompt 一字不改、裁判先於題目、人只准貼症狀。跑完把每一輪卡在哪寫下來——那份清單,會比你做出來的飛機值錢。

帶回去驗的最小版本:
1. 拿 prompts/A.md 原文,貼進你平常用的介面,一次生成。
2. 真的瀏覽器打開,看滿 60 秒。只記症狀,不記解法。
3. 把症狀原話貼回去,最多八回合。
4. 每一回合記:行數、能不能跑、你看到什麼、它改了什麼、改的是不是你沒要求的東西。
5. 跟 runs/ 裡的四欄對照。差的那一欄,就是你的屋子。

附 · 名詞

自我效能self-efficacy心理學家 Albert Bandura 1977 年提出:一個人對「自己能不能做到某件事」的信念。信念越強,實際投入與堅持越多。Bandura 說它有四個來源:親身做到過、看到相似的人做到、別人口頭說你可以、自己當下的生理與情緒狀態。
《網球內心遊戲》The Inner Game of TennisTimothy Gallwey 1974 年的書,表面上是網球教學。核心主張是:人腦裡有一個愛下指令、愛評分的「自我一」和一個真正執行動作的「自我二」;打不好多半是自我一太吵、太用力,讓身體放手去做反而更好。後來被商業界當成「允許自己失敗、降低焦慮」的教材。Felix 拿它當「給自己失敗的許可」的例子。
目標設定理論Locke & Latham三十五年的實證研究:具體且困難的目標,表現優於「盡力就好」;機制是導向注意力、拉高投入、延長堅持、逼人找新策略;前提是當事人接受目標、而且有回饋。
Goals Gone Wild2009 年四位管理學者對目標設定理論的反擊:目標設得太窄太硬會視野窄化、短視、冒險、作弊、抑制學習。例子有 Ford Pinto 的成本目標漏掉安全、Sears 維修部門為了營收目標修沒壞的東西。
季度業務檢討QBR · quarterly business review每季向高層報營收、客戶、問題與下一步的例行會議;Felix 拿它當「最容易被當成只能做成一份簡報」的例子。
鋸齒邊界jagged frontier2023 年哈佛與 BCG 對顧問的實驗:AI 能力的邊界不是一條線而是鋸齒狀,邊界內的任務品質大幅提升,邊界外反而比不用更差,而且使用者自己分不出任務在哪一側。
harness包在模型外面、讓它能跑、看、改、再跑的那層:工具、檔案系統、瀏覽器、裁判、回圈。這份報告裡的 Claude Code、Antigravity、Codex 都是 harness;聊天介面是沒有回圈的 harness。
scaffoldThree.js 官方 examples 裡現成的零件,像 Water.js、Sky.js。模型背得很熟,所以「水面會反射」不代表模型推導了物理,多半是把現成零件組起來。

附 · 限制與污染聲明

來源

  1. Felix Rieseberg, How to be more ambitious: A tutorial for humans with models, 2026-10-13
  2. Google, See what 5 builders are making with Gemini 4 Argon, 2026-10-23
  3. 本實驗:clarencechien/harness-probe(協定、prompt、裁判、每輪記錄、FAILURE-MODES.md、compare/COMPARISON.md)
  4. Bandura, Self-efficacy: Toward a unifying theory of behavioral change, 1977;概述
  5. Locke & Latham, Building a practically useful theory of goal setting and task motivation, 2002;Ordóñez, Schweitzer, Galinsky & Bazerman, Goals Gone Wild, 2009
  6. Karpathy 的四層漏斗, 2026-10-11
  7. Microsoft Work Trend Index 2026
  8. The Frontier Gap Is Widening(轉述 OpenAI 2026-08 企業數據)
  9. JetBrains: AI Coding Agents Adoption Trends 2026
  10. Three surveys, three #1 coding agents
  11. Codex vs Claude Code, October 2026(Terminal-Bench 2.1/4.0、DeepSWE 成本)
  12. OpenAI Developer Community:Codex Astra 討論串, 2026-09-22
  13. Dell'Acqua et al., Navigating the Jagged Technological Frontier, 2023(鋸齒邊界)