This commit is contained in:
+11
-3
@@ -2,6 +2,8 @@
|
||||
|
||||
サブエージェントを同期的にインライン実行して、重い処理を委譲し本体のコンテキストを節約する。サブエージェントの中間ターンは親に見えないため、複雑な作業の最終結果だけを取得できる。
|
||||
|
||||
**タスク分解の既定手段**。research / general / brainstorming など調査・分析系のピースは、重いサブ調査を Delegate で **1 件ずつ直列に** こなす設計になっている。並列の別ジョブ(SpawnSubTask)はデフォルト無効で、本当に並列が必要なワークスペースだけが **設定 → ツール** タブで明示的に有効化する。ほとんどのタスクは Delegate で分解が完結するため、まず Delegate を検討する。
|
||||
|
||||
## 基本
|
||||
|
||||
```js
|
||||
@@ -27,12 +29,18 @@ Delegate({
|
||||
- 「特定キーワードで 30 件検索し, 記事要約→集約」→ 重い WebFetch も delegate 内で完結
|
||||
- 「複数 PDF を OCR → テキスト抽出 → 解析」→ 前処理を delegate, 後続は親が実行
|
||||
|
||||
### SpawnSubTask が向いているケース
|
||||
### SpawnSubTask が向いているケース(opt-in)
|
||||
|
||||
- **複数の独立したテーマ**(A, B, C に分解)→ 並列実行が必須
|
||||
> SpawnSubTask はデフォルト無効。使うにはワークスペースの **設定 → ツール** タブで有効化する(Bash などと同じセンシティブ扱いの opt-in ツール)。有効化していないワークスペースでは Delegate での直列分解だけになる。
|
||||
|
||||
並列の別ジョブが本当に効く、次のようなケースに限って有効化を検討する:
|
||||
|
||||
- **複数の独立したテーマ**(A, B, C に分解)で、壁時計時間の短縮が重要
|
||||
- **サブタスク間に依存がない**(A が完了してから B という制約がない)
|
||||
- **各サブの成果物がそれぞれ意味を持つ**(集約不要または集約が簡単)
|
||||
|
||||
GPU・実行枠を多く消費するため、逐次で足りる場合は Delegate を優先する。
|
||||
|
||||
### Delegate が向かないケース
|
||||
|
||||
- **対話が必要**(ASK ツールを呼ぶ)→ 子の ASK は親に bubbles up する
|
||||
@@ -77,7 +85,7 @@ Bash({ command: "cat logs/activity.log | tail -20" })
|
||||
|
||||
## 制限
|
||||
|
||||
- **直列実行**: Delegate × N 個を呼ぶとシリアルに実行される(並列不可)。高速化は SpawnSubTask で並列化
|
||||
- **直列実行**: Delegate × N 個を呼ぶとシリアルに実行される(並列不可)。並列が必要なら SpawnSubTask(要 opt-in 有効化)を使う。直列のぶん壁時計時間はやや長くなるが、GPU 負荷は軽く、各サブが綺麗なコンテキストで動くので品質は揃いやすい
|
||||
- **ネスト深さ**: 約 2 レベル(delegate 内からさらに delegate を呼ぶのは許可だが, 3 段階目以上は危険)
|
||||
- **完了待ちブロック**: 親は子が完了するまでブロックされるため、1 回の delegate は焦点を絞ること
|
||||
- **ASK 必須情報**: サブエージェントが ASK を呼んだら, 親に `[delegate 要追加情報] ...` と bubble up される。親が回答を `transition({lessons: "..." })` で与える
|
||||
|
||||
Reference in New Issue
Block a user