🤖HermesBlog
Hermes 公式チュートリアル · パート 158/9/2026

チュートリアル15:Gitワークツリー — 並列エージェント

チュートリアル15:Gitワークツリー — 並列エージェント — 公式ドキュメントに基づくわかりやすいガイド

これはHermes Agent公式チュートリアルシリーズの一部です。すべてのチュートリアルを見る

キッチンが一つしかないのに、シェフが二人いると想像してみてください。二人が同じ調理台で料理したら、肘がぶつかったり、小麦粉をこぼしたり、お互いの料理を台無しにしてしまいますよね。Git worktreeは、各シェフに自分専用の調理台を与えるようなものです。同じキッチンでも、作業スペースは別々。この機能が、あなたのAIエージェントにまさにそれを提供します。


Hermes tutorial

なぜ必要なのか? 単一チェックアウトの問題点

Hermes Agentは、実行しているフォルダをプロジェクトのルートとして扱います。同じフォルダで2つのエージェントを起動すると、すべてのファイルを共有することになります。つまり、次のような問題が発生します。

  • エージェントAが、エージェントBが編集中のファイルを削除してしまう可能性があります。
  • どの変更がどの実験によるものか区別できなくなります。
  • ロールバックが複雑になります。あるエージェントの「元に戻す」操作が、別のエージェントの作業を消してしまうかもしれません。

Worktreeは、各エージェントに以下を提供することで、これらの問題を解決します。

  • 専用のブランチ(変更が衝突しないように)
  • 専用の作業フォルダ(ファイルが競合しないように)
  • 専用のチェックポイント履歴/rollbackがそのエージェントにのみ影響するように)

ステップ 1: Worktreeを作成する(基本コマンド)

メインのリポジトリ(.git/があるもの)から、次のコマンドを実行します。

git worktree add ../my-agent-folder -b my-feature-branch

このコマンドを分解してみましょう。

  • ../my-agent-folder – 新しいフォルダの場所(メインリポジトリの外側)
  • -b my-feature-branch – このエージェント用の新しいブランチを作成

これで、プロジェクトの新しい分離されたコピーができました。


ステップ 2: HermesをWorktreeに向ける

Worktreeは2つの方法で使用できます。

オプションA: CLI(最も簡単)
Worktreeにcdして、そこでHermesを実行するだけです。

cd ../my-agent-folder
hermes chat

オプションB: メッセージングゲートウェイ(SlackやDiscordなど)
ゲートウェイを使用する場合は、~/.hermes/config.yamlを編集して、terminal.cwdをWorktreeのパスに設定します。

terminal:
  cwd: /path/to/my-agent-folder

これで、そのエージェントが受信するすべてのメッセージは、その分離されたフォルダ内で処理されます。


ステップ 3: 複数のエージェントを並行実行する

必要な数だけWorktreeを作成します。

git worktree add ../agent-experiment-1 -b exp-1
git worktree add ../agent-experiment-2 -b exp-2

次に、各フォルダで1つのHermesセッションを開始します。それらは互いのファイルに触れることはなく、それぞれがコミット用の独自のブランチを持ちます。


ステップ 4: 完了後のクリーンアップ

実験が終了したら、Worktreeを削除します。

git worktree remove ../agent-experiment-1
git branch -d exp-1

最初のコマンドでフォルダが削除され、2番目のコマンドでブランチが削除されます。メインのリポジトリはクリーンな状態を保てます。


覚えておくべき重要なポイント

  • Worktreeは軽量です – リポジトリ全体をコピーするのではなく、必要なファイルだけをコピーします。
  • 各エージェントは独自の/rollback履歴を持ちます – エージェント間での「元に戻す」操作による事故はもう起きません。
  • ブランチを賢く使いましょう – 各エージェントが何をしたか分かるように、ブランチ名を明確にしましょう(例:refactor-loginfix-bug-42)。

まとめ

Git worktreeを使うと、同じプロジェクト上で複数のHermesエージェントを、互いに干渉させることなく実行できます。エージェントごとにWorktreeを作成し、Hermesをそこに向けるだけです。まるで、各シェフに専用のまな板を与えるようなもの。同じキッチンでも、衝突はゼロです。

次のステップ: チュートリアル16では、HermesをDockerでデプロイします。自己修復型で常時稼働のアシスタントを構築します。

📖 公式ドキュメント

この記事は Hermes Agent の公式ドキュメントに基づいています:公式ドキュメント › user-guide/git-worktrees