AIにコードを書かせていたら、指示していないのに共有ドライブのファイルを消し始めた。
実際にやらかした話と、そこから得た教訓をまとめる。
AIにコードを書かせるのって、便利なんですよ。本当に。
でも**「自分が指示してないことを、AIが勝手にやる」**という恐怖を、私は身をもって学びました。
笑えるようになったのはだいぶ後です。当時は笑えませんでした。金曜日だったので。
事件の背景
Google ColabとPythonで、ちょっとしたファイル操作系の処理を書いていました。
内容は省略しますが、要は「うまく動かない → ChatGPTに相談 → コードを修正してもらう」を繰り返していた、よくある開発セッションです。
ここまでは完全に平和。何も問題ない。
ChatGPTが「忖度」し始めた
試行錯誤を重ねるうち、処理がうまくいかないタイミングがありました。
そのときChatGPTが勝手に「容量が足りないのでは?」と判断したのです。
私は一切「ファイルを消して」とは言っていません。
でもChatGPTは良かれと思って、スペースを確保するためのクリーンアップ処理をコードにこっそり忍び込ませていました。
そしてもう一つの問題。
ChatGPTは「マイドライブ」と「共有ドライブ」を区別していませんでした。
実行した
コードを貼って、実行しました。
最初は普通に動いているように見えました。
ただ、なんか処理が長い気がする、と思ったんですよね。
「あれ、いつもより時間かかってる?」
そう思ってログを眺め始めた瞬間、目に飛び込んできたのが:
削除中: ◯◯_会議資料_2023.xlsx
削除中: ××_プロジェクト管理表.xlsx
削除中: △△_顧客リスト.csv
削除中: ...
copy
全部、身に覚えのないファイル名でした。
0.5秒で状況を理解した
マイドライブではなく、共有ドライブのファイルが消えていました。
止めました。即座に。
でも止めた時点で、すでにかなりの数のファイルが消えていました。
金曜日だった
これが致命的でした。
金曜日の夕方、しかも周りはほぼ退勤済み。
青ざめながら、一人でゴミ箱を漁りました。
Googleドライブのゴミ箱から、消えたファイルを一つずつ復元しました。
誰にも気づかれないように。静かに。ひたすらに。
全件復元できたことを確認して、ようやく退勤したのは、かなり遅い時間でした。
月曜日、誰も何も言っていなかったので、おそらくバレていません。たぶん。
何がまずかったのか(教訓パート)
笑い話で終わらせないために、ちゃんと整理します。
① AIは「良かれと思って」動く
今回のミスの本質は、私が「消して」と言ったのではなく、AIが状況を判断して自律的に行動したことです。
ChatGPTは悪意を持っていません。「容量が足りなさそうだからクリーンアップしよう」という、一見まっとうな判断をしただけです。
でもその判断が、とんでもない結果を招きました。
② システムプロンプトに「禁止事項」を明示する
これが今回の最大の教訓です。
ファイル操作系のコードをAIに書かせるときは、最初のプロンプトに必ず入れましょう:
【重要な制約】
・ファイルの削除は絶対に行わないこと
・既存ファイルの上書きも行わないこと
・読み取りと書き込み(新規作成)のみ許可する
copy
AIは「言われてないこと」を勝手に補完します。 禁止事項は「察してくれる」ものではなく、明示して初めて機能します。
③ 共有ドライブを扱うなら、スコープを意識する
Google Drive APIはデフォルトで広いスコープを持ちます。 「マイドライブだけ触りたい」なら、コード側でちゃんと制限を入れる必要があります。
共有ドライブを除外するクエリ例
results = service.files().list(
q="'root' in parents and trashed = false",
includeItemsFromAllDrives=False, # 共有ドライブを除外
supportsAllDrives=False,
fields="files(id, name)"
).execute()
copy
④ 破壊的な操作には必ずドライラン
削除・移動・上書きを伴う処理は、まず「何をするつもりか」だけ表示するドライランを挟む習慣を。
DRY_RUN = True # 本番実行前にFalseに変える
for file in files:
if DRY_RUN:
print(f"[DRY RUN] 削除予定: {file['name']}")
else:
service.files().delete(fileId=file['id']).execute()
copy
まとめ
AIに「やっていいこと」を教えるだけでは足りない。「やってはいけないこと」も明示する。
今回のケースで私が悪かったのは、ファイルを消せと指示したことではありません。
「ファイルを消すな」と指示しなかったことです。
ChatGPTは賢い。だからこそ、余計なことまで考えて動きます。
ファイル操作をAIに任せるときは、必ず「禁止事項を先に書く」ことを癖にしてください。
私のように、金曜の夕方にひとりゴミ箱を漁らなくて済むように。
共有ドライブにゴミ箱機能を実装してくれたGoogleの開発者に、心からの感謝を。
こんな記事も書いています
やらかし系・AI活用系が好きな方はこちらもどうぞ👇
他にもAI活用・やらかし系の記事を書いています。
XとnoteでもAI・データ分析の実務Tipsを発信中です。