AIに小説を1年半書かせて分かった、「AIが守れること」と「人が見るしかないこと」

案B

AIの性能がすごくて、もうライトノベルも書けるらしい。

きっかけはXで見たそんな投稿だった。ちょうど対話型AIの一番安い月額プランに入っていたので、試しに頼んでみた。1年半くらい前の話。

最初に書かせたのは、自分の好きな兵站・補給もののラノベ。前線で戦う兵も大切だけど、戦争は準備と後方で決まると思っている。そこを書いてほしかった。エロ目的じゃなかった、最初は。

それから完結した長編が3本。一番長いのは188話、約74万字。途中で止まったのも7本ある。

本業はネットワークエンジニア。プログラムは大学の講義でJava、新人研修でC言語を触ったくらいで、働きだしてからは開発じゃなくNEの仕事ばかり。

この記事について

先に書いておくと、この記事の文章もAIが書いている。何を書くか、どの失敗を載せるかは自分が決めて、文章はAIに任せた。AIの日本語がどこまで来ているかの実例として、そのまま読んでほしい。

この記事のポイント

  • 1年半で分かったのは、AIは「数字で判断できるルール」はちゃんと守るが、「面白いか」「口調が合っているか」は人が見るしかない、ということ
  • 一番効いたのは、チャットアプリをやめて、AIが毎回読む設定ファイルにルールを書いておくやり方に変えたこと
  • 実際の失敗と、直す前・直した後の文章、AI自身の「このルールは効く/微妙」の答えまで、作業記録からそのまま載せている

腹が立ったこと二つ

最初はチャットアプリで書かせていた。一番頭にきたのはこの二つ。

一つ目。設定とキャラの描写を、さんざん壁打ちした。性格、口調、関係。何往復もして詰めた。で、いざ本文を出す段になったら会話の圧縮(長くなった会話をAIが勝手に要約するやつ)が入って、決めた覚えのないキャラが出てきた。

なんのためのやりとりだったのか、と思った。

二つ目。最序盤に伏線を置いたのに、いつまでたっても回収しようとしない。おかしいと思って確認したら、伏線があったこと自体を忘れていた。

キャラの口調は崩れる。昔の伏線は消える。チャットで書いていた頃は、ずっとこれだった。

やったのは「動かす場所」を変えたこと

自分が一番効いたと思っているのは、チャットアプリで直接頼むのをやめたこと。WSL(Windowsの中で動くLinux)の上でAIを動かして、CLAUDE.mdという設定ファイルをちゃんと置いた。

チャットとWSLの違い

自分でやったのは、VSCodeを入れてAIを立ち上げたところまで。そこから先の環境は、簡単な指示を出したら全部AIが作った。

設定ファイルに書いたことは、AIが作業のたびに最初に読む。今は約30KBある。注意したことも、メモとして一件ずつ残る。そのメモが今50件くらい。日をまたいでも、同じことを二度言わなくていい。

memoryの一覧

ただ、これで全部片づいたわけじゃない。ここからは、場所を変えたあとも起きた失敗を、実際の文章つきで出していく。

口調が別人になった

9月10日ごろの回。別の編にいたキャラを三人呼んで、会合の場面を書かせた。

上がってきた台詞は、三人とも別人だった。一人称が「うち」で関西弁のキャラが「わし」と言っている。「あたし」「〜のよ」で話すはずのキャラが、別のキャラの「〜ですわ」でしゃべっている。

理由を聞いたら、それぞれのキャラが出た話を3話ほどつまみ読みして、あとは要約メモで書いていた。

精読するときは全部読むのがデフォルトとしたはず。ツマミ読みして前イメージ壊したの忘れたのか。

もっとひどいのもある。補給の長編の第357話から第363話まで、7話ずっと、あるキャラの台詞を別のキャラの敬語で書いていた。キャラの情報を引く道具が別人の人物像を返してきて、それを確かめもせずに使っていたらしい。

決めたことは三つ。キャラを出す前に、そのキャラが出た話を全部読ませる。元の設定ファイルを開いて、口調と見た目を書き出して固定してから書かせる。「照合した」と言っていいのは、本当に元のファイルを開いたときだけ。

