私は現在、ChatGPTやClaude Sonnetを使ってプログラムを作っています。
開発の流れはシンプルです。
自分のPC上でコードを管理し、Gitでバージョン管理をして、コードファイルをチャットに添付して機能を追加してもらいます。
でも、この方法には限界があります。
まず、チャットに一度に添付できるファイル数には制限があります。
そのため、なるべくファイル数が10以内に収まるように小規模なプログラムにしています。
もう少しプログラムの規模が大きくなると、やがて破綻するんですよね。
たとえば、生成AIが既に作ってある関数を見落として、何度も似たような関数を作ってしまったり。
コードが雑多になり、管理しきれなくなりました。
とはいえ、もう少し規模の大きいプログラムを作りたいです。
そこで目をつけたのが、「AIエージェントによるコード管理」です。
1. 破壊的な操作への恐怖
AIエージェントには興味がありました。
Claude CodeやOpenAIのCodexのような機能なら、コードベース全体を理解して開発を進められると知っていました。
従来のチャットUIでは、コンテキストの制約が厳しすぎます。
ファイルを添付する方式では、プロジェクトが大きくなるたびに重要な情報が抜け落ちます。
AIエージェントは、この問題を直接解決します。
プロジェクト全体を理解し、既存の関数やモジュールを把握した上で、適切なコードを生成してくれます。
しかし、利用に踏み切れませんでした。
理由は単純です。
怖かったのです。
うっかりと危険な操作を承認してしまって、破壊的な結果になることが心配でした。
プロジェクトファイルが消えるだけならまだしも、パソコン本体の環境に影響してしまうのではないか。
ネットで調べると、AIエージェントの権限システムについての情報は出てきます。
でも、完璧に安全だと確信できませんでした。
操作しているうちに徐々に慣れてしまえば、うっかりAIに危険な操作を許可してしまいそうです。
あるいは、2025年8月には、人気のnpmパッケージが悪意のあるバージョンに置き換えられた事例がありました。
そのパッケージはインストール時にAIエージェントに対して、ファイルシステムを検索するよう指示するコードを実行したそうです。
1.1. AIエージェントの権限システムの仕組み
Claude CodeやCodexでは、デフォルトでは慎重な設定になっています。
Claude Codeは4つの権限モードを持っています。
通常の「default」モードでは、ファイルを読み取ることはできますが、書き込みやコマンド実行の前には毎回確認を求めてきます。
「plan」モードではファイルの変更すらできず、分析だけを行います。
Codexも同様です。
サンドボックスモードと承認ポリシーの二重の防御があります。
デフォルトではネットワークアクセスもオフになっていて、ワークスペース内でのみ動作します。
1.2. Gitとの組み合わせ
有効な安全策の一つは、Gitです。
AIエージェントを実行する前に必ずコミットしておけば、何か問題が起きても即座に元に戻せます。git reset --hard HEADを実行するだけです。
新しい機能を追加する際は必ずブランチを作り、そこでAIエージェントに作業させます。
問題があればブランチを削除すればいいのです。
これなら、プロジェクトファイルの破損は防げます。
2. リモートPCでの実行という選択
ただし、PC本体の環境への影響という不安は残りました。
権限設定でプロジェクトディレクトリ外へのアクセスを拒否できることはわかりました。
でも、設定ミスや見落としがあったら?
AIエージェントが予想外の方法でシステムにアクセスしたら?
生成AIという実態がわからないものを扱う以上、完全にリスクをゼロにすることはできません。
そこで考えたのが、仮想環境や別のPCを使う方法です。
よく推奨されているのは、Dockerの使用です。
Dockerを使えば、ホストシステムと完全に隔離された環境でAIエージェントを動かせます。
コンテナが壊れても、ホストPCには影響がありません。
ただ、私のメインPCは少し古く、Dockerを動かすにはマシンパワーは非力かもしれません。
2.1. 構成の全体像
そこで思いついたのが、余っているPCを活用する方法でした。
別のPCにLinuxをインストールして、そこでAIエージェントを動かします。
MacBook Airからはリモートでコマンドを実行し、結果を確認するだけです。
この構成なら、MacBook Airへの負荷はほぼゼロになります。
VS CodeのRemote-SSH機能を使えば、まるでローカルで作業しているかのように、リモートPC上のファイルを編集できます。
何より重要なのは、安全性です。
リモートPCが壊れても、MacBook Airは無傷です。
この構成では、MacBook Airの負荷は通常の作業と変わりません。
一方、リモートPCは24時間稼働できます。
長時間かかるリファクタリング作業などは、夜間に実行させて朝に結果を確認することもできます。
クラウドのVMを借りる方法もありますね。
3. セットアップの流れ
これなら、AIエージェントを安全に導入できそうです。
まず、リモートPCにUbuntu 22.04をインストールします。
SSH接続を設定し、MacBook Airからアクセスできるようにします。
次に、AIエージェント(Claude CodeまたはCodex)をインストールします。
認証を済ませ、テストプロジェクトで動作を確認します。
VS CodeのRemote-SSH拡張機能を設定すれば、MacBook AirのVS Codeで直接リモートPCのファイルを編集できます。
ファイルの同期を気にする必要もありません。
権限設定は慎重に行います。
- プロジェクトディレクトリ外へのアクセスは完全に拒否します。
親ディレクトリやホームディレクトリへの読み書きは許可しません。 - 破壊的なコマンドも永久に拒否します。
rm -rf、sudo、chmod 777などは一切使わせません。 - 毎回の実行前には必ずGitでコミットします。
エイリアスを設定して、コミットとAIエージェント起動を一つのコマンドにまとめる予定です。
3.1. 段階的な慣れ方
まずは、AIエージェントを読み取り専用モードで使って慣れます。
コードを分析させるだけで、変更は加えさせません。
動作を観察し、どんな提案をしてくるか理解します。
慣れてきたら、制限付きの書き込みモードに移行します。
小さな変更、たとえばコメントの追加やフォーマットの修正などから始めます。
毎回、git diffで変更内容を確認します。
気に入らなければ、すぐに元に戻します。
問題なく動作することを確認してから、実際のプロジェクトに適用します。
完全に安全ではありませんが、適切な対策を取れば管理可能です。
Gitという安全網があり、リモートPCという物理的な隔離があります。