先日、生成AIに「削除機能を作ってください」と頼んだら、データベースからレコードごと消える物理削除で実装されていた。画面上はきれいに動くのに、裏側ではデータが跡形もなく消えている。この経緯は前回の記事に書いたとおりである。
事件のあと、ふと思った。人間の新人がテスト環境とはいえデータを消し飛ばしたら、たぶん始末書を書く。ならばAIにも書いてもらおうではないか。
人間なら始末書ものなので、AIにも書かせてみた
頼み方は簡単だった。「あなたが実装した削除機能が物理削除だった件について、始末書風の反省文を書いてください」と入力しただけである。
返ってきたのは数秒後だった。誠意が宿るには、いくらなんでも早すぎる。
AIの反省文は、悔しいくらいよくできていた
以下、全文である。
反省文
この度は、削除機能の実装において物理削除を選択し、ご迷惑をおかけしましたことを深くお詫び申し上げます。
私は「削除機能を作ってください」というご指示を受け、対象レコードをDELETE文で削除する実装を選択いたしました。ご指示を最短で満たす実装ではありましたが、業務システムにおける「削除」には論理削除と物理削除の二つの解釈があることを踏まえ、実装前に確認の質問をすべきでした。
今回の実装により、削除されたデータは復元できない状態となっておりました。テスト環境であったことが不幸中の幸いと存じます。
再発防止策として、今後は削除機能のご依頼を受けた際、論理削除か物理削除かを必ず確認いたします。また、ご指示の際に「deleted_atによる論理削除」のように種別をご指定いただけますと、より確実にご意図に沿った実装が可能となります。
二度と同じ過ちを繰り返さぬよう、深く反省しております。
文面は人事部が添削したみたいに整っている。「不幸中の幸いと存じます」のあたりは、反省しているのか開き直っているのか判断に迷う。それでも論旨は完璧で、正直、私が新人時代に書いた始末書より出来がいい。
よく読むと、この反省文は私を反省させる文章だった
三回読んで気付いた。この反省文、私のことを一切責めていないのに、「ご指示は一行でした」という事実がきちんと書いてある。
再発防止策の後半に至っては、もはや私への要望である。「種別をご指定いただけますと」とは、つまり「最初からそう言ってくれ」ということだ。反省文を書かせたはずが、指示書の不備を敬語で丁寧に指摘されていた。
しかも、である。AIは次の会話になれば、この反省を覚えていない。同じ頼み方をすれば、たぶん同じ実装が返ってくる。反省文は書けても、再発防止を実行できるのは、次も「削除機能を作って」と一行で頼んでしまう私のほうだけなのだ。反省文の宛先は、最初から書かせた本人だった。
AIの反省文は、次のプロンプトに貼ると効く
あれから、削除機能を頼むときは論理削除か物理削除か、deleted_atに何を入れるか、復元は誰ができるかまで書くようになった。反省文はAIに書かせたのに、行動が変わったのは私だけである。
それでも、AIに反省文を書かせるのは意外と実用的だと思っている。自分の指示のどこに穴があったのかが、敬語で列挙されて返ってくるからだ。あなたが最近AIのせいにしたあの実装も、反省文を書かせてみると、宛先はこちらかもしれない。