※この記事は、2026年10月にAIを使った試験の準備を検証した時の記録です。問題は人工的な応答を使ったテストで見つかりました。実際のAIサービスや本番環境で同じ障害が起きた、という話ではありません。
最近、AIに任せる作業が、どこまで期待どおりに動くかを確かめる仕組みを作っています。
試験をするなら、うまくいった結果だけでなく、途中で何かがおかしくなった場合も記録に残したい。
何が起きたのか。
どこまで進んでいたのか。
その結果は、成功として数えてよいのか。
後から振り返るためには、そういう情報も必要です。
ところが、別のAIに試験の仕組みを確認してもらったところ、ちょっと間抜けだけど大事な問題が見つかりました。
想定外の応答が来た時、失敗を記録しようとする処理自体も失敗してしまったのです。
試験の途中でおかしな応答が来たら、どうするか
今回作っていたのは、AIに複数の条件で回答を作らせ、その結果を後から比べるための試験です。
全部が予定どおりに進めば、結果が残ります。でも、AIからの応答が途中で途切れたり、想定していた形と違ったりする可能性もあります。
そんな時に、何事もなかったように成功へ混ぜるわけにはいきません。必要なら処理を止めて、途中までの状態と、何が起きたかを記録したい。
少なくとも、仕組みを作る時には、そういうつもりで考えていました。
ところが、別のAIによる確認では、異常を記録する時に、その異常な値をうまく保存できない場合があると分かりました。
失敗したことを残すはずが、その保存処理まで失敗してしまう。つまり、試験する側の仕組みにも穴があったわけです。
記録は「実行中」。でも、実際には先へ進んでいた
人工的に作った応答を使ったテストでは、処理が止まった後も、保存済みの記録は途中の「実行中」のまま残りました。
その記録は、ちょうど試験用の呼び出しを行う前に保存されていたものです。でも、テストでは呼び出しはすでに一度行われていました。
つまり、残っている記録だけを見ると、実際に呼び出しが行われたのか、その後に何が起きたのかを確定できない状態です。
この時、間違った回答が成功として集計されたわけではありません。問題は、失敗したことと、その時の状況を最後まで保存できなかったことでした。
「実行中」と出ていたら、まだ動いていると思うかもしれません。逆に、呼び出し前の記録しかないから、何も実行されていないと考えてしまうかもしれない。
でも今回のテストでは、どちらも記録だけから決めることはできませんでした。
AIに試験を任せていて、後から結果だけを見るつもりだったら、ここで普通に迷うと思います。
「止まる」と「止まったことが分かる」は別だった
以前、AIエージェントに長時間作業を任せるなら、完了条件だけでなく、待っている間に何をしないかも決めたい、という話を書きました。
今回も、異常が起きた時に処理を止める、という考え方自体はありました。
ただ、それだけでは足りなかった。
処理が止まっても、最後の状態を保存できなければ、後から見た人には事情が伝わりません。
「もう一度やっていいのか」
「すでに一度呼び出しているのか」
「どこまでの結果を信用してよいのか」
ここが分からないまま再開すれば、同じ処理を重ねたり、不完全な結果を完成した結果だと思ったりする可能性があります。
だから、止める仕組みと同じくらい、止まった後に何が分かる状態を残すかも大事なんだと思いました。
修正した後も、別のケースで同じ問題が出た
最初に見つかった保存失敗については、作成担当のAIが修正し、確認担当のAIが再びテストしました。
ところが、別の人工応答を使った確認では、また記録を保存できないケースが見つかりました。
最初に対処した値とは違い、今度は文字の扱いに関係するものでした。見た目には「保存できそう」と確認したつもりでも、実際の保存方法では失敗してしまったのです。
その後、こちらも修正し、確認担当が人工データで再検証しています。記録上は、対象のケースでエラーや未完了の状態を残し、成功として数えずに止まることを確認しています。
一つ直したから終わり、ではなかったのが印象的でした。
最初の確認だけなら「異常時も記録できます」で済ませていたかもしれません。でも、別の条件を試してみると、その確認自体に抜けがあった。
作った側と別のAIに見てもらったことが、少なくとも今回の問題を見つけるきっかけになりました。
失敗の記録は「エラーが出た」だけでは足りない
今回の経験から、AIに試験や自動作業を任せる時は、成功したか失敗したかだけでなく、もう少し分けて見たいと思うようになりました。
- どの作業まで進んでいたのか。
- 何を実行したか確認できるのか。
- 成功、失敗、未完了のどれとして扱うのか。
- 記録できた部分と、分からない部分はどこか。
- 自動で続けてよいのか、人が確認してから再開するのか。
例えば、記録が途中で止まっている場合、「何もしていない」と決めるのではなく、「そこから先は不明」と残す方が安全なこともあります。
特に、外部への送信やお金のかかる処理が含まれるなら、実行されたか分からないまま同じ操作を繰り返すのは避けたい。
もちろん、何を自動で再開してよいかは作業によって違います。今回の人工テストで、すべての作業の再開方法まで決まったわけではありません。
試験する仕組みも、試験が必要だった
自分は、AIの答えが合っているか、仕事を最後まで進められたか、という部分にはどうしても目が向きます。
でも、その結果を確認するための仕組みが、失敗を残せなければどうなるのか。
今回の確認では、まさにそこが抜けていました。
しかも、最初の修正後に別の問題も見つかった。失敗時の記録は用意したから大丈夫、とは簡単に言えません。
今回確認できたのは、人工的に作った応答に対する限定的なテストまでです。実際のAIサービスや本番環境で、どんな異常にも対応できると分かったわけではありません。
それでも、AIが失敗するかどうかだけでなく、失敗した時に人間が後から状況を判断できるかも見ておきたい、という発見はありました。
AIに任せる時間が長くなるほど、最後に「失敗しました」と一言あるだけでは困ることも増えそうです。
何が起きたか、何が分かっていて、何がまだ分からないか。
試験する仕組みを作る時は、その部分も一緒に試していきたいと思います。
コメント