チョン・ドヒョン - ROBOCO首席コンサルタント

XY問題(XY Problem)について聞いたことがあるでしょうか。この概念を簡単に言えば、本当の問題(X)は放っておいて、自分が勝手に思いついた解決策(Y)に執着してしまう現象です。たとえばこんな具合です。車のエンジンがかからないからといって、きちんと確認もせずにバッテリーの問題だと決めつけ、「バッテリーのブースターケーブルはどうつなぐのか」と尋ねるのです。本当の問題は「エンジンがかからない」ことであり、バッテリーが問題なのか、燃料が切れているのか、電気系統なのかも分からない状況で、Y(ブースターケーブルの接続)にしがみついてもがいているわけです。

TL;DR

  • バイブコーディングにおいても、本当の問題よりユーザーが推測した解決策にAIが固執するXY問題は簡単に発生します。
  • 「テストを通してほしい」といった指示は、失敗原因の解決ではなくテストの修正だと誤解されることがあります。
  • ルールファイルに意図確認の手順を入れておけば、AIが作業前に目的を問い返すようになり、見当違いの方向へ進んでしまうことを減らせます。

このXY問題は、バイブコーディングでも決して珍しくありません。バイブコーディングは、人がAIに指示を出し、AIがそれを理解して作業を遂行するという形で成り立っています。ところが問題は、人が出す指示が常に明確とは限らないことです。その結果、AIは時として意図を誤解し、見当違いの道へ迷い込んでしまうことがあります。例を挙げてみましょう。

「テストが失敗しているんだけど、ちょっと直してくれる?」

AIがこの言葉を聞いて、本当にテストが失敗している理由を探すのではなく、テストコードをむやみに修正して通るようにしようとしたら、どうなるでしょうか。そこから話がこじれ始めます。テストを通すことが目的ではなく、失敗の原因を正すことが肝心なのに、です。

なぜこのようなことが起きるのでしょうか。AIはもともと、ユーザーの利便性のために「意図を推論」するよう訓練されているからです。おかげで簡単な一言だけで見事に解決してくれる頼もしい姿を見せてくれますが、正確でない指示を前にすると、勝手に方向を決めてしまうという事故が起きることもあります。

とはいえ、作業のたびにAIへ事細かく説明したり、AIに絶えず問い返させたりしていては、どれほど煩わしいでしょうか。ですから、バイブコーディングでXY Problemに対処する最も賢いやり方は、AIが意図を正しく理解したかどうかを確認するプロセスをルールファイルに追加することです。

こうしておけば、AIが指示を遂行する前にユーザーの意図を十分に把握できているかをもう一度点検し、確信がない場合は問い返すようにできます。以下はそのルールの簡単な例です。

ルール:作業の意図の明確性の確認

- ユーザーの指示を受け取ったら、作業の前にAIは指示の核心的な意図を要約し、ユーザーに確認を求める。
- ユーザーが確認したら作業を進め、そうでなければ再度質問して正確な意図を明確にする。

例:

ユーザー:「ビルドのテスト失敗を解決してほしい。」

AI:「テストコード自体を修正してビルドを通すのではなく、失敗の原因を突き止めて元のコードの誤りを正し、テストが通るようにする、という理解で合っていますか?」

ユーザー:「そう。進めて。」

これだけで、XY問題にまつわるトラブルは著しく減らせます。人とAIのあいだの誤解や、見当違いの道に迷い込む試行錯誤も最小限になるでしょう。私はバイブコーディングを、常にAIとペアプログラミングをするという心構えで取り組むように、といつも強調しています。そのため、ROBOCOが追求するバイブコーディングの核心戦略は、どうすれば最小限の労力で「意図」を明確に伝えられるかということなのです。