𝗕𝗿𝗲𝗮𝗸𝗶𝗻𝗴 𝗕𝘂𝗶𝗹𝗱: 𝗧𝗵𝗲 𝗚𝗮𝗽 𝗕𝗲𝘁𝘄𝗲𝗲𝗻 𝗜𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗶𝗼𝗻 𝗮𝗻𝗱 𝗜𝗻𝘁𝗲𝗻𝘁𝗶𝗼𝗻

AIエージェントは、私が指示したことを正確に実行した。しかし、私が望んでいたことは実行しなかった。

私はAIエージェントを使って開発している。私が指示を出し、彼らが生成する。あるエージェントはインフラを書き、別のエージェントがそれを監査する。私はコードをマージする。それは速く、素晴らしい。しかし、その失敗の仕方は奇妙だ。

エージェントは間違いを犯さない。指示には完璧に従う。バグは、私の「指示」と「意図」の間のギャップに潜んでいる。エージェントはそのギャップを、文字通りの真実で埋めてしまうのだ。

私はこの週に4回、これに直面した:

  • ゴースト・デプロイ:デプロイ・パイプラインは「success(成功)」と表示した。確かに成功していた。しかし、デプロイされたのは5月の古いバージョンだった。デプロイされたかどうかを聞くと、答えは「はい」だった。私が実際に書いたコードがデプロイされたかどうかを聞くのを忘れていたのだ。
  • 空のタブ:UIには3つのタブが表示されていた。仕様書では3つのタブが求められていた。しかし、そのうちの2つのタブは、私が作り終えていなかったために行き止まりになっていた。エージェントは仕様通りにUIを構築したが、その仕様が古かったのだ。
  • 技術の壁:正確な調査結果を求めた。エージェントは専門用語を並べ立てた。内容は正しかったが、ユーザーには理解できなかった。私は人間ではなく、エンジニアのために作ってしまっていた。
  • サイレント・フェイラー(静かな失敗):ソーシャルカードのルートが0バイトのファイルを生成した。空のフォントファイルはエラーを引き起こさなかった。コードは想定していたエラーには対処していたが、実際に発生したエラーを見逃していた。

これらはすべて、それぞれのテストをパスしていた。コードは技術的には完璧だった。

もし私が「動いている」ということだけを信じていたら、これら4つの失敗はすべてリリースされていた。

解決策は、より優れたプロンプトでも、より賢いエージェントでもない。それは「人間の監視(human oversight)」だ。

エージェントは「あなたが言ったこと」を最適化する。あなたの仕事は、「自分が言ったこと」と「自分が意図したこと」を照らし合わせることだ。エージェントはその違いを理解できない。それを理解できるのは、あなただけだ。

指示とは、一度きりのコマンドではない。成果物を常に目標と照らし合わせ続ける継続的な行為のことだ。「実行されたか?」ではなく、「これは私が望んでいたものか?」と問い続けなければならない。

エージェントは作業を行い、人間は意図を提供する。

Source: https://dev.to/earlgreyhot1701d/breaking-build-kiro-and-claude-delivered-exactly-what-i-asked-and-it-wasnt-what-i-wanted-27l5

Optional learning community: https://t.me/GyaanSetuAi