13. OpenClawサブエージェントへの指示文設計と役割の明確化
単一のプロンプトに全てを詰め込むことのリスク
サブエージェントを呼び出す際、親エージェントが「このタスクをやってくれ」という単一の巨大なプロンプトを渡してしまうと、サブエージェントは「何が最優先か」「どの部分が重要か」を判断できず、情報過多による処理の迷走(Confusion)を引き起こします。
サブエージェントの役割を「専門性」で定義する
サブエージェントは、親エージェントから与えられたタスクを達成するための「専門ツール」として設計されるべきです。つまり、サブエージェントは汎用的な思考エンジンではなく、特定のドメイン知識や特定の操作に特化させることが重要です。
設計の基本は、親エージェントが「計画」を立て、サブエージェントが「実行」に特化する役割分担です。
指示文に組み込むべき必須要素
サブエージェントへの指示文(プロンプト)は、以下の要素を網羅的に含めることで、単なる指示文から「実行仕様書」へと昇華させることができます。
| 要素 | 目的 | プロンプトへの組み込み方 |
|---|---|---|
| 1. 役割定義 (Persona) | エージェントが「誰」であるかを明確に定義する | 「あなたは経験豊富な〇〇の専門家です。」といった形で、制約と視点を与える |
| 2. 制約条件 (Constraints) | 絶対にしてはいけないこと、必ず守るべきルールを明記する | 「絶対に外部APIを呼び出さないこと」「出力は必ずMarkdown形式にすること」など、ネガティブな制約を明記する |
| 3. 入力と出力のスキーマ定義 | 期待する入力データ形式と、最終的な出力形式(JSON Schemaなど)を明記する | 出力の形式を厳密に指定し、これに従わない場合はエラーとして扱うよう指示する |
コンテキストの管理と情報過多の回避
サブエージェントに渡すコンテキスト(過去の会話履歴や参照データ)は、ノイズを極力排除することが重要です。親エージェント側で、関連性の低い履歴や冗長な情報を事前にフィルタリングし、最も関連性の高い情報のみを「コンテキストウィンドウ」として渡す設計が求められます。
これは、単に履歴を渡すのではなく、「この情報(A)と、この情報(B)を照らし合わせて、この問い(Q)に答えるための根拠として使え」という形で、情報間の関連付けを明示的に行う作業です。
まとめ:専門性と境界線の明確化が鍵
サブエージェントの設計は、親エージェントが「全体設計図」を描き、各サブエージェントが「専門の部品」として機能するように役割を分けることに尽きます。指示文は、単なる質問ではなく、そのエージェントの「存在証明書」として機能させるべきです。

