はじめに
AIエージェントの開発において、タスクが複雑化するにつれて単一のエージェントでは対応が難しくなってきます。この記事では、Roo Codeの「ブーメランタスク」機能を使って、複数のAIエージェントを協調させる効果的なアプローチを解説します。大規模なAIシステム開発を検討している方にとって、新しい設計のヒントになるはずです。

ブーメランタスクとは?
ブーメランタスク(サブタスクやタスク編成とも呼ばれる)は、Roo Codeのカスタムモードを利用したマルチエージェント機能です。その名前の由来は、オーストラリアの伝統的な狩猟具である「ブーメラン」から来ています。ブーメランが投げた場所に戻ってくるように、このシステムでは親タスクから投げ出された(委任された)サブタスクが、完了後に結果を持って親タスクに戻ってくるという動作に基づいています。

この仕組みにより、複雑なプロジェクトを小さく管理しやすい部分に分解できます。親タスクはサブタスクを「投げ」、サブタスクは完了時に結果を持って「戻ってくる」—— まさにブーメランのような動きです。
例えば、「新しいユーザー登録機能を実装する」という大きなタスクがあるとします。これを以下のような小さなサブタスクに分解できます:
UIデザインの設計(architectモード)
バックエンドAPIの実装(codeモード)
フロントエンドの実装(codeモード)
テストコードの作成(debugモード)
まるで複数の専門家チームに仕事を振り分けるような感覚で、各タスクに最適なモードを割り当てられるのです。
そもそもRoo CodeにおけるModeとは?
AIがコードを手当たり次第に書き換えてしまい、意図しない変更が発生した経験はありませんか? Roo Codeのモードを使えば、AIに明確な役割を与え、意図した通りの結果を得ることができます。
例えば以下のような標準モードが用意されています:
Codeモード:コードの実装に特化。既存のコードベースを尊重しながら、新機能を追加
Architectモード:設計に特化。実装を始める前に、システム構造や依存関係を整理
Debugモード:デバッグに特化。エラーの原因特定と修正に集中
Askモード:コードを変更せずに質問に回答。学習や調査に最適
そして、この記事で紹介している「ブーメランモード」は、これらの標準モードを状況に応じて使い分けるカスタムモードとして実装されています。各モードの得意分野を活かしながら、プロジェクト全体を効率的に進められるのです。
例えば、新機能の開発では:
設計フェーズをArchitectモードに委任し、堅牢な設計を得る
実装をCodeモードに委任し、既存コードと整合性のある実装を行う
エラーの修正をDebugモードに委任し、効率的にバグを修正
このように、フェーズごとに最適なモードを活用することで、AIの力を最大限に引き出すことができます。
Roo Codeのインストール
まずは、VS Code上でRoo Codeをインストールしましょう:
VS Codeを起動
拡張機能アイコンをクリック(Cmd+Shift+X)
検索バーで "Roo Code" を検索
"Roo Code" を選択して「インストール」をクリック
VS Codeを再起動

インストール後、アクティビティバーにRoo Codeのアイコンが表示され、Roo Codeパネルを開けるようになります。
APIプロバイダーの選択
初回起動時には、使用するAPIプロバイダーを選択する必要があります。以下の2つの選択肢があります:
ルーティングサービスを利用する(Openrouter or Requesty)
モデルプロバイダ提供のAPIを直接利用する
一長一短ありますが、今回はレートリミット制限などに引っかかりづらく、$1の無料クレジットが付与されているrequestyを利用します。
Requestyを使用する場合(今回はこちらを利用)
「Express Setup Through a Router」から「Requesty」を選択
$1の無料クレジットが付与され、すぐに利用開始可能
初期設定が簡単で、追加の設定は不要
独自のAPIキーを使用する場合
「Bring Your Own API Key」からAnthropicなどを選択
APIキーを入力して設定
より柔軟な設定が可能
この記事では、セットアップが簡単なRequesty+Sonnet3.7を使用して説明を進めていきます。

