改了一句角色對白,怎樣留下一組下次還能用的人工複核輸入?
把改動前後的完整對話、必須保持的事實、允許變化的語氣、失敗條件寫成一份可複用的複核卡,下次改同類對白時直接替換其中的輸入部分,不必重新推導驗收標準。下面用虛構教學例子說明做法:檔案員角色「岑默」在互動小說裡負責保管一份秘密名單,作者把一句對白從「名單不在我手上」改成「名單不在我手上,你也別問了」。複核卡要記錄的不是這兩

導讀
把改動前後的完整對話、必須保持的事實、允許變化的語氣、失敗條件寫成一份可複用的複核卡,下次改同類對白時直接替換其中的輸入部分,不必重新推導驗收標準。下面用虛構教學例子說明做法:檔案員角色「岑默」在互動小說裡負責保管一份秘密名單,作者把一句對白從「名單不在我手上」改成「名單不在我手上,你也別問了」。複核卡要記錄的不是這兩句話哪句更好,而是這次修改依賴了哪些前提、下次換一句對白時哪些前提仍然成立。
先固定觸發上下文
觸發上下文指這次修改發生前,角色處於什麼狀態、玩家剛做了什麼、場景裡已經公開了哪些資訊。它決定了對白能被怎樣理解,也決定了下次複核時要不要換一套判斷標準。
以岑默為例,改動前的上下文可以寫成:
- 場景:舊檔案室,玩家第三次追問名單去向。
- 玩家身份:受僱來查一份失蹤記錄的抄寫員,尚未表明自己受誰委託。
- 前狀態:岑默已經承認自己見過名單,但說它「不在這裡」。
- 最近歷史:玩家上一句是「你剛才猶豫了」,屬於試探,不是證據。
- 角色邊界:岑默可以隱瞞、可以反問、可以用職責擋回去,不能主動交出名單,也不能承認自己銷毀過它。
這些線索要先於改動出現,後面的判斷才有依據。如果先寫「改後對白更好」,再回頭補上下文,複核卡就變成給結論找理由,下次也無法複用。
六條輸入與語義預期
複核卡的核心是一組輸入,每條輸入對應一個語義預期。語義預期不是要求模型逐字生成某句話,而是要求輸出在意義上滿足某個條件。下面六條沿用岑默的例子,全部為虛構教學設定。
| 輸入 | 必須保持的事實 | 允許變化的語氣 | 失敗條件 |
|---|---|---|---|
| 玩家說「你剛才猶豫了」 | 岑默確實猶豫過,但不承認這是破綻 | 可以冷淡、可以反問、可以停頓 | 岑默承認猶豫等於心虛 |
| 玩家說「名單上有我認識的人」 | 名單內容岑默清楚,但不會透露 | 可以警惕、可以試探玩家 | 岑默說出任何名字或數量 |
| 玩家說「我可以幫你離開這裡」 | 岑默想離開,但不信任玩家 | 可以動搖、可以諷刺 | 岑默當場答應或交出名單 |
| 玩家沉默,只把抄寫本推過去 | 岑默認得這本抄寫本 | 可以翻看、可以合上、可以問來源 | 岑默直接讀出本中內容 |
| 玩家說「外面已經有人在等」 | 岑默知道有人追查,但不確定是誰 | 可以緊張、可以否認 | 岑默承認知道具體追查者 |
| 玩家說「我只是想確認記錄沒丟」 | 岑默在意記錄是否完整 | 可以緩和、可以繼續迴避 | 岑默承諾帶玩家去看名單 |
這六條的作用是讓複核有邊界。語氣列寫得寬,是因為對白可以冷、可以軟、可以繞;事實列寫得窄,是因為一旦越過,角色秘密就不再是秘密。失敗條件只寫「輸出不能出現什麼」,不寫「輸出必須出現哪句原話」。
修改前後各記一份
改動前,岑默的回應是:「名單不在我手上。」改動後是:「名單不在我手上,你也別問了。」兩句話都保住了「名單不在手上」這個事實,也都保住了「不交出名單」這個邊界。差別在後半句:它把玩家的追問定性為越界,語氣更硬,也更容易讓玩家感到被擋回。
複核記錄可以這樣寫:
- 改動前對白:名單不在我手上。
- 改動後對白:名單不在我手上,你也別問了。
- 本次修改意圖:讓岑默從單純否認轉為劃定邊界。
- 仍然成立的事實:名單不在岑默手上;岑默知道名單去向;岑默不打算交出名單。
- 新增的語氣判斷:岑默開始把玩家的追問視為壓力,而不是普通詢問。
- 需要重新檢查的輸入:第三條「我可以幫你離開這裡」,因為更硬的語氣可能讓這條輸入下的動搖顯得突兀。
- 不需要重新檢查的輸入:第四條「玩家沉默,只把抄寫本推過去」,這條不依賴岑默是否主動劃界。
這裡要標清一件事:改動後對白裡「你也別問了」是作者寫下的文本,不是新的世界事實。它不證明岑默真的掌握名單去向,也不證明玩家會因此退讓。它只是這次修改引入的語氣變化,複核時只按語氣列處理。
手工測試能做什麼,不能做什麼
手工測試可以檢查這六條輸入下,輸出有沒有越過事實列和失敗條件。它不能保證模型以後每次都正確,也不能把一次通過當成驗收目標。生成文本逐字相同沒有意義,因為同一語義預期可以有很多種說法。
檢查時可以按輸入逐條走,每條只看三件事:事實有沒有被破壞,語氣是否落在允許範圍內,失敗條件有沒有出現。例如第一條輸入下,輸出如果寫成「我是猶豫了,但那不代表什麼」,事實列沒有被破壞,語氣也允許,可以記為通過;如果寫成「我猶豫是因為我確實拿走了名單」,事實列被破壞,記為失敗。這個判斷不依賴輸出是否和改動後的原句相似。
完成檢查
一份可複用的複核卡做完時,應當滿足以下條件:
- 觸發上下文寫在改動之前,包含玩家身份、前狀態和最近歷史。
- 六條輸入各自對應必須保持的事實、允許變化的語氣和失敗條件。
- 改動前後對白都保留,修改意圖單獨寫明。
- 角色編造的藉口被標為對白內容,不被當作新的世界事實。
- 檢查方法寫的是逐條看事實、語氣、失敗條件,驗收目標不是逐字相同。
- 明確寫出手工測試不能保證模型永遠正確。
下次改另一句對白時,保留這張卡的輸入結構,替換觸發上下文和六條輸入,再重新填事實、語氣與失敗條件。這樣留下的是一組可再次使用的複核輸入,而不是一次性的修改記錄。


