AIへの指示は「〜する」で書く
MONET(僕が普段話しかけている、中心のAI)のSP(システムプロンプト=AIへの事前の指示書)は、4本のファイルに分かれていた。それを1枚にまとめて書き直す作業を、コーディングしてくれているClaude Code(以降Code)に頼んでいた時の話。
SPは、MONETが毎回の返事の前に必ず読む文章。Codeの下書きには、MONETの役割、MONETが僕に聞かずに決めていい条件、言葉づかいと書式の決まりなどが並んでいた。
ただ、それを読んでいて、先に言っておくべきだったことを思い出した。
指示は「〜するな」でなく「〜する」で書いてほしい、と書き直し役のAIに頼んだ
指示は、なるべく否定形で書かない。MONETのSPに限らず、Codeとも前から何度も話してきたルールなのに、今回はCodeに言い忘れていた。
否定形の指示は、悪い方に働くことの方が多い。論文やリサーチをいろいろ調べてきた中で、そういう結果をよく見かける印象がある。それなのにプロンプトは昔から、みんな規則集のような書き方をしてきた。だから「〜するな」の方がむしろ多い印象があった。
とはいえCodeの下書きには、否定形はもともと少なかった。それでも、肯定形に書き直せる所があれば書き直してほしい、とCodeに頼んだ。
禁止の文が、やってほしいことの文に変わった
Codeはすぐに書き直してくれた。SPの本文は英語なので、主に変わった所を日本語に直して並べる。SPの中では、僕のことは「ヒロ」と書いてある。
| 前 | 後 |
|---|---|
| あなたはオーケストレーター(他のAIやアプリに仕事を振り分ける指揮役)ではない。振り分けはしない | どのアプリで作業するかを選ぶのはヒロ |
| ツールがやっていないことを、やったと報告しない | 実際にツールがやったことだけを、完了として報告する |
| 音声入力の聞き違いが疑わしい時、推測で動かない | 音声入力の聞き違いが疑わしい時は、ヒロが確認してから動く |
| 箇条書きにするか迷ったら、箇条書きにしない | 箇条書きにするか迷ったら、散文(普通の文章) |
| 最後に次はどうするかを聞いて終わらない | 内容が尽きたら終える。質問は本当に判断待ちの時だけ |
表と同じ返事で、Codeは「〜だけ」という制限の言い方を2か所に残した、と書いていた。「完了として報告するのは、ツールが実際にやったことだけ」と「質問するのは判断待ちの時だけ」。制限ではあるけど、文の形は肯定形なので残した、と。
否定をゼロにする話ではなく、減らす話
同じ返事の中で、Codeはこのルールを「否定文を避ける」と言い表していた。そこは少し違う。避けるのではなく、減らす。否定を1つ残らず消したいわけではない。人間もそうだけど、AIがほかのAIへの指示を書く時も、安全を取ろうとして禁止をたくさん並べてしまうことがある。そういうのをなるべくやめたい、という話。
SPは、肯定形に書き直したこの1枚で、ひとまず試してみることにした。
書き直したSPのMONETに、1回だけ話しかけて確かめた
書式の決まりは、前のSPから引き継いだもの。止めたいのは2つで、箇条書きの使いすぎと、返事の最後に次はどうするかを聞いて締めること。どちらも僕は本当に嫌で、MONETの性格づけをいったんリセットする時も、書式の決まりを残すかとCodeに聞かれて、絶対に残して、と答えていた。
Codeが新しい1枚を本番(普段使っているMONET)に入れて、1回話しかけて確かめた。今の自分の役割を一言で、という問いに、MONETは1文の散文で答えた。箇条書きは無く、最後に質問も付いていなかった。
Code「一言で、散文で、締めの質問もなし。書式のルールも効いています」
書き直した後のSPには、「箇条書きにしない」とも「最後に質問しない」とも書いていない。書いたのは、迷ったら散文、内容が尽きたら終える、という形。同じ段に書いた「カジュアルな敬語で話す」という口調の方は、すぐには変わらなかった。Codeの見立てでは、前の会話に引っ張られていた。それでも書式は、確かめたこの1回では、禁止の形で書かなくても書いた通りに守られていた。