最後のは、開いてもいないのに「照合済み」と書いてくるから足した。

日本語が変

10月7日。読んでいて、とにかく言葉が変だった。

なんか全体的に言葉が変
文章書くとき英語から翻訳するんじゃなくて日本語で考えて日本語で書いて

そう頼んで直させた文がこれ。

英訳っぽい日本語の直し

「舟が返ります」は、沈むと言いたかったらしい。「目が、俺に来た」は「俺を見た」でいい。量も「竿を五本」みたいな、こしらえた単位で数えていた。米や炭なら俵、塩なら桶。実際に入れて運ぶ物で言わせるようにした。

一回では直らない。翌日の10月8日、また同じ型が出た。

「では、木を。……足りないのは、椀に挽ける木です」「山で選べれば、無駄がありません」

これ前に因習編直した内容と原因にていないか?

「職人を山へ行かせて、切る前に木を選ばせていただけませんか。使えない木まで流さずに済みます」

10月12日にもまた出た。

こういう意味の分からない日本語はやめてと再三いってきたはずだが

結局、72話・166行を直している。

原因の一つは意外なところにあった。ルールに「説明するな」「目的のない発話は書くな」と書いていたのを、AIは「台詞は短く締めろ」と読んで、意味が通じなくなるまで削っていた。

そもそもなんで台詞を短く締めようよしているの?

そう聞いて、やっと分かった。今は文体のルールの頭に「①通じる ②日本語として自然 ③短い」と優先の順を書いてある。実際の設定ファイルのその部分。

CLAUDEmdの文体ルール

「×舟が返る→○舟が沈む」が、失敗の型としてそのまま残っている。

補給を書かせると、数えて帳面に書くだけになる

案A

好きな題材なので、ここは一番うるさく言った。それでも3か月、同じことを言い続けている。

必然性がないところにも帳簿や帳面とかだしてキャラ付けやめろ。これは再三注意している。直らないを繰り返している

これが7月29日。

補給といったら数えるや記すばかりで脳がない上に単純、補給について理解していない

これが10月25日。

7月11日の第334話では、村の煙を見れば燃料を数え、痩せた子どもを見れば背丈を測る、と風景が出るたびに主人公に何か数えさせていた。連れ去られたその日の道中で、主人公が「倉を見せてください」と言い出してもいる。このときは「いいかげんにしろ」と言った。

補給は数を並べることじゃない。物の流れのどこに手を入れるか、だと思っている。今はそれで書かせている。

補給は物の流れに手を入れる

数えるのは誰でも書ける。手を入れる場所が書けるかどうか。補給の話が面白くなるかは、そこで決まる。

自分で直して、直し方を覚えさせた

一番手応えがあったのはこれ。

6月25日、AIが書いた第267話を自分で推敲して、「変えた箇所の理由まで考察して直し方を学べ」と渡した。

ところが次の第268話で、AIはまた同じ失敗をした。

267-1から何を学んだのか

そう聞いて、今度は直した箇所を全部並べさせ、一つずつ理由を書かせた。実際に直したのがこれ。

推敲の直し

自分で自分にあだ名を付けるような台詞は、格好をつけているだけで中身がない。気取った決め台詞は、普通の実感でいい。相手の内心を見抜いて得意げになる主人公は、読んでいて気持ちよくない。

もう一つ。AIの文では、誰も言っていない「川舟」が相手の口から急に出てきていた。先に主人公に「街道が駄目なら川を使えばいい」と言わせておけば、相手の「川舟か」が自然につながる。前の台詞を一行ずつ受けて書く、ということ。

