13. OpenClawサブエージェントへの指示文設計と役割の明確化

単一のプロンプトに全てを詰め込むことのリスク

サブエージェントを呼び出す際、親エージェントが「このタスクをやってくれ」という単一の巨大なプロンプトを渡してしまうと、サブエージェントは「何が最優先か」「どの部分が重要か」を判断できず、情報過多による処理の迷走(Confusion)を引き起こします。

サブエージェントの役割を「専門性」で定義する

サブエージェントは、親エージェントから与えられたタスクを達成するための「専門ツール」として設計されるべきです。つまり、サブエージェントは汎用的な思考エンジンではなく、特定のドメイン知識や特定の操作に特化させることが重要です。

設計の基本は、親エージェントが「計画」を立て、サブエージェントが「実行」に特化する役割分担です。

指示文に組み込むべき必須要素

サブエージェントへの指示文(プロンプト)は、以下の要素を網羅的に含めることで、単なる指示文から「実行仕様書」へと昇華させることができます。

要素 目的 プロンプトへの組み込み方
1. 役割定義 (Persona) エージェントが「誰」であるかを明確に定義する 「あなたは経験豊富な〇〇の専門家です。」といった形で、制約と視点を与える
2. 制約条件 (Constraints) 絶対にしてはいけないこと、必ず守るべきルールを明記する 「絶対に外部APIを呼び出さないこと」「出力は必ずMarkdown形式にすること」など、ネガティブな制約を明記する
3. 入力と出力のスキーマ定義 期待する入力データ形式と、最終的な出力形式(JSON Schemaなど)を明記する 出力の形式を厳密に指定し、これに従わない場合はエラーとして扱うよう指示する

コンテキストの管理と情報過多の回避

サブエージェントに渡すコンテキスト(過去の会話履歴や参照データ)は、ノイズを極力排除することが重要です。親エージェント側で、関連性の低い履歴や冗長な情報を事前にフィルタリングし、最も関連性の高い情報のみを「コンテキストウィンドウ」として渡す設計が求められます。

これは、単に履歴を渡すのではなく、「この情報(A)と、この情報(B)を照らし合わせて、この問い(Q)に答えるための根拠として使え」という形で、情報間の関連付けを明示的に行う作業です。

まとめ:専門性と境界線の明確化が鍵

サブエージェントの設計は、親エージェントが「全体設計図」を描き、各サブエージェントが「専門の部品」として機能するように役割を分けることに尽きます。指示文は、単なる質問ではなく、そのエージェントの「存在証明書」として機能させるべきです。