お仕事で長時間AI Agentを動かしたいことがほぼなかったから今まではyoloモードにあたるものは使ってなかった(プライベートでは少しつかっている)
最近ではClaude CodeにはAuto modeもあるのでallow permissionとhooksでの制限を整備すればそれほど困ることはなかった。
しかし、最近taktを使ってワークフローを組んで長時間タスクを実行するというのをやっていて、その中で裏でコマンドの承認を求められてて止まっててタイムアウトすることがまあまあ発生する。
寝てる間やっておいてもらいたいのに朝起きたら失敗していると残念な気持ちになる。
claudeの設定setting.jsonのallowリストに色々コマンドを追加していったが中々改善せず(変数とパイプでのコマンド連結駆使とかfor文使われるとかなると承認が発生する確率が上がる)
ということで、しびれを切らしてサンドボックス環境の整備に着手した。
サンドボックスといえばDockerかなと思ってちょっと最近の動向を調べていたら下記の記事辺りを見つけてなんとなくのトレンドみたいなのが分かった。
Claude自体でもサンドボックスが提供されているのはうっすら知っていたがそれがmicroVMというのにあたるのとか諸々勉強になった。
Claudeのサンドボックスは馴染みがないのでそれのセットアップを今試行錯誤するのはつらいので、一旦は慣れたDocker(Devcontainer)でサンドボックスを用意してみた。
この辺りも公式ドキュメントにあるので、それを参考にちょっとカスタマイズ(これももちろんClaude Codeにやってもらう)してすぐ使えるようになったので便利である。
devcontainer cliもあるのでそれでビルドや立ち上げ、execでコンテナに入れる。
まあ何かDockerfile変更したりで再ビルドすると諸々の自動化できてないセットアップを手動でやらないといけないのが面倒だけど、一旦はClaude Codeが暴れても少しは安心な環境ができたのでそちらで夜寝ている間だけ動かしつつ、昼間はallowリストの整備や他のサンドボックスの検証などをしていければなと。