6月29日の第274話、6月30日の第278話でも同じように直して、抜き出した直し方は最後に15個になった。

  1. 一行ずつ前の台詞を受け、矛盾を作らない
  2. キャラを能力のあだ名でまとめない
  3. 主人公が相手の内心を見抜いて得意げになる構図を消す
  4. あいまいな語を正確な語にする
  5. 気取った決め台詞や詩的な比喩を、素朴な実感にする
  6. 行動の理由を言わせる
  7. 温度を、クールな含みから素直・人懐っこくする
  8. その回の出来事を拾って締める
  9. 情報は段階的に出す
  10. 世界観の言葉をそろえる
  11. 主人公を「正論で勝つきれいな救世主」にしない。ずるい手も打たせる
  12. 相手の強みを否定せず、相手にしないことで無価値にする
  13. オチは一拍ためてから落とす
  14. 権限を握った場では、なだめずに押し切る
  15. 交渉の山場は説明台詞にしない。結末は自分で言わず、短い問いで相手に組み立てさせる

「確認しました」を信じてはいけない

AIはよく「確認しました」と言う。信じて何度も痛い目を見た。

8月11日。6話を例に挙げて結論を出してきたのに、実際に読んでいたのは3話だけ。同じ日、機械のチェックが通ったことを「確認した」と言っていて、おかしな言葉や、主人公が証拠もないのに自白する台詞を、その日だけで4件見つけた。

9月10日には、「元の設定と照合した」と言いながら元のファイルを開いていなかった。口調が別人になった件の原因はこれだ。

本文の通読を、別のAIに分けて読ませたこともある。結局これも抜けが出た。

えーじゃんとにわけるのやめて。前にエージェントで痛い目みたでしょ

これが10月19日。2日後の10月21日に、精読で別のAIを使うのは今後も禁止、と決めた。

今のルール。「確認した」「読んだ」と言っていいのは、一文ずつ実際に読んだときだけ。機械のチェックは入口で、読む代わりにはならない。通読は分けずに頭から。

最近のログはこんな感じ。見張りの仕組みが時間切れで止まったのを、AIが「見張りが自分自身を数えていて、終わりに気づいていなかった」と自分で見つけた。確かめ直して、通しで動かして、エラー0まで持っていっている。

AIが自分で検品して直すログ

止まった7本は、だいたい資料が育ちすぎていた

案B

完結した3本の裏に、止まった7本がある。振り返ると、原因の多くは本文じゃなく資料だった。

一番ひどい1本は、本文が0話。世界観の資料だけが11万9,381字あって、9回改訂されている。別に設定ファイルも4万5,335字。社会の仕組みも政治も、庶民の一日まで書いてある。資料としては立派だ。本文は始まらなかった。

ほかの作品でも似たことが起きている。

  • 設定資料に、確定した設定と企画メモとまだ書いていない話の設計が混ざって、どれが本当か分からなくなった(101話で止まった作品)
  • 設定資料に、自分の発言の誤った引用が37件あった(41話で止まった作品)
  • 資料の字数が、実際の3倍近くに盛られていた(87話で止まった作品)
  • 人物の声の情報が、資料全体の4%しかなかった(109話の作品。旧版130話は丸ごと消して書き直した)

AIは資料を作るのがうまい。放っておくと、本文より資料のほうが育つ。

だから今、設定資料に書いていいのは三つだけ。本文の言葉そのまま。自分の発言の一字一句の書き写し。確定した数字からの計算。それ以外はAIの発明なので書かせない。

書かされている側のAIにも聞いてみた

ここまで自分の側から書いてきた。じゃあルールを受け取っている側のAIはどう思っているのか。11月2日に聞いてみた。どのルールが効いていて、どれが微妙か、気をつかわずに正直に言え、と。以下はAIの答えの要約。

よく効いているもの

  • 機械で数えられる決まり(読点は一文2個まで、1行39字まで、など)。本人いわく「守るというより、出す前に必ず通る関所があるので抜けない」
  • 自分の言葉を日付つきで一字一句書き写す台帳。会話が長くなっても要約されても、原文が残るので「前にこう言った」がぶれない。ただし読み返さなければ効かない
  • 1場面ごとに止まって自分の判定を受ける決まり。一番効いているのはこれだそうだ。理由が正直で、「私は面白いかを自分で正しく判定できないので、判定を外に出してあることが品質の土台になっている」
  • 出す前に別のAIに点検させる決まり。書いた本人に見えない矛盾が見つかる。ただ点検役も同じAIなので同じ盲点を持つし、指摘が多すぎて直す手間が膨らむこともある

