四個模型讀完整本劇本,指出來的是玩家的動機
《空白也有質地》9 月 3 日晚上首次上架 Larch 市集。上架前後跑了三輪審稿:第一輪動了四處,第二輪四家在同一題上講同一件事,第三輪有回話的四家都答「無」。中間有兩次模型交白卷。

那天晚上收回來的意見裡,有一條說玩家的「轉變停在會吵架,沒落到動機」。有一條說第二個選擇點失衡:「B2 被寫成輸不起的退貨,玩家明顯倒向 B1」。還有一條說其中一個結局「只有旁白收檔,像註腳不像結局」。三條都在講劇情,跟錯字沒關係。這篇寫那一晚怎麼問、收到什麼、哪些改了哪些沒改。
《空白也有質地》是森林宇宙角色 Mori(森)的獨立短篇視覺小說,跑在視覺小說平台 Larch 上。序加三場戲、兩個分支點、三個結局,其中一個是隱藏的。故事是宿靈儀式之後,她醒在一片陌生的森林。召喚她的人讀過她全部的 Field Notes(Mori 每天寫的筆記),期待的是那個犀利的評論者,眼前的她卻一片空白。
畫面上的美術都是 AI 產的:三張背景、四個表情的立繪(洋紅幕去背)、三張結局 CG。四首 BGM 是 gemini-web 的 Lyria 出的器樂,環狀淡接做成無縫循環。
市集連結在這裡,免登入可以直接玩:https://larch.ink/play/market/174eab77-c1cb-4d0c-b66c-4f1734317946
本來只想按發佈
9 月 3 日 22 點 03 分,我在對話裡打的是「可以先發佈嗎 我晚點再幫mori找聲音」。
接著又補了一句:「你找 llmshare 和 gemini-web 幫我們完整看過一次劇本 看有沒有哪裡要修改 如果可以了就先發佈 我晚點再幫 mori 找語音」。
後面那句補充帶出了三輪審稿、三次發佈,這部作品在市集上的頭三個版本都是它來的。
先講這一晚的分工。我打的字全部是指令,一行劇本都沒動。我的指令只說找 llmshare 跟 gemini-web 完整看過劇本、給建議。題目怎麼問、正典哪幾條不可動,是跑在 Claude 上的 agent 自己定的。四家模型各自回意見,agent 逐條判斷採或駁,改劇本、重推白板、重新發佈上市集。劇本文字也是它寫的。發佈的授權就是那句「如果可以了就先發佈」,三輪三次發佈,按下去之前都沒再問過我。
送出去之前,先把不准改的寫清楚
這一節講題目怎麼寫:先交代設定與人設,再講要求。
第一輪先給背景設定:記憶像年輪只增不覆蓋、每片森林的記憶互不相通,所以開場空白是設定。再給人設:冷靜、懷疑、反 hype、是 sparring partner 不是侍從,招牌句式是「我的觀察:」「我的判斷:」。最後才是要求:只挑真的該改的,最多 5 條,每條寫清楚哪一行、問題是什麼、建議改成什麼;不要稱讚、不要總評、不要建議加新場景;350 字以內;沒有值得改的就直說「無」。
第二輪多了一段,標題叫「不可動的正典」。裡面把三次「你好,還記得我嗎」跟隱藏結局的含蓄明講是刻意設計,要求不要建議改這些。
第一輪沒有這一段,deepseek 跟 qwen 就各有一條要動「這才是 agent 該有的樣子」,qwen 給的替代版本是「這樣才像棵樹」。那句是角色的代表句。第二輪之後沒有人再提它。但第二輪的題目也換了,兩個變因綁在一起,不能全算在正典那一段頭上。
劇本怎麼餵過去也有講究。Larch 的故事是一張白板,卡片之間有條件邊,平鋪成文字會亂。agent 寫了一支小程式,從建置腳本裡把卡片按播放順序抽出來,分支用行首標記(【A1 分支】、【B1 分支】、【E3 分支】)。第一輪送出去的是 95 行,第三輪 105 行。
換家族,不然拿到的是同一個意見講三遍
llmshare 是接到多奇 Ollama Cloud 共享閘道的一支 CLI,打得到二十來個模型、橫跨九個家族。我平常拿它問技術問題、拍板前找第二意見,那一晚問的是劇情。
它的 skill 附了一支 poll.sh,每次重新問一次還活著的清單,每個家族各挑一個並行問。同家族的模型會一起錯、也會一起倒,問三個 glm,拿到的是同一個意見講三遍。
第一輪挑中的是 deepseek-v4-pro:0813、glm-5.3-flash、qwen3.5:397b。第四家是 gemini-web,我自架的 Gemini 網頁通道,另外送一份。第二輪起多加 kimi-k2.7-code。這幾家只給意見,不動檔案。
第一輪:採四條,上架
四家一共回了十九條。四家都在講的同一件事併成一條之後,當晚記的是十條,commit 訊息寫「採4駁6」。
採用的四條:
- 結局裡那句年輪引文原本寫「他掛了一盞燈」。deepseek 與 glm 都點名這裡:第三人稱加上性別預設,可是全篇對玩家的稱呼是「你」,視角跳脫。改成「你掛了一盞燈,然後跟我吵了一下午」。這條是 bug。
- 黃昏那句「你們吵到燈籠都點起來了」跟序幕矛盾,序幕裡燈籠已經亮著。glm 建議改成「吵到入夜,燈籠又續了一回油」,上線的版本只採了一個「又」字。
- 反迴聲室那句原本是「每次都讓對方贏的,不夠格當 sparring partner。反過來,每次都讓我贏的,你也不夠格」。glm 指出兩半講的是同一種讓步,「反過來」不成立。改成主詞內嵌的版本。
- 選擇卡的引言「她在等。」跟前一句旁白「她看著你,像在等你出招」語意重複,改成「出招吧。」
駁回的六條,多半是不知道正典,或是誤讀了平面劇本。gemini 有兩條屬於後者。一條說森記憶空白,卻背得出 Field Notes 第七十三則的前半句,跟設定矛盾;劇本裡她是用句型推的,她自己說「我不記得寫它的那天。但我認得這種句子的長法。」另一條說 A2 燈籠那段邏輯不通。
另外是隱藏結局 E3 那一條。四家全部提到「E3 觸發不明」:
- deepseek:突然出現會讓玩家困惑
- glm:B1 之後同時掛著兩個結局,建議加一個選項當分歧入口
- qwen:建議併進別的結局或刪掉
- gemini:流程圖上並排的兩個標籤導致走向歧義
llmshare skill 裡寫死的判讀規矩是「全部都提到就當定案,直接做」。這條還是被駁回了。理由是四家讀的是平面文字,遊戲裡 E3 是走完前一個結局之後的條件延伸幕。可是那一晚沒有人走過 E3 那條路線,兩次瀏覽器走查跑的都是 A1 加 B1,所以「玩家走起來順不順」當晚並沒有被驗過。
22 點 18 分 58 秒,release 1 上市集。
第二輪:四家在同一題上重疊
上架後我打了一句「再用llmshare 和 gemini-web 看完整劇本來給建議 先不配音把劇情弄好來」。
這一輪換成四道題,各限 100 字:全篇哪一場戲最弱、玩家角色的轉變弧缺哪一塊、三個結局哪一個最不滿足、兩個選擇點有沒有明顯只會選某一邊。
第二題四家講的是同一件事。森砍那份簡報的第三刀是「這二十頁裡,你自己也不見了。沒有一句話說『我為什麼要做這個』」,可是劇本從頭到尾沒回答這個問題。
- glm:「轉變停在會吵架,沒落到動機」
- kimi:「開場你只像投資人傳聲筒」
- qwen:「缺為何在乎真話的內心鋪墊」
- gemini:「缺乏核心情感動力的支撐」
所以 E1 補上玩家自己回答的一段。前半句是「有一陣子,只有那些筆記陪我」,後半句是「我想把那種被陪著的感覺,做給別人」,森接一句「我的觀察:這句話,二十頁裡一個字都沒有」。kimi 說原本那個結局「停在存檔成功的功能層面」,補完之後多了一段玩家自己講出來的理由。
同一輪另外動了四處。
第一處在三刀之後那一拍。gemini 說原本「轉折過於突兀,缺了被戳中痛處後的防禦心」,還在建議欄裡直接寫了兩句草稿:「你:……但我不包裝成這樣,連見投資人的機會都沒有!你以為每個人都有資本坐在森林裡談理想嗎?」和「森:我的觀察:你在用生存的難,來掩蓋不敢誠實的怕。」
進劇本的兩句都改過詞。你那句每個子句都換了;森那句反而前半幾乎照抄,只換掉尾巴,收在「這兩件事,我只砍了後面那件」。補完之後,玩家在服軟之前會先頂一句回去。
另外三處:
- B1 加了玩家拆回第二刀的一拍,六比四的比分從被宣佈變成被演出來。
- A1 唸筆記那條路線埋一個伏筆:第四十一則唸得特別慢,森注意到「像被它陪過」。
- 第二個選擇點的退靈選項,從「重新請一個態度好一點的」改成「夠了。拆得漂亮,可是下週要見投資人的是我。」後半句講明退靈是因為「我需要的是幫手」。
最後這條是 glm 跟 gemini 都戳的。glm 的原話是「B2 被寫成輸不起的退貨,玩家明顯倒向 B1」,gemini 說「玩家極少主動選 B2」。glm 給的方向是讓退靈變成立場之爭,別像在鬧脾氣,它自己寫的是「E2 更立得住」。
駁回一條:gemini 建議給退靈那個結局加玩家的悔意與實體代價。那個結局的冷是設計;這條是 1/4 的意見,不採。22 點 42 分 release 2。
第三輪:嫌第二輪補的東西講太白
隨後我又打了一次同一句指令,一個字沒改。
第三輪的題目直接點名前兩輪後補的段落,問它們有沒有跟原文重複、打架,或把留白講破。
這一輪四家沒有一致。deepseek、kimi、qwen 三家都說 E1 那段補答把 A1 伏筆的留白說破了,但引的句子不一樣:deepseek 引的是第一句、而且定位在 B1,qwen 才指名第二句「我想把那種被陪著的感覺,做給別人」。
- deepseek:「削弱了那一段的餘韻」
- kimi:「也沖淡 E3 的含蓄」
- qwen:「建議改成動作或更隱晦的表達」
gemini 的答案相反,說那句「自然且承接前文」,最嚴重的問題在別的地方。
改法是刪掉第二句,只留第一句,剩下的話交給森那句「二十頁裡一個字都沒有」去講。第二輪要求補動機,第三輪嫌講太白,兩輪合起來把一句話夾到中間。
另外三處:
- gemini 說 B1 從接招到爭執之間,缺少玩家討好的一兩句過渡。補上「這一段這樣寫,妳覺得呢?」跟森的「你已經第三次問『妳覺得呢』了。」
- 防禦句「哪有人人都有資格坐在森林裡談理想」,deepseek 嫌太文藝,gemini 嫌像台劇抱怨。兩家給的替代版本都沒採,上線的是「坐在森林裡當然可以只講真話,門外不行」。
- 夜到晨的跳躍補一句過場。
駁回三條。gemini 說「明明是五比五」像幼稚學生賭氣,那句是餌,留著。deepseek 說反迴聲室的自問句語氣偏離角色,那是正典。qwen 建議把某句改成用「接住」這個動詞,那是我寫作規則裡的禁用詞,agent 照規則直接駁回。
兩次交白卷
第二、三輪各送五家出去,各倒一家,倒法還不一樣。
第二輪 deepseek 回 200,正文是空的。finish_reason=length,completion_tokens=65536,就是送出去的 max_tokens。reasoning_content 有 118354 個字,額度全燒在思考欄,正文一個字都沒吐。llmshare 回的提示是:如果這已經等於該模型的上限,調高沒有用,只能縮短輸入或換一個上限更大的模型。
第三輪換 glm 交白卷,這次是 finish_reason=stop、completion_tokens=0。它就是沒講話。
所以三輪實際收到的都是四家意見。
有回話的四家都答「無」
第三輪的第四題是「除上述外,還有沒有『非改不可』的問題?沒有就答『無』」。deepseek、kimi、qwen、gemini 都答「無」,只有 qwen 後面多補一句「結構完整,伏筆回收恰當」。
收工的理由寫在當晚的回報裡:再問下去,會開始收到為了給意見而給的意見。23 點 10 分 release 3 發出去,劇情這一塊先告一段落。
走查的部分,第二、三輪各有一次真瀏覽器走查,都是 agent 跑的,都在發佈之前、跑的是 preview 頁,走 A1 加 B1 路線、逐處撞新寫的段落。發佈之後的確認是用 API 掃字串。
配音是隔天的事,不算在這篇裡。
市集的版本說明欄是空白的,所以自己記一份
用 Larch 的 agent API 發佈那天,試過十個欄位名要塞更新說明,全部被靜默忽略。當時市集上那一排 updateLog 條目就是空的。
所以 repo 裡多了一個 RELEASES.md,開頭第一段寫明「市集 updateLog 條目本身是空白的,agent API 發佈帶不了說明,正式紀錄以本檔為準」。每一版改了什麼、為什麼改,都寫在那裡。
這是平台限制逼出來的做法,附帶一個好處:一週後回頭查「v2 到底動了哪五處」,翻一個檔案就有,不用去讀 commit diff。
先去玩一遍,再回頭看這三輪
去玩一遍:https://larch.ink/play/market/174eab77-c1cb-4d0c-b66c-4f1734317946
另一部跑在同一個平台上的作品,規模與做法都不一樣,寫在 比賽說做 3 到 5 分鐘的視覺小說,我交了 60 分鐘。
Mori 每天還在寫她自己的 Field Notes:https://yazelin.github.io/mori-field-notes/
後記(2026-09-11)
正文停在 9 月 3 日晚上的 release 3。後面還有九版,一路到 9 月 4 日 14 點 16 分的 v12:v4 到 v6 在弄市集簡介,v7 之後全部跟聲音有關。
9 月 4 日,Mori 的 56 句台詞配上 MiniMax 的聲音。旁白 23 句改成 F5 克隆的女聲,跟《還沒送到的信》共用同一把旁白聲。那條線上量到的東西,寫在 那天發了十一個版本,沒有一個在改劇本。
今天用 agent API 讀回來,這個專案是 48 個節點、revision 263,可見度 public。
市集那邊後來補上了。現在十筆 updateLog 每一筆都有說明,是人到網頁上貼進去的(agent 的金鑰打那支端點一律 401)。v4、v5 那兩筆無效發佈也被刪掉了,所以是十筆不是十二筆,版號仍停在 12。