🖥️

AI エージェント開発時代の開発環境構築:VM で実現する安全な YOLO モード

に公開

株式会社ジェイテックジャパン CTOの高丘 @tomohisaです。最近、Claude CodeやCursor IDEなどのAIエージェントを活用した開発が増えてきており、並列で複数のプロジェクトを動かしたいシーンが多くなってきました。

AIエージェント時代に求められているのは、VMをプロジェクト毎に立てて、YOLO(You Only Live Once)モードで確認なしに何でもやっていいよという環境を整えることです。Playwrightの動作確認などを行うために、画面付きのLinuxが便利です。

YOLOモードとは?

YOLOは"You Only Live Once"(「人生は一度きり」)の頭字語です。もともとはヒップホップ文化やSNSで広まったスラングで、「多少リスクがあっても大胆にやってみよう」というニュアンスがあります。

Cursor IDEのYOLO modeという名称も、このスラングから取ったものです。確認ダイアログなしでAIエージェントがコード修正やターミナル操作を自動実行する――つまり「ちょっと危険だけど速い」使い方を象徴するために付けられています。具体的には、コマンドやMCPを実行するときに、ユーザーへの確認ダイアログが一切出ないので、終わるまで作業を継続することが可能です。

VM環境のメリット

自分のマシン内で直接プロセスを動かすと、マシン内でPlaywrightの画面が立ち上がったりして面倒です。プロセスが上手くkillできなくてリスタートが必要になることもあります。VM内だけで完結することで、これらの問題を回避できます。

最近ではコンテナをマシン内で動かす、Container-useなどが話題になっていますが、個人的には画面付きのVMの方が動作を見ながら使えるので使いやすいと感じたので、このようにVMを構築する方法を行ってみました。

また、YOLOモードはどんなコマンドを実行しても確認されないのでスムーズに進みますが、LLMの気まぐれで変なコマンドを叩かれたら怖いという懸念があります。安全にYOLOモードを実行するには、VMでGitHubだけにログインするのがリスクを最小限に抑える方法だと考えました。

Mac(Apple Silicon)でのVM構築手順

メインマシンはMacですが、Parsecというサービスを使って、家の中で立ち上げっぱなしにしているWindowsに画面アクセスして、その中のUbuntuのVMも併用しています。

新規プロジェクトに入るときは、VMのクローンを新しく立ててから作業を開始できます。1VM = 1プロジェクトで回しています。

必要なソフトウェア

  • Parallels(有料)- 画面サイズをリサイズした時にLinux側で自動的にグラフィック出力を調整してくれるため便利
  • VirtualBox(無料)- MacでもWindowsでもコピペの同期ができるため、Parallelsの代替として十分利用可能。1920x1200などの規定サイズには対応しているが、それ以上のリサイズは手動で行う必要があり、画質はやや劣る。ただし無料で使うには十分な機能
  • Ubuntu 24.04

基本セットアップ

1. Ubuntu の初期設定

sudo apt update && sudo apt upgrade -y

2. 開発ツールのインストール

VS Code とブラウザ

  • VS Code
  • Chromium(GitHub ログイン用)
  • GitHub Copilot のログイン

Git 設定

GitHub Desktop が ARM 版 Ubuntu では利用できないため、gh コマンドをインストールします。

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

.NET開発環境

バックエンド開発のために.NET 9をインストールします。スクリプトを使った方法が簡単で確実です。