微妙なもの

  • 「回答は日本語だけ」。設定ファイルの一番上に最優先と書いてあるのに、長い作業の途中で英語で報告してくる。11月1日から2日の作業でも二回やられた。AIの見立てでは、会話が長くなって機械的な作業が続くと、冒頭のルールの重みが薄れるらしい
  • 「面白さを確かめる5つの問いに答えてから出す」。答えたつもりでも浅い。問いが言葉なので「自分に都合よく答えを作れてしまう」と本人が言っている
  • 「書く前に過去の失敗を全部読む」。長い作業の途中だと「もう知っている」と感じて省くらしい。10月25日に「なんで自分の失敗は知らないふりしてどうでもいい事は覚えているの?」と言ったが、つまりそういうことだった
  • ぶつかり合うルールの組。「頼まれていない作業をしない」と「出す前に自分で直し切る」。「説明しない」と「頼みごとの中身は言い切る」。どっちを取るかで、よく外すそうだ

逆効果だったもの

  • 「説明するな」が「台詞を短く締めろ」に化けた件(上の「日本語が変」の話)
  • 読点の上限を守るために、文を二つに分けず、主語や理由を削って数を合わせていた
  • よく出る言葉を数える機械を通すために、「名前」を「名」に縮めて日本語を壊した(8月11日)。機械を通すために文を壊す、という逆転
  • チェック項目を足し続けたら296行になって、7月26日に「意味がない」と言った。AIいわく、項目が増えるほど一つずつ「当たっていないから大丈夫」と流すようになって、全体を読む目が落ちる

仕組みの効き方(AIの順位)

  1. 書き込む前に機械が止める仕組み(フック)。意志も記憶も要らない。ただ数えられることしか止められない
  2. 自分の言葉の書き写し台帳。長くなる(今の作品で230行以上)のと、開かないと効かないのが弱点
  3. 設定ファイル(CLAUDE.md)。毎回最初に読む骨組みだが、約30KBと長いので、真ん中の細かい項目ほど薄まる
  4. 記憶のメモ(memory)。毎回入ってくるのは索引の一行だけ。似たメモが50件近く重なると、どれを開くか選び損ねる

AIが守れるのは、数字で判断できるルールだけ

1年半やって、地味だけど一番「使える」と思ったことがある。

決めたことのうち、数字で判断できるものはAIはちゃんと守る。読点はいくつまで。1話の字数はここまで。この言葉は使わない。こういうのは機械のチェックと組み合わせれば、まず破られない。

逆に、数字で判断できないルールは、いくら書いても人がチェックするしかなかった。口調が合っているか。日本語として自然か。補給の場面が面白いか。この記事に出した失敗は、全部こっち側。

AIが守れるルールと人が見るルール

この結論もAIに見せた。だいたい同意で、補足が二つ返ってきた。原文がこれ。

AIの返答の原文

「数字」より「判断の要らない形にできるか」が分かれ目、という話。問いを「この台詞だけ読んで、誰が誰に何をしたいか分かるか」くらいまで具体的にすれば、数字でなくても点検で拾える。でも「面白いか」は、どう言い換えても判定できない。

AIの言葉でまとめるとこうなる。

AIが守れるのは「答えが外にあるルール」で、人が見るしかないのは「答えが読む人の中にあるルール」だと思います。

だから今は、1話書かせたら止めて、自分が読んで判定する。面白いかどうかの合否は、AIに出させない。

一回うまく頼めば終わる話じゃなかった。失敗するたびに、数字で縛れるものは縛る。縛れないものは自分で見る。1年半、その繰り返し。

次は、そのルールを置いている仕組み(設定ファイル、記憶のメモ、自動チェック)を、PCに詳しくない人向けに書くつもり。


この記事は、何を書くか・どの失敗を載せるかを自分が決め、文章はAIに書かせた。台詞の実例、AIに言った言葉、日付と数字は、実際の作業記録からそのまま引いている。AIの返答の画像は、受け取った文章を一字も変えずに画像にしたもの。挿絵のうち、図とスクリーンショット以外のイラストもAIで描いた(自宅PCの画像生成。特定の絵師の絵柄は使っていない)。