Skip to content

原文(日本語に翻訳)

サブエージェントが一時的なgit worktreeで作業するための isolation: "worktree" をサポートしました。

原文(英語)

Subagents support isolation: "worktree" for working in a temporary git worktree

概要

エージェント定義ファイルに isolation: "worktree" を設定することで、サブエージェントが一時的な独立したgit worktreeで作業するようになります。これにより、メインのリポジトリに影響を与えずに、エージェントが安全に変更を加えて試行錯誤できます。複数のサブエージェントが並行して作業する場合でも、それぞれが独立した環境で動作します。

基本的な使い方

エージェント定義ファイル(.claude/agents/my-agent.md)に isolation フィールドを追加します。

yaml
---
name: isolated-worker
description: "分離されたworktreeで動作するエージェント"
model: claude-opus-4-6
isolation: "worktree"
---

あなたは安全に変更を試みることができるエージェントです。
変更はworktree内に留まり、メインリポジトリには影響しません。

実践例

ユースケース1: コードリファクタリングの安全な試行

メインコードベースを変更せずにリファクタリングを試みるエージェント。

yaml
# .claude/agents/refactor-agent.md
---
name: refactor-agent
description: "コードリファクタリングを安全に試行するエージェント"
model: claude-opus-4-6
isolation: "worktree"
---

指定されたモジュールのリファクタリングを行ってください。
変更はworktree内に保持されるため、自由に試行錯誤できます。
変更が完了したら、差分を報告してください。
bash
# エージェントを呼び出す
claude

# Claudeのプロンプトで
> @refactor-agent src/utils/parser.tsをリファクタリングして
# → エージェントは隔離されたworktreeで作業する
# → メインのworking directoryは変更されない

ユースケース2: 並行する複数の実験

複数のエージェントが独立してタスクを実行する場合。

yaml
# .claude/agents/experiment-runner.md
---
name: experiment-runner
description: "A/Bテスト用の変更を試行するエージェント"
model: claude-opus-4-6
isolation: "worktree"
---

与えられた要件に基づいて実装の候補を作成してください。
各アプローチを実装して、メリットとデメリットを比較してください。
bash
# メインセッションで複数のエージェントを呼び出す
> @experiment-runner アプローチAでログイン機能を実装して
> @experiment-runner アプローチBでログイン機能を実装して
# → それぞれが独立したworktreeで並行して作業できる

ユースケース3: 破壊的な変更のテスト

既存の機能を大幅に変更する前に、独立した環境でテストする場合。

yaml
# .claude/agents/migration-tester.md
---
name: migration-tester
description: "データベーススキーマの移行をテストするエージェント"
model: claude-opus-4-6
isolation: "worktree"
---

データベース移行スクリプトを作成し、
既存のデータとの互換性を確認してください。
問題があれば、安全なロールバック手順も用意してください。

注意点

  • isolation: "worktree" はgitリポジトリ内でのみ機能します。
  • worktreeはエージェントの実行後に自動的にクリーンアップされる場合があります。
  • 分離されたworktreeでの変更をメインリポジトリに反映するには、明示的なマージ操作が必要です。
  • background: true と組み合わせることで、バックグラウンドでの分離実行が可能です。

関連情報