0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIエージェントに実行を任せる時代、暴走をどこで止める? — 未経験でも作れる「承認ゲート」設計

0
Posted at

近ごろ、AIが「自分でPCを操作する」タイプのニュースが一気に増えました。ブラウザを自分で開いてフォームを埋める Computer Use、AIエージェントが自分でカード決済して買い物を済ませる、といった話です。

ここで、これまでのAIと決定的に変わった点があります。AIが「コードや文章を提案するだけ」から、「自分で実行して最後までやり切る」に変わったことです。この違いは、未経験者が最初に意識すべきポイントを1つ、まるごと変えます。

  • これまで(提案するAI): 変なコードを出されても、人がマージしなければ実害はゼロ。安全網は「人の承認」だった。
  • これから(実行するエージェント): DBを削除する、外部に送信する、決済する——実行してしまった瞬間に実害が出る。しかも不可逆なものがある。

つまり「AIが動いた後にレビューする」だけでは間に合わない場面が出てきます。だから今、未経験のうちから鍛える価値があるのが、「AIエージェントの実行を、どこで止めて人が承認するか」=承認ゲートの設計です。これはコードがバリバリ書けなくても、今日から設計できます。

※ この記事は「AIが書いたコードをレビューする観点」そのものではありません(それは別記事動いたからOKで本番に出してませんかに書きました)。今日は一歩手前の「そもそも実行させる前に、どこで止めるか」の話です。


承認ゲートの考え方:可逆性で「止める線」を引く

止める線をどこに引くか。判断軸はシンプルに「その操作、失敗しても元に戻せるか(可逆か)」で十分です。

操作 可逆性 エージェントに
コンポーネントの雛形生成・命名リファクタ 可逆(git で戻せる) そのまま実行させてOK
ローカルのファイル編集 可逆 実行させてOK(差分は見る)
DBの本番データ削除・マイグレーション 不可逆 ⛔ 実行前に人の承認
決済・課金の実行 不可逆(お金) ⛔ 実行前に人の承認
外部へのメール送信・API POST 不可逆(相手に届く) ⛔ 実行前に人の承認
本番環境へのデプロイ 実質不可逆 ⛔ 実行前に人の承認

(作業を「丸投げしていいもの / 人が握るもの」に仕分ける詳しい基準は以前の記事に書いたので、そちらも。今日は"実行して大丈夫か"の1軸に絞ります。)

コツは、この線引きを頭の中に置かず、AIに渡すルールとして明文化することです。


仕組み1:CLAUDE.md に「実行せず、まず提案」を書く

Claude Code などを使うなら、プロジェクト直下の CLAUDE.md(AIが毎回読む指示書)に、承認ゲートを1ブロック書いておきます。これだけで、エージェントの暴走はかなり防げます。

## エージェント実行ルール(承認ゲート)

以下の操作は「実行せず、まず計画と差分を提案」して、私の承認を待つこと。
- DBの削除・更新(本番)/マイグレーション
- 課金・決済に関わる処理
- 外部へのメール送信・HTTP POST / Webhook 発火
- 本番環境へのデプロイ
- .env / 秘密情報・鍵ファイルの読み書き

上記以外(ローカルのコード生成・編集)は実行してよい。
ただし、触ってよいのは私が指定したファイルのみ。範囲外を変える必要が出たら、理由を添えて先に確認すること。

ポイントは「危険な操作=実行前に一時停止」を明示することです。人間の新人に「本番DBは触る前に一声かけてね」と言うのと同じで、それをAIにも文字で渡すだけです。


仕組み2:実行の前に「計画」を出させる(dry-run)

承認ゲートを効かせるいちばん実用的なやり方が、「実行の前に、何をやるつもりか計画だけ先に出して」と頼むことです。いきなり手を動かさせない。

やりたいこと: 古いテスト用ユーザーを整理したい。

まだ何も実行しないでください。まず、
1. どのテーブルの、どの条件の行を、何件消す予定か
2. その操作は元に戻せるか(戻せないなら、その旨)
3. 実行するコマンド or コード(案)
だけを出してください。私がOKと言ったら実行してください。

こう頼むと、エージェントは「users テーブルの created_at < '2026-01-01'1,200件 削除します。これは不可逆です」といった計画を先に返します。ここで初めて人が「1,200件は多すぎる、条件が広すぎた」と気づける。実行してから気づくのと、計画で気づくのとでは、被害が天と地です。

Computer Use のようにブラウザやフォームを自分で操作させるときも同じで、「送信ボタンを押す前に、入力内容のスクショか要約を出して」の一言が効きます。自律実行の時代は、--dry-run を自分の指示で作る感覚が大事になります。


仕組み3:不可逆な操作には「一段の物理ゲート」も併用する

指示(CLAUDE.md)は万能ではありません。AIが忘れることも、こちらが書き漏らすこともあります。だから、本当に危ない操作には仕組み側のゲートも1枚重ねます。未経験でもできる範囲でいうと、

  • 本番のキーを、AIが触れる場所に置かないservice_role などの強い鍵はローカルの .env に置かず、手元では読み取り専用キーだけを使う。
  • 決済・外部送信はテスト環境(sandbox)で回す:Stripe ならテストキー、メールなら自分宛の検証用アドレス。エージェントが暴走しても、本物のカードや他人には届かない。
  • git を安全網にする:ファイル操作は必ず作業ブランチで。git status / git diff を実行後の口ぐせにすれば、範囲外の変更にすぐ気づけます。

「AIに実行を任せる」と「危ない権限を渡す」は別物です。任せる範囲は広げつつ、権限は絞る。この設計ができる人が、これからのエージェント時代に重宝されます。


まとめ:未経験こそ「止め方」から入ると強い

AIが自分でPCを操作し、決済までこなす時代に価値が下がるのは「言われた手順どおりに手を動かすだけ」の作業です。逆に価値が上がるのは、どこまで任せ、どこで止めて、人が承認するかを設計する仕事です。

  • 可逆な操作は任せ、不可逆な操作(削除・決済・外部送信・デプロイ)は実行前に承認
  • その線引きを CLAUDE.md明文化する
  • 実行の前に計画(dry-run)を出させてから承認する
  • 本当に危ない操作は、テスト環境・弱い鍵・git で物理的にもゲートする

これらは、完璧にコードが書けるようになる前から鍛えられます。しかも鍛える過程で、自然と実装の知識も一緒に身につきます。「AIが全部やる時代だから学ばない」ではなく、「AIを安全に動かす側に回るために学ぶ」。ここに未経験の勝ち筋があると思っています。


※ Qiita読者の多くには当たり前の内容だと思います。プログラミング未経験の知り合いへの紹介や、社内研修・新人育成の参考としてどうぞ。「プログラミング」と「AIを安全に動かすスキル」が同時に身につくよう設計しています。

未経験者向けの講座を運営しています

未経験から Next.js + Supabase + Claude Code で Webアプリを公開するまで を、全20セッションで体系化した教材です。AIに"どこまで任せ、どこで止めるか"を設計する CLAUDE.md / Skills 運用までセットで含みます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?