
AIエージェントに「危険操作」をさせない仕組み
朝の出汁版(通勤2分)
- ポイント1: AIエージェントが自律的に動くとき、削除や上書きなど取り返しのつかないコマンドを自動で検知・ブロックするツール「dcg」がRustで公開された。
- ポイント2: バイブコーディングでエージェントに作業を任せる場面が増えるほど、人間がチェックしていない操作が実行されるリスクも上がるため、ガード役のツールを挟む設計が業界で注目されている。
- ポイント3: GitHubのREADMEにインストール手順が記載されているので、Cursor・Claude Codeなどエージェントを使い始めている人はローカル環境に導入するところから試してみるとよい。
出汁の素(深読みモード)
エージェントが「rm -rf」を打とうとしたら止められるか
AIエージェントに作業を任せる場面が増えるにつれて、「自分が見ていない間に何が実行されたか」が気になってくる。CursorやClaude Codeでバイブコーディングをしている人なら、エージェントがファイルを削除したり、gitで履歴を強制上書きしたりする操作を勝手に走らせるリスクに一度は思い至ったことがあるはずだ。
そこで注目されているのが、Rustで書かれたツール「Destructive Command Guard(dcg)」だ。GitHubで公開されており、すでに2,700以上のスターを集めている。仕組みはシンプルで、シェルやgitで実行されるコマンドをリアルタイムに監視し、危険と判定されたものをブロックまたは警告する。「ガード役」をエージェントとローカル環境の間に挟むイメージに近い。
対象となるのは、たとえば git push --force、rm -rf、chmod 777 のような「取り返しのつかない操作」や「環境を壊す操作」のカテゴリだ。エージェントが自律的に判断してこれらを実行しようとしたとき、人間のレビューを挟まずに通してしまうのを防ぐ設計になっている。
なぜ「エージェントを信じる」だけでは足りなくなっているのか
以前は「AIにコードを書かせる」だけだったのが、今は「AIにコードを書かせて、そのまま実行させる」フローが現実になっている。Gemini CLIやClaude Codeと連携するスキル集が公開でも紹介したように、CLIレベルでエージェントが動く環境は急速に整ってきた。
問題は、エージェントの「賢さ」が上がるほど、実行できる操作の範囲も広がることだ。コードを生成するだけなら失敗しても「やり直せる」。だがファイルを削除した、本番のgitブランチを書き換えた、という操作はそうはいかない。
業界では「ヒューマン・イン・ザ・ループ(HITL)」、つまり人間が要所で確認を挟む設計の重要性が議論されている。dcgはその考え方をローカル環境のシェルレベルで実装したものと見ることができる。エージェントを信じながらも、破壊的な操作だけは別のレイヤーで止める、という二重構造だ。
Rustで書かれているのも理由がある。パフォーマンスへの影響を最小限にしながら、シェルのコマンドラインに常駐できる軽量さが求められるからだ。監視ツールが重くては本末転倒になる。
CursorやClaude Codeを使っているなら今週中に入れたい
GitHubのREADMEにインストール手順が記載されているので、Rustの環境があれば cargo install で導入できる。Rustが未導入の場合は rustup から始めるのが最短ルートだ。
リポジトリのURL:https://github.com/Dicklesworthstone/destructive_command_guard
導入の優先度が高いのは次のような場面だ:
- Claude CodeやCursor Agentに「このディレクトリ全体を整理して」のような広めの指示を出している
- ローカルで本番に近い環境(本番DBの接続情報が入っている、gitのmainブランチ直接操作など)を使っている
- 複数のエージェントを並行して動かしている
逆に、エージェントにコード生成だけをさせて実行は自分でやっている、というスタイルの人は急がなくてもよい。まず自分の「エージェントに任せている操作の範囲」を確認するところから始めるとよいだろう。設定ファイルでブロック対象のコマンドをカスタマイズできるので、自分の環境に合わせて調整できる点も実用的だ。
ガードをかけながらフローを回す:Prefectとの組み合わせ
より複雑なエージェントのワークフローを組んでいる人向けに、一つ紹介したい視点がある。今回取り上げたdcgはシェルレベルのガードだが、ワークフロー全体の安全設計という観点では、オーケストレーションツールとの組み合わせが考え方として整理しやすい。
Prefect(GitHubで23,000スター超)はPythonで書かれたワークフローオーケストレーションフレームワークで、データパイプラインや自動化フローの「どのステップが成功・失敗したか」を可視化・管理できる。エージェントが実行する一連のタスクをPrefectのフローとして定義しておけば、「どこまで実行されたか」「どこで止まったか」が追えるようになる。
dcgでシェルの破壊的操作をブロックしつつ、Prefectでフロー全体を管理する構成は、エージェントに長時間の処理を任せるときの「壊れにくさ」を大幅に上げる。エージェントの自律性を上げるほど、安全設計の層も厚くしていく、という方向性だ。リポジトリ:https://github.com/PrefectHQ/prefect
参照ソース
- [GitHub]Dicklesworthstone/destructive_command_guard→ github.com/Dicklesworthstone/destructive_comm…
- [GitHub]Shubhamsaboo/awesome-llm-apps→ github.com/Shubhamsaboo/awesome-llm-apps
- [GitHub]PrefectHQ/prefect→ github.com/PrefectHQ/prefect
