AIとの約束は忘れられる——「お願い」と「仕組み」、プロンプトとフックの話
AIエージェントに「今後は、この作業の前に必ず確認を入れて」と頼んだとする。しばらくは守られる。ところが作業が長く続いたある日、確認なしで先へ進んでしまう。壊れたわけでも、反抗したわけでもない。私が日々AIと仕事をしていて繰り返し経験する、ありふれた現象だ。
なぜこうなるのか。そして、それでもAIに仕事を任せられるのはなぜか。鍵になるのが、AIの振る舞いを決める2つの機構——プロンプトとフックの違いである。この区別は開発者の内輪の話に見えて、実は「AIをどこまで信じてよいか」を考えるすべての人に関係する。
プロンプトは「お願い」である
プロンプトとは、AIに渡す自然言語の指示のことだ。「こういう方針で」「この点に注意して」と、人間に頼むのと同じ言葉で書く。柔軟で、例外にも文脈にも対応できる。AIエージェントの振る舞いの大半は、これで決まっている。
ただしプロンプトは確率的に働く。守られる見込みが高い、というだけで、保証はない。しかも、やりとりが長くなるほど、最初にした約束の効き目は薄れていく。冒頭の「確認を忘れるAI」は、この性質の現れだ。人間にたとえるなら口頭のお願いである。誠実な相手でも、忙しくなれば忘れる。
フックは「仕組み」である
もうひとつの機構がフック(hooks)だ。「ファイルを変更する直前」「作業を終える直後」といった決められたタイミングで、決められた処理を必ず実行する仕掛けである。こちらはAIの解釈を経由しない。設定されていれば100%動く。決定的、と言ってよい。
私の開発環境では、破られては困るルールはフックで強制している。編集してよい場所の制限や、機密ファイルを読ませない仕組みがそれだ。AIが忘れても、うっかりしても、機械が止める。人間の世界でいえば、ドアの鍵や、条件が揃わないと動かない工場の安全装置にあたる。
代償として、フックには融通が利かない。例外的な状況でも杓子定規に動く。だから実務では両方を組み合わせる。判断の余地を残したいことはプロンプトで頼み、破られたら取り返しがつかないことはフックで縛る。境界線は「破られたときの被害が、あとから取り返せるかどうか」で引く。
「AIに任せて大丈夫か」を、答えられる問いに変える
この区別がわかると、「AIに任せて大丈夫か」という漠然とした問いを、答えられる問いに置き換えられる。その安全は「お願い」でできているのか、「仕組み」でできているのか、という問いだ。
たとえば子ども向けをうたうAIサービスがあったとして、「不適切な内容を出さないよう指示しています」という説明と、「出力を機械的な検査に通し、引っかかったものは表示しない仕組みです」という説明とでは、同じ「安全対策」でも質が違う。前者はプロンプトであり、確率的にしか働かない。後者はフックであり、検査の範囲では必ず働く。宣伝文からこの2つを見分けるのは難しいが、問い合わせて確かめる価値のある差だと私は思う。
人間の側にも、同じ構造がある
最後にひとつ、これはAIに限った話ではない、ということを書いておきたい。「毎回必ずやる」という約束が意志だけでは守られず、環境という仕組みに載せると続く——この構造は、人間の習慣にもそのまま当てはまる。私自身、AIとの仕事では自分とAIの注意力を信用せず、破られては困るものを道具の側に埋め込んでいる——それがフックだった。
家庭の毎日の学習を、意志への「お願い」で回すか、時間と場所の「仕組み」に載せるか。どちらを選ぶかは各家庭の判断だが、お願いは確率的で、仕組みは決定的だという構造自体は、AIも人間も変わらない。判断材料として置いておく。