多くのAIエージェント用ハーネスには、スーパーバイザーがタスクをサブエージェントに委任する仕組みがあります。サブエージェントは独立したコンテキストで動くため、並列処理が可能になり、スーパーバイザーのコンテキストを中間的な推論で汚さずに済みます。deepagentsのチームは、サブエージェントが受け取る初期コンテキストをもっと柔軟に制御するため、context modesを導入しました。
このモードにはisolatedとforkがあります。isolatedは従来どおり、スーパーバイザーからのタスク説明だけを与えられた真っ新なコンテキストで開始します。forkはスーパーバイザーの現在の状態をそのままサブエージェントに引き渡す方式です。実際には、スーパーバイザーがサブエージェントを呼び出す際のツールコールが取り除かれ、タスク説明がユーザーメッセージとして整形されて追加されます。サブエージェントが完了すると、最終メッセージが元のツールコールへの応答としてスーパーバイザーに戻ります。
forkはisolatedより多くコンテキストを引き継ぎますが、設計上プロンプトキャッシュが尊重されているため、すでに収集済みの情報をサブエージェントが再取得しなくて済む場合は高速かつ経済的です。選択の目安として、記事ではworkerとverifierの対比が紹介されています。workerはスーパーバイザーが診断した修正方針をそのまま実装・テストする役割のため、forkで調査の続きから始めるのが効率的です。一方verifierはコードの差分を正しさや後方互換性、テスト網羅性の観点で独立に評価する必要があるため、isolatedでスーパーバイザーの先入観に影響されずレビューするのが適切です。
ほかにも、独立した質問を調査するresearcherはisolatedが向いています。複数のリサーチを並行実行する場合、それぞれにスーパーバイザーの履歴全体をforkさせるより、必要な質問だけを与えるほうが無駄がありません。逆にmemoryエージェントは会話の中で決まった判断や好み、制約を保存する役割なので、forkで全インタラクションを見られるようにするのが有効です。
context modesは、ツールやミドルウェア、権限制御などと組み合わせてサブエージェントを特化させるための手段のひとつです。たとえばresearcherには検索エンジンのツールを、memoryエージェントには編集可能なパスを制限する設定を加えることができます。deepagentsはPythonではuv add deepagents、TypeScriptではpnpm i deepagentsで試せます。詳しいドキュメントやフィードバックの方法も公式に用意されています。