重要: この方法を使う理由は、aptでインストールされる.NET 9.0.106ではSource Generatorが正しく動作しないためです。Microsoft.CodeAnalysis.CSharp 4.13.0において生成されたコードを参照できない問題が報告されています(dotnet/roslyn#77472)。

# .NETインストールスクリプトをダウンロード
wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
chmod +x ./dotnet-install.sh

# .NET 9 SDKをインストール
./dotnet-install.sh --channel 9.0

# 環境変数を設定(~/.bashrcまたは~/.zshrcに追加)
echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools' >> ~/.bashrc
source ~/.bashrc

# インストール確認
dotnet --version

dotnetのuser-secretの設定も忘れずに行いましょう(データベースなどの接続に必要)。

Node.js環境

nvmを使用してNode.jsをセットアップします。

sudo apt install curl build-essential -y
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
# 再起動後
nvm install 22
nvm alias default 22

注意: Vue2のプロジェクトはARM Ubuntu 24.04で動作しない場合があります。

3. AIツールの設定

Claude Codeのインストールとログイン

Claude Codeをインストールして、認証を行います。

# Claude Codeのインストール
npm install -g @anthropic-ai/claude-code

# プロジェクトディレクトリに移動
cd your-project-directory

# Claude Codeを起動
claude

認証オプション:
Claude Codeでは複数の認証方法が選択できます:

  1. Anthropic Console: デフォルトオプション。console.anthropic.comでアクティブな課金が必要
  2. Claude App(ProまたはMaxプラン): Claude.aiアカウントでログイン
  3. Enterpriseプラットフォーム: Amazon BedrockやGoogle Vertex AIを使用

YOLOモード実行:
AIエージェントに確認なしでコマンドを実行させたい場合は、以下のオプションを使用します:

claude --dangerously-skip-permissions

Playwright MCPの設定

# 環境変数を保持して root に昇格
sudo -E env "PATH=$PATH" npx --yes playwright install-deps
npx playwright install

# MCP の設定
claude mcp add playwright -s user -- npx @playwright/mcp@latest --browser chromium

4. Docker Engine のインストール

# Docker グループの作成と設定
sudo groupadd docker 2>/dev/null || true
sudo usermod -aG docker $USER
newgrp docker

# Docker の起動設定
sudo systemctl start docker
sudo systemctl enable docker

5. 日本語入力の設定

Ubuntu 24.04 LTSで日本語入力をUSキーボードで快適に行うための設定手順です:

sudo apt update
sudo apt install fcitx5-mozc
sudo apt install language-selector-gnome

設定手順:

  1. 「設定」→「地域と言語」または「言語サポート」を開く
  2. 「キーボード入力方式システム」を「fcitx5」に設定
  3. ログアウト・再ログイン
  4. US配列は「設定」→「キーボード」で「英語(US)」を選択

日本語入力切替キーの設定:

  • システムトレイから「Fcitx5設定」を開く
  • 「入力メソッド」→「Mozc」を選択
  • 「キー設定」で切替キーを設定(「Ctrl+Space」など)

Parallelsの場合、ホストOS(Mac)のキー割当と重複しないよう注意してください。

6. その他の便利設定

スクリーンショット

メインマシンのスクリーンショット保存フォルダをVMにマウントする設定が可能です。ParallelsでもVirtualBoxでも対応しており、Linux側でそのファイルをコピーしてClaude Codeに貼り付けることで、スクリーンショットを使った指示ができます。これにより、メインマシンで撮影したスクリーンショットをVM内の開発に活用できます。

画面ロック無効化

開発用VMでは画面ロックは不要なので、SettingsからDisableに設定します。

コピー&ペースト

Parallelsではcopy pasteができるので便利です。

Windows環境でのVM構築

WindowsはAMD64アーキテクチャなので、標準対応しているアプリケーションが多く、Windowsの方が使いやすい場面もあります。

Windows + VirtualBox

  • Ubuntu 24.04
  • ディスクを90GBにしないと動作しませんでした

初期設定

su -
# vboxuserと同じPWを設定
sudo adduser vboxuser sudo
# リスタートが必要

キー入力の問題解決

preference keyboardから、advancedのチェックを外すと動くようになります。

VMのスペック推奨設定

VMのメモリは4GBでは厳しく、4プロセッサー・12GBで良い感じに動いています。8GBでも行けるような気がしていますが、現在のPCではこの設定で3台は動かせるので問題はなさそうです。

Dockerを動かすプロジェクト(.NET Aspireのプロジェクトなど)もこの設定で十分動作することを確認しました。コンテナベースの開発環境でも問題なく利用できます。

開発時の Tips

プロセス管理

Claude Codeでの開発ではプロセスが行方不明になることが多いため、以下のコマンドを多用します:

lsof -ti:3233 | xargs kill -9 2>/dev/null || echo "No process found on port 3233"

それでもうまくいかないことも多く、VMのリスタートが多くなりがちです。

動作確認

以下のコマンドでサービスの動作状況を確認できます:

# バックエンドの確認
curl -s http://localhost:5000/health || echo "Backend not running"

# フロントエンドの確認  
curl -s http://localhost:3233 || echo "Frontend not running"

まとめ

YOLO用のVMをParallelsで作成してみました。MacでARMアーキテクチャのため、Chromeなどが入れられず困った場面もありましたが、最終的には連続作業がしっかりと動くようになりました。

YOLO用のVM1のではMCPはPlaywright経由では完全ではありませんが、Playwrightテストを書いて実行してくれるため、良い感じで運用できるようになってきています。Mac内での実行体験と大きく変わらず、Mac側でポートなどが汚れないので非常に使いやすいです。

AI エージェント開発時代では、このような隔離された環境での開発がますます重要になってくると考えています。ぜひ皆さんも試してみてください。

ジェイテックジャパンブログ

Discussion