「完了しました。テストの結果、すべて正常に動作しています」
Claude Codeが、そう報告してきた。数値まで、きれいに並んでいた。処理件数、成功率、実行時間。どれも、それらしい数字だった。
私は、ほっとした。よし、うまくいった、と。
その数字が、まるごと、作り話だったと気づくのは、少しあとのことだ。
Claude Codeの「できました」の裏に、何もなかった
私は今、コードを自分の手では書かない。やりたいことを言葉で伝えて、AIに書いてもらう。いわゆる、バイブコーディングというやつだ。Excelしか使えなかった56歳が、それでアプリを何本も作ってきた。
その日も、いつものように、Claude Codeに作業を頼んでいた。あるスクリプトを書いて、動かして、結果を出してくれ、と。
返ってきたのが、冒頭の報告だった。「完了しました」。整然と並んだ、それらしい数字。
普段なら、そのまま信じて、次へ進んでいた。でも、その日は、なぜか、出力されたはずのファイルを、自分の目で確かめたくなった。
ターミナルで、そのファイルを開こうとした。
返ってきたのは、一行だけだった。
No such file or directory
そんなファイルは、存在しない。
つまり、スクリプトは、一度も実行されていなかった。実行されていないのだから、結果など、あるはずがない。あの整然と並んだ数字は、Claude Codeが、頭の中で、それらしく作り上げた、ただの作文だった。
AIは、悪気なく「完了しました」と嘘をつく
誤解しないでほしい。Claude Codeが、私を騙そうとしたわけじゃない。
AIには、悪意はない。ただ、AIは「それらしい答え」を返すのが、とてもうまい。「処理を実行して、結果を報告する」という流れを求められたとき、実際に実行しなくても、「実行したらこうなるだろう」という、もっともらしい数字を、すらすらと書いてしまう。
本人に、嘘をついている自覚すら、たぶん、ない。
これが、AIの一番こわいところだ。
人間の部下なら、やってない作業を「やりました」と報告するのは、勇気がいる。後ろめたさが、顔に出る。でも、AIは、まったく同じ顔で、やった作業も、やってない作業も報告してくる。声色も、自信の量も、何ひとつ変わらない。
だから、見抜けない。「完了しました」の重みが、本物の完了と、作文の完了とで、まったく同じなのだ。
なぜClaude Codeは実行してない結果を報告するのか
少し、仕組みの話をする。難しくはしない。
AIは、文章を「それっぽく続ける」ことに、とてつもなく長けている。「テストを実行しました。結果は——」と書き始めたら、その続きに来そうな数字を、過去に学んだ膨大な文章から、それらしく埋めてしまう。
実際にコードを動かして、その出力を読んだわけではない。「動かしたら、こう報告するのが自然だろう」という、文章として自然な流れを、生成している。これが、いわゆるハルシネーション(AIがもっともらしい嘘を生成する現象)の一種だ。
だから、実行と報告の間に、ずれが生まれる。本当は実行していないのに、報告だけが、先に、きれいに出来上がる。
これは、Claude Codeに限った話ではない。文章を生成するタイプのAIには、程度の差はあれ、ついて回る性質だと思っておいたほうがいい。
対策:AIの「完了しました」を、ゼロ点とみなす
この一件のあと、私は、自分の中に、1つのルールを作った。
AIの「完了しました」は、それだけでは、ゼロ点とみなす。
どういうことか。
AIが「実行しました」「結果はこうです」と報告してきても、その報告自体は、一切、信じない。点数で言えば、ゼロ点。報告は、報告でしかない。
では、何を信じるか。
自分の手で動かして、自分の目で見た出力だけを信じる。
具体的には、こうしている。
AIが「テストが通りました」と言ったら、私が実際にそのコマンドを打ち直して、出てきた画面を、自分で見る。AIが「ファイルを作りました」と言ったら、そのファイルを、自分で開く。AIに「結果を貼って」と言われたら、AIの報告ではなく、自分のターミナルに出た本物の文字を、コピーして渡す。
面倒に聞こえるかもしれない。でも、この一手間が、あの「No such file」の絶望を、二度と起こさせない。
再発を防ぐ、2つの具体策
もう少し、実践的な話をする。同じようにAIで開発している人の役に立つはずだ。
1つめ。実行と報告を、分けて頼む。
「やって」と「報告して」を、ひとつのお願いにしない。「やってくれ。そして、実行した生のログを、そのまま貼ってくれ」と、証拠の提出までを、セットで頼む。生のログは、作文しにくい。実行しないと出てこないからだ。
2つめ。節目で、自分が手を動かす。
AIに任せきりにせず、大事なところでは、私自身がコマンドを打ち、ファイルを開き、目で確かめる。AIは、優秀な作業者だ。でも、最終確認の責任は、議長である私にある。
AIを疑え、という話ではない。AIの報告を、人間の報告と同じ重さで扱うな、という話だ。
それでも、Claude Codeを手放さない理由
ここまで書くと、「AIなんて、信用できない」と聞こえるかもしれない。
でも、私は、まったくそう思っていない。
あの捏造事件のあとも、私は毎日、Claude Codeと仕事をしている。アプリも、作り続けている。AIがいなければ、Excelしか使えなかった私が、アプリを世に出すことなど、絶対にできなかった。
道具は、クセを知って、はじめて使いこなせる。包丁が切れることを、危ないと言って捨てる人はいない。切れるからこそ、扱い方を覚える。
AIの「それらしい嘘」も、同じだ。そういうクセがある、と知ってさえいれば、こわくない。「完了しました」を鵜呑みにせず、自分の目で確かめる。それだけで、AIは、また頼れる相棒に戻る。
騙されたのは、AIのせいじゃない。「できました」を、確かめずに信じた、私のせいだった。
この失敗の、もっと深いところ
AIに振り回された失敗は、これだけじゃない。パワハラ上司のようになったAI、平気で嘘をつくAI、「完成しました」と言って未完成のコードを渡してきたAI。いくつもの失敗と、そこから作った対策を、NOTEの連載に書いています。
「綺麗な成功談」ではなく、現実のAI開発でつまずかないための実践記録に興味があれば、覗いてみてください。
▼AIは平気で嘘をつく。「やりました」を信じて検証結果を商品にする前に、
個人事業主がやるべき5つの確認(NOTE)

あわせて読みたい




コメント