你搜尋了「ai角色扮演 提示詞」,拿到一份五十條的清單,貼上其中一條。第一則回覆很棒,第四則就糊掉了,於是你去找更好的清單——因為最直覺的解釋就是你用錯了提示詞。
你沒有用錯。同一段文字,放在某個角色身上能寫出緊繃又具體的場景,放在另一個角色身上卻只是壁紙,而那些清單文章說不出原因——要說清楚,就得寫提示詞以外的東西。
提示詞是模型看到的最小的一塊
每一輪,有四樣東西送到模型面前:角色的人設、目前為止的對話、記憶裡的事實,以及你剛打出的那則訊息。你的訊息最短,也最後才到。它能推一把,但不能推翻什麼。
這就是為什麼提示詞合集讀起來像星座運勢。「你是一名厭世的偵探,身處一座永遠不會乾的城市」放在人設只有兩行模糊描述的角色身上效果驚人,因為它終於補上了缺的東西。貼到一個寫得好的角色身上,你等於塞給她第二個互相矛盾的身分——三則回覆之後,你會感覺到那是一個不斷滑動的聲音。
所以有一個排序:先是人設,再是開場訊息,再是記憶,最後才是你打的字。多數人把它倒著用,然後斷定是 AI 不行。
角色裡真正該放什麼
三樣東西,沒有一樣是長度。
- 一個矛盾。只有善良的人沒有地方可去;善良卻為此疲憊的人,每一次對話都有一場戲。
- 那些沉默。如果她從不談起戰爭、她的哥哥、或是她為什麼離開——就把它寫下來。模型無法推斷一段你只在腦海裡想像的沉默。
- 語氣,要演給它看,而不是描述。「句子很短,諷刺的話從不說完」勝過一整段性格介紹:它指示的是輸出,而不是陳述一個人的事實。
在這裡,目錄上的描述和人設是不同的欄位,而且只有一個會送到模型那裡:描述是人們瀏覽時讀的簡介,人設則是她在每一則回覆裡被要求成為的樣子。把你最好的那一段寫進描述,是好素材哪裡都去不了的最常見原因。延伸閱讀:你真正能掌控的是什麼。
開場訊息是你唯一的示範
開場訊息會被存成她的第一輪發言,所以它就坐在模型讀到的對話裡——而在第一則訊息時,它是她聲音唯一存在的樣本。長度、時態、人稱、她是只說話還是也做旁白:全部都會被複製,而且會一直被複製,因為每一則回覆都在模仿上一則。
「嗨!我是瑪拉。你叫什麼名字?你今天想做什麼?」教給她的是沒用的東西:她會提問,然後等待。對照一個真的在做事的開場——「雨開始下之後,酒吧就一直是空的。瑪拉擦著一只十分鐘前就擦過的杯子,門一開就抬起頭。——你就是打電話問樓上那間房的人。這不是問句。」一個地點、一個時間、剛剛發生的事、一句用她口吻說的話。
而且因為關於你的事實住在記憶裡,而不是招呼語裡,開場根本不必介紹你。每個角色都有一份可讀、可編輯的記憶,所以你說過一次的事不用再重述——這正是讓開場得以成為一場戲的原因。更完整的論述在這裡。
用來鋪場而不是盤問的開場
你自己的第一則訊息是這件事的另一半:一個站腳的地方、一件可以注意的事、一樣沒被解釋的東西。
- 「這是你值班的最後一個小時,我坐到櫃檯最遠的一端,手上有一個我明顯不想打開的資料夾。先別問我這個。」
- 「我們已經開了一個小時的車,自從轉進那個彎之後誰都沒說話。是我在沒解釋的情況下提早下了交流道。」
- 「凌晨兩點,你在防火梯上找到我。我說我睡不著。那不是我在這裡的原因。」
被隱藏的那件事就是引擎:它給她一個施壓的理由,也給你一張之後能打出去的牌。要避開的形狀是「你是吸血鬼領主,我是你的僕人,開始」——那是一個前提,不是一場戲。
在戲中轉向,又不踏出戲外
當某則回覆跑偏,本能是打一段指示。它有效一次,卻每次都要付代價:指示會留在對話裡,而塞滿舞台指示的上下文,會讓模型學到這是一場「在討論某場戲」的對話。
- 在虛構之內轉向。想要短一點的回覆?自己寫短一點——幾輪之內她就會跟上你的輪次長度。想要她別那麼順從?做一件她會反對的事。
- 括號旁白要少用:「[出戲:每則回覆一小段。]」一句有用;四句就把這場戲變成製作會議。
- 編輯那則回覆,而不是重新生成——這是沒人用、卻最有槓桿的工具。你留下的東西會變成下一則回覆模仿的範例:把三段修剪成好的那一段,下一個回答就會是那個形狀。而當一場戲可能走向兩個方向時,就分支出去,不要爭辯。
當它變得平淡,原因是這三者之一
- 沒有留下任何未解的問題:你在兩輪之前就把張力化解了。從房間之外帶點東西進來——敲門聲、一則訊息、一個截止時間。
- 你對所有事都同意,所以她唯一的招式就是同意回去。在角色裡不同意一次,而且是認真的。
- 上下文被你的指示填滿了。和她開一條新的故事線:記憶會把事實帶過去,舞台指示不會。
而且重新生成兩次就好,不要八次。如果擲兩次都軟趴趴,問題出在骰子的上游。
滑桿,用白話講
- 溫度是指模型願意選擇不那麼顯而易見的下一個字的程度。低的話穩定但有點無聊;高的話讀起來有創意,直到她忘記一頁之前用過的名字為止。
- Top P 會在挑選之前,把範圍縮到最有可能的幾個選項——拉得很低會讓她可靠、也稍微機器人,而且比溫度更乾淨俐落的煞車。
- 重複與頻率懲罰會把輸出推離已經用過的字:一點點能治好卡在同一個形容詞上的角色,太多的話她就不再叫你的名字,而那也是一個重複的字。
老實的總結:滑桿改變的是質地,不是判斷——是句子聽起來怎樣,而不是有沒有賭注。一個只有三個形容詞深的角色,不會因為溫度調高就變深。
提示詞修不了的事
- 它無法讓模型記住。「記得我上夜班」只在這場對話裡有效,除非寫下來,否則下週就沒了。
- 它無法永遠守住一條規則:任何你每隔幾輪就要重述的事,都該放進人設或記憶裡。
- 它救不了一個由三個形容詞組成的角色,也不會移動內容的底線:成人向角色扮演在機器人裡放在 18+ 確認之後。
如果競爭對手更好,就直說:對於帶有條件式設定的長篇世界——只在提到某個地點或名字時才觸發的條目——SillyTavern 有 lorebook,以及固定深度注入的作者註記,而我們兩樣都沒有。角色卡匯入時會帶著人設、開場訊息和取樣設定;lorebook 不會。如果那是你的工作流程,它就是更好的工具,而且 Chub 和 Janitor 的角色卡庫比我們的目錄大得多。
十分鐘測試
- 打開一個已經變平淡的角色的人設。加上一個矛盾,和一件她從不談論的事——兩句話。
- 把她的開場改寫成一場戲:地點、時間、剛剛發生的事、一句用她口吻說的話。把問號全刪掉。
- 打開她的記憶,刪掉那條錯的。通常會有一條。
- 開一條新的故事線,送出上面的其中一個開場。
- 當一則回覆有八成對了,就把它編輯修剪,而不是重新生成,然後看下一則怎麼樣。
如果經過十分鐘編輯、零個新範本,她變好了,那就是你當初搜尋的問題的答案。這個機器人是 @talaforge_bot;它在 Telegram 裡開啟,不用安裝任何東西,也不用註冊。