Devin 子セッション vs サブエージェント
Devin の「子セッション(Child Session)」と、一般的なコーディングエージェント(Cursor、Claude Code、Codex など)の「サブエージェント」は、どちらもタスクを分割して処理する仕組みですが、アーキテクチャと特性が大きく異なります。
公式ドキュメントでは「マネージド Devin」という呼び方もされているようです。
- [Managed Devins] — (https://docs.devin.ai/ja/work-with-devin/advanced-capabilities)
Devin 子セッションとは
親セッションから API 経由で起動される独立した Devin セッションです。
- 独立した VM(仮想マシン)を持つ — 各子セッションは親セッションとは別のマシン上で動作し、ファイルシステム・環境変数・実行中のプロセスは共有されない
- 完全に独立したセッション — それぞれが独自のシェル、ブラウザ、ファイルシステムを持ち、PR の作成や外部サービスとの連携も可能
- API 経由で管理 — プロンプト、Playbook、タグ、ACU 制限などを指定して作成でき、イベントタイムラインの検査やメッセージ送信も可能
一般的なコーディングエージェントのサブエージェントとは
親エージェントが同一プロセス・同一環境内で呼び出すサブルーチン的な存在です。
- 同一プロセス / 環境内で動作 — 親エージェントと同じマシン、同じファイルシステム上で動く
- コンテキストの一部を委譲 — メインエージェントのコンテキストウィンドウを節約するため、特定のサブタスク(ファイル検索、コード分析など)を分離して実行
- 環境を共有 — 同じワークスペース、同じターミナル、同じファイルを操作するため、競合のリスクがある
- 軽量 — 新しい VM の起動コストがなく、LLM の推論コールだけで済むため高速に起動
メリット比較
Devin 子セッションのメリット
- 完全な環境分離 — 複数作業で競合やファイル破壊が起きない
- ローカルリソース競合の排除 — 各セッションが独立 VM を持つため、ファイル / ポート / プロセス / ローカル MCP(STDIO)の競合が構造的に発生しない。同一マシンを共有するサブエージェントで必要になる Git worktree・動的ポート割り当て・ファイルロック用 MCP といった回避策が不要
- 柔軟な成果物管理 — 各セッションが個別に PR を作成することも、親セッションが結果を統合して 1 つの PR にまとめることもできる。1 つが失敗しても他に影響しない
- スケーラビリティ — タスク数に応じてセッション数をスケールでき、大量の定型作業を一括処理できる
- 完全なツールアクセス — 各セッションがブラウザ、シェル、Git、外部 API 等すべてのツールを使える
一般的なサブエージェントのメリット
- 低オーバーヘッド — VM の起動が不要で、LLM コール 1 回で即座にサブタスクを開始できる
- コンテキスト共有が容易 — 同じファイルシステム上で動くため、親エージェントが読んだファイル内容をそのまま活用できる
- コスト効率 — 追加のインフラコスト(VM、ストレージ等)が不要
- 低レイテンシ — サブタスクの結果が即座に親に返るため、密結合なワークフローに向いている
- シンプルな連携 — 親エージェントとサブエージェント間のデータ受け渡しが自然(同一メモリ / コンテキスト内)
適した用途
Devin 子セッションが向いているケース
- 大規模な一括変更 — 100 個のリポジトリに同じセキュリティパッチを当てる、20 個のマイクロサービスのライブラリバージョンを上げる
- 複数タスクの分離と統合 — Issue A, B, C をそれぞれ独立した環境で作業し、別 PR にすることも、親が統合して 1 つの PR にまとめることもできる
- 大規模テスト・検証 — 複数の環境やブラウザでのテスト
- バッチ処理 — コードスキャン結果に基づく大量のファイル修正
- 複数アプローチの独立検証 — それぞれの調査を独立した環境で進め、最良の結果を採用する
一般的なサブエージェントが向いているケース
- コンテキスト分離 — メインタスクのコンテキストウィンドウを汚さずに、特定のサブタスク(ファイル検索、コード分析)を実行
- 単一ファイル / 機能の深い分析 — 1 つのファイルや関数について詳細な分析をサブエージェントに委譲
- ツール呼び出しの抽象化 — 特定のツール操作(lint、型チェック、テスト実行)をサブエージェントにカプセル化
- 小〜中規模のタスク分割 — 同一リポジトリ内で密結合な変更を進める場合
比較まとめ
| 観点 | Devin 子セッション | 一般的なサブエージェント |
|---|---|---|
| 実行環境 | 独立した VM | 同一プロセス / 環境 |
| ファイルシステム | 分離 | 共有 |
| MCP / ローカルリソース | VM ごとに独立(ポート / プロセス / STDIO も競合なし) | 同一マシンで共有(競合のリスク) |
| 起動コスト | 高い(VM 起動) | 低い(LLM コールのみ) |
| 独立性 | 完全に独立(個別 PR も統合 PR も可) | 親エージェントに依存 |
| 適したタスク | 大規模な独立タスク分割 | コンテキスト分離・サブタスク委譲 |
Devin の子セッションは「別の Devin インスタンスを立ち上げる」イメージで、一般的なサブエージェントは「同じエージェント内でサブルーチンを呼ぶ」イメージです。
