ワークフロー編成:複雑なワークフローの調整
オーケストレーションモードを使うと、複雑なプロジェクトをより小さく管理しやすい部分に分割できます。これは、作業の一部を専門的なアシスタントに委任するようなものです。各サブタスクは独自のコンテキストで実行され、通常はその特定の作業に最適化された異なるモード(例:code、architect、debug)を使用します。
なぜオーケストレーションモードを使うのか?
複雑さの管理:大規模で多段階のプロジェクト(例:機能全体の構築)を、焦点が絞られたサブタスク(例:設計、実装、ドキュメント作成)に分割できます。
専門モードの活用:サブタスクを自動的に最も適したモードに委譲し、その専門性を最大限に活かして最適な結果を得られます。
集中力と効率の維持:各サブタスクは独立したコンテキストと個別の会話履歴の中で実行されます。これにより、親タスク(オーケストレーター)がコード差分やファイル分析結果などの詳細な実行アーティファクトで混雑することなく、高レベルのワークフロー管理に集中でき、完了したサブタスクの簡潔な要約に基づいて全体プロセスを効率的に進行できます。
ワークフローの合理化:あるサブタスクの出力を次のサブタスクに自動的に引き渡すことで、スムーズなワークフローを構築できます(例:アーキテクチャ上の意思決定をそのままコーディングタスクに引き渡す)。
動作の仕組み
オーケストレーションモードを使用して、VJSP は複雑なタスクを分析し、サブタスクに分割することを提案します(このコンテキストは
new_taskツールのmessageパラメータ経由で渡されます)。親タスクは一時停止し、新しいサブタスクが別のモードで開始されます(サブタスクのモードは起動時に
new_taskツールのmodeパラメータで指定されます)。サブタスクの目的が達成されると、VJSP は完了を通知します。
親タスクが再開され、サブタスクの要約のみを受け取ります(この要約は、サブタスク完了時に
attempt_completionツールのresultパラメータ経由で渡されます)。親タスクはこの要約を使ってメインワークフローを継続します。
主な考慮事項
承認が必要:デフォルトでは、各サブタスクの作成および完了にはユーザーの承認が必要です。必要に応じて、自動承認アクション を使ってこれを自動化できます。
コンテキストの分離と受け渡し:各サブタスクは完全に分離されたコンテキスト(独自の会話履歴付き)で実行されます。親タスクのコンテキストを自動的に継承しません。情報は明示的に渡す必要があります:
下流へ(親 → 子):サブタスク作成時の初期指示を通じて。
上流へ(子 → 親):サブタスク完了時の最終要約を通じて。
※ 親タスクに戻されるのはこの要約のみです。
タスク切り替え:VJSP のインターフェースはタスク階層(どのタスクが親で、どのタスクが子か)を可視化するための支援を提供します。通常、アクティブまたは一時停止中のタスク間を切り替えることができます。
オーケストレーションモードは、複雑な開発ワークフローを効果的に管理する強力な方法であり、VJSP 内の専門モードを直接活用することで最大限の効率を実現します。
💡タスクは焦点を絞って
サブタスクを使って明確さを維持しましょう。リクエストの焦点が大きく変わったり、異なる専門性(モード)が必要になったりする場合は、現在のタスクに過剰な負荷をかけるのではなく、サブタスクを作成することを検討してください。
