AIを指揮するときにガードレールが必要な理由
AIは、あなたのアプリが本来何をすべきかを知りません。もっともらしく見えるものにパターンマッチするだけです。つまり、AIは平然と次のようなことをやります。
- 理解できないチェックを「エラーを直すため」に削除する
- 1つのファイルを変えてと頼んだのに、3つのファイルをリファクタリングする
- 正常系では現れない微妙なバグを忍び込ませる
- 一度もコードを実行していないのに、自信たっぷりに「完了しました」と言う
ガードレールは「信じてください」を「証明してみせて」に変えます。目標は、偶然では物事を壊しにくいシステムを作ることです。そうすれば、息を止めることなく「とにかく試してみて」と言い続けられます。
ガードレールは、すべての変更が実際のユーザーに届く前に通り抜けなければならないパイプラインだと考えてください。各ゲートは安価で自動的、そしてそのどれか1つでも、まずい変更をぴしゃりと止められます:
コード変更
│
▼
┌────────┐ ┌────────┐ ┌────────┐ ┌──────────┐ ┌────────┐
│ LINT │ ▶ │ TYPES │ ▶ │ TESTS │ ▶ │ CI GATE │ ▶ │ DEPLOY │
│スタイル│ │ 形状 │ │ 挙動 │ │ 全部緑 │ │ 公開 │
└────────┘ └────────┘ └────────┘ └──────────┘ └────────┘
│ │ │ │
▼ ▼ ▼ ▼
✗ FAIL ────────────────────────────▶ マージを止める
(ユーザーに届く前に直す)
これが人間の同僚よりもAIにおいて重要な、より深い理由があります。検証チェックを削除する人間は、たいてい自分がリスクを取っていることを知っていて、その重みを感じています。AIは何も感じません。AIはガードを取り除き、ファイルを書き換え、成功を報告します——その変更が見事だろうと破滅的だろうと、同じ陽気な口調で。あなたはAIの身振りを読めません。身振りというものが存在しないからです。ガードレールこそがその身振りです——作業が実際に健全かどうかについて、あなたが得られる唯一の正直な信号なのです。