プロジェクトの準備
新しいプロジェクトを始める場合は、以下の手順で空のフォルダを開きましょう:
任意の場所に新しいフォルダを作成
VS Codeで「ファイル」→「フォルダを開く」を選択
作成したフォルダを選択
これで、Roo Codeを使用する準備が整いました。
実践!ブーメランモードの設定方法
ブーメランタスクを活用するには、まず専用の「ブーメランモード」を設定する必要があります。これは標準で用意されているものではなく、自分でカスタムモードとして作成します。方法は2通りありどちらかを選びます。
簡単セットアップ法
最も簡単な方法は、Roo Codeが提供している設定ファイルをダウンロードすることです。
ダウンロードしたファイルを.roomodesにリネームして、プロジェクトのルートディレクトリに配置するだけでOKです。
コマンドラインであれば、プロジェクトのルートディレクトリにて以下を実行します。
curl https://docs.roocode.com/assets/files/roomodes-7a34c5089bbc1579a0bf1b072428c71e.json > .roomodesダウンロードできたら以下のように設定ファイルを確認でき以上で完了です。

このJSONファイルでは、下記の基本設定が定義されています:
slug: モードの一意の識別子
name: 表示名
roleDefinition: モードの役割定義(タスクの委任と調整)
customInstructions: 具体的な動作指示
source: モードのスコープ(global = 全プロジェクトで利用可能)
細かくカスタマイズしたい場合
自分好みにカスタマイズしたい場合は、手動でモード登録することもできます。以下の手順でセットアップしましょう:
Nameに「Boomerang Mode」
Save Locationは、Globalに設定(この設定によりいつでもBoomerang Modeが呼び出せます)
Roo Codeの設定画面からカスタムモードの作成を選択
「Role Definition」に専用の役割定義をコピー
「Mode-specific Custom Instructions」に詳細な指示をコピー
重要なポイントとして、「Available Tools」セクションのすべてのチェックボックスをオフにしてください。ブーメランモードは自身で作業するのではなく、他のモードにタスクを委任する役割なので、ツール自体へのアクセスは不要です。

Role Definition
You are Roo, a strategic workflow orchestrator who coordinates complex tasks by delegating them to appropriate specialized modes. You have a comprehensive understanding of each mode's capabilities and limitations, allowing you to effectively break down complex problems into discrete tasks that can be solved by different specialists.Custom Instruction
Your role is to coordinate complex workflows by delegating tasks to specialized modes. As an orchestrator, you should:
1. When given a complex task, break it down into logical subtasks that can be delegated to appropriate specialized modes.
2. For each subtask, use the `new_task` tool to delegate. Choose the most appropriate mode for the subtask's specific goal and provide comprehensive instructions in the `message` parameter. These instructions must include:
* All necessary context from the parent task or previous subtasks required to complete the work.
* A clearly defined scope, specifying exactly what the subtask should accomplish.
* An explicit statement that the subtask should *only* perform the work outlined in these instructions and not deviate.
* An instruction for the subtask to signal completion by using the `attempt_completion` tool, providing a concise yet thorough summary of the outcome in the `result` parameter, keeping in mind that this summary will be the source of truth used to keep track of what was completed on this project.
* A statement that these specific instructions supersede any conflicting general instructions the subtask's mode might have.
3. Track and manage the progress of all subtasks. When a subtask is completed, analyze its results and determine the next steps.
4. Help the user understand how the different subtasks fit together in the overall workflow. Provide clear reasoning about why you're delegating specific tasks to specific modes.
5. When all subtasks are completed, synthesize the results and provide a comprehensive overview of what was accomplished.
6. Ask clarifying questions when necessary to better understand how to break down complex tasks effectively.
7. Suggest improvements to the workflow based on the results of completed subtasks.
Use subtasks to maintain clarity. If a request significantly shifts focus or requires a different expertise (mode), consider creating a subtask rather than overloading the current one.ブーメランタスクの動作フロー
このブーメランモードの動きは以下のようになっています。
ブーメランモードの動作フローを図で表すと以下のようになります:








