メインコンテンツへスキップ
サブエージェントは、プロジェクト内のスコープを絞ったタスクを処理する専門のAIエージェントです。メインエージェントはサブエージェントに作業を委任でき、各サブエージェントは独自のツールと指示を持ちます。

組み込みサブエージェント

CTORには2つの組み込みサブエージェントが含まれています:
名前説明ツール
general調査、複数ステップの編集、コマンド実行、分析のための汎用エージェントすべての組み込みツール(spawn_agentを除く)
explore読み取り専用のコードベース検索と探索read_fileglobgrep
組み込みサブエージェントは編集や削除ができません。

サブエージェントの管理

サイドバーツールバーのサブエージェントボタンをクリックして管理パネルを開きます。

スコープ

サブエージェントは2つのスコープに整理されます:
  • グローバル — すべての開いているプロジェクトで利用可能。~/.bricks-project-desktop/agents/ に保存されます。
  • プロジェクト — 特定のプロジェクト内でのみ利用可能。プロジェクトの .bricks/agents/ ディレクトリに保存されます。
同名のプロジェクトスコープのエージェントはグローバルエージェントより優先されます。カスタムグローバルエージェントは同名の組み込みエージェントより優先されます。

サブエージェントの作成

  1. サブエージェントパネルを開きます
  2. グローバルスコープを選択します
  3. 新規エージェントをクリックします
  4. エディターでエージェントのfrontmatterと指示を編集します
  5. 保存をクリックします

エージェントファイルフォーマット

サブエージェントはYAML frontmatterを持つmarkdownファイルです:
---
name: my-agent
description: Describe when to use this agent
thinking_level: low
tools:
  - read_file
  - glob
  - grep
---

You are a specialized agent. Describe your purpose and instructions here.
Frontmatterフィールド:
フィールド必須説明
nameはいエージェントの一意の識別子
descriptionいいえこのエージェントをいつ使用するか(エージェントカードに表示)
modelいいえAIモデルの上書き(例:anthropic/claude-haiku-4-5-20251001)。モデル解決を参照
thinking_levelいいえ思考レベルの上書き(offminimallowmediumhighxhigh)。思考レベル解決を参照
toolsいいえエージェントが使用できるツールのリスト
toolsリストが未指定(またはnullに設定)の場合、エージェントはspawn_agentを除くすべての組み込みツールを使用できます。ツールを制限するには、必要なものだけをリストします: よく使われるツール: read_fileglobgrep

サブエージェントの編集

エージェントカードの編集ボタンをクリックしてエディターを開きます。frontmatterまたは指示を変更して、保存をクリックします。

サブエージェントの削除

エージェントカードの削除ボタンをクリックし、もう一度クリックして確認します。エージェントファイルは永久に削除されます。
ディスク上のエージェントファイルの変更は自動的に検出されます。外部エディターでエージェントファイルを編集した場合、パネルはリアルタイムで更新されます。

指示ファイル

スキルは、バンドルされた指示ファイルを使ってサブエージェント(通常はgeneral)を駆動できます。エージェントを生成する際、メインエージェントはオプションのinstructions_fileパスを渡せます。これはMarkdownファイルで、その本文がTask-Specific Instructionsヘッダーの下にサブエージェントのシステムプロンプトに追加されます。

仕組み

  1. スキルがSKILL.mdと共に指示ファイル(例:agents/grader.md)をバンドルします
  2. メインエージェントがinstructions_fileでそのファイルを指定してサブエージェントを生成します
  3. CTORがファイルのfrontmatterを除去し、本文をそのまま追加します — テンプレート処理や変数置換は行いません
  4. 指示が参照する入力値(ファイルパス、設定など)は、呼び出し元がタスクプロンプトで渡します

パス解決

  • 相対パスはプロジェクトルートに対して解決されます
  • 絶対パスは以下の許可されたディレクトリのいずれかに存在する必要があります:
    • プロジェクトディレクトリ
    • プロジェクトまたはグローバルのスキルディレクトリ
    • プロジェクトまたはグローバルのエージェントディレクトリ
    • バンドルされたスキルディレクトリ
これらのディレクトリ外のパスはセキュリティ上拒否されます。

agents/grader.md指示ファイルを含むスキル:
my-skill/
├── SKILL.md
├── agents/
│   └── grader.md       # generalサブエージェント用の指示
└── rules/
    └── conventions.md
grader.mdは標準のエージェントファイルフォーマットを使用します:
---
name: grader
---

Grade the outputs found in the directory specified in the task.
Compare each output against the expectations provided.
Write a summary report to the outputs directory.
メインエージェントはこのファイルを使ってgeneralサブエージェントを生成し、タスクに具体的な値を渡します。

モデル解決

サブエージェントが実行されると、モデルは次の順序で解決されます:
  1. エージェントファイルの model フィールド — エージェントファイルにモデルが指定されている場合、それが使用されます
  2. 設定のデフォルト — 設定で構成されたデフォルトのサブエージェントモデル
  3. プロバイダー固有のデフォルト — 現在のプロバイダーのコスト効率の良いモデル:Anthropicでは claude-haiku-4-5-20251001、OpenAI CodexとGitHub Copilotでは gpt-5.4-mini、Googleでは gemini-3.5-flash、OpenCode Zenでは minimax-m2.5、OpenCode Goでは minimax-m2.7
  4. セッションモデル — 現在のセッションで選択されたモデル
これにより、サブエージェントはエージェントごとの設定なしに、アクティブなプロバイダーのコスト効率の良いモデルを自動的に使用します。

思考レベル解決

サブエージェントが実行されると、思考レベルは次の順序で解決されます:
  1. エージェントファイルの thinking_level フィールド — エージェントファイルに思考レベルが指定されている場合、それが使用されます
  2. 設定のデフォルト — 設定で構成されたデフォルトのサブエージェント思考レベル
  3. モデル固有のフォールバック — OpenAI Responses API上の推論モデルの場合、デフォルトは low