> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bricks.tools/llms.txt
> Use this file to discover all available pages before exploring further.

# サブエージェント

> 特定のタスクに特化したエージェントを作成する

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

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

CTORには2つの組み込みサブエージェントが含まれています：

| 名前        | 説明                                 | ツール                           |
| --------- | ---------------------------------- | ----------------------------- |
| `general` | 調査、複数ステップの編集、コマンド実行、分析のための汎用エージェント | すべての組み込みツール（`spawn_agent`を除く） |
| `explore` | 読み取り専用のコードベース検索と探索                 | `read_file`、`glob`、`grep`     |

組み込みサブエージェントは編集や削除ができません。

## サブエージェントの管理

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

### スコープ

サブエージェントは2つのスコープに整理されます：

* **グローバル** — すべての開いているプロジェクトで利用可能。`~/.bricks-project-desktop/agents/` に保存されます。
* **プロジェクト** — 特定のプロジェクト内でのみ利用可能。プロジェクトの `.bricks/agents/` ディレクトリに保存されます。

同名のプロジェクトスコープのエージェントはグローバルエージェントより優先されます。カスタムグローバルエージェントは同名の組み込みエージェントより優先されます。

### サブエージェントの作成

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

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

サブエージェントはYAML frontmatterを持つmarkdownファイルです：

```markdown theme={null}
---
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`）。[モデル解決](#model-resolution)を参照                  |
| `thinking_level` | いいえ | 思考レベルの上書き（`off`、`minimal`、`low`、`medium`、`high`、`xhigh`）。[思考レベル解決](#thinking-level-resolution)を参照 |
| `tools`          | いいえ | エージェントが使用できるツールのリスト                                                                               |

`tools`リストが未指定（または`null`に設定）の場合、エージェントは`spawn_agent`を除くすべての組み込みツールを使用できます。ツールを制限するには、必要なものだけをリストします：

**よく使われるツール：** `read_file`、`glob`、`grep`

### サブエージェントの編集

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

### サブエージェントの削除

エージェントカードの**削除**ボタンをクリックし、もう一度クリックして確認します。エージェントファイルは永久に削除されます。

<Info>
  ディスク上のエージェントファイルの変更は自動的に検出されます。外部エディターでエージェントファイルを編集した場合、パネルはリアルタイムで更新されます。
</Info>

## 指示ファイル

スキルは、バンドルされた指示ファイルを使ってサブエージェント（通常は`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`は標準のエージェントファイルフォーマットを使用します：

```markdown theme={null}
---
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`
