This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
> **デフォルト無効(opt-in)**。SpawnSubTask は Bash などと同じセンシティブ扱いのツールで、初期状態ではエージェントに提示されない。使うにはワークスペースの **設定 → ツール** タブで明示的に有効化する。有効化していない場合、SpawnSubTask は呼べず、分解は [`Delegate`](./delegate.md)(直列・インプロセス)で行う。
|
||||
>
|
||||
> タスク分解の既定手段は Delegate(直列)。research / general / brainstorming などのピースは Delegate でサブ調査を 1 件ずつこなす。SpawnSubTask は「壁時計時間の短縮のために独立テーマを本当に並列で走らせたい」ワークスペースだけが有効化する。
|
||||
> タスク分解の既定手段は Delegate(直列)。research / general などのピースは Delegate でサブ調査を 1 件ずつこなす。SpawnSubTask は「壁時計時間の短縮のために独立テーマを本当に並列で走らせたい」ワークスペースだけが有効化する。
|
||||
|
||||
## 基本
|
||||
|
||||
@@ -16,7 +16,7 @@ SpawnSubTask({
|
||||
})
|
||||
```
|
||||
|
||||
呼び出すと `subtasks/{index}/` にサブタスクのワークスペースが作られ、結果はそこに集約される。
|
||||
呼び出すと `subtasks/{連番}-{ジョブID先頭8桁}/`(例: `subtasks/1-9f0c1a2b/`)にサブタスクのワークスペースが作られ、結果はそこに集約される。ワークスペースはスペース内の全タスクで共有されるため、連番だけでは別タスクのサブタスクと同じディレクトリになってしまう。ジョブ ID を含めることで踏み合いを防いでいる。
|
||||
|
||||
## いつ使うか
|
||||
|
||||
@@ -63,18 +63,19 @@ SpawnSubTask({ title: "A の調査", instruction: "..." })
|
||||
SpawnSubTask({ title: "B の調査", instruction: "..." })
|
||||
SpawnSubTask({ title: "C の調査", instruction: "..." })
|
||||
WaitSubTask() // ここで全部の完了を待つ
|
||||
// 再開後、subtasks/*/result.md を Read して集約 → complete
|
||||
// 再開後、自分が起動したサブタスクの result.md を Read して集約 → complete
|
||||
```
|
||||
|
||||
- `WaitSubTask` は **同期的にブロックしない**。呼ぶとジョブはいったん停止(park)して worker を解放し、全サブタスクが終わると **同じ movement のまま再開** する
|
||||
- 再開時、各サブタスクの結果は `subtasks/{index}/result.md` に書き出されている。Read で読んで集約レポートを作る
|
||||
- 起動した分の成果物は `subtasks/{index}/output/` 以下にも残る
|
||||
- 再開時、各サブタスクの結果は そのサブタスクのワークスペース直下の `result.md` に書き出されている。再開時のシステム通知が自分のサブタスクのパスを列挙するので、そこに挙がったものだけを Read して集約レポートを作る
|
||||
- 起動した分の成果物は 同じワークスペースの `output/` 以下にも残る
|
||||
- `subtasks/` 直下には**別タスクのサブタスクも並ぶ**。通知に挙がっていないディレクトリは自分のものではないので読まない
|
||||
|
||||
### ワークフロー
|
||||
|
||||
1. `SpawnSubTask` を必要な数だけ呼ぶ(並列に起動される)
|
||||
2. `WaitSubTask()` を 1 回呼ぶ
|
||||
3. 再開後、`subtasks/*/result.md` を読んで集約する
|
||||
3. 再開後、通知に挙がった result.md を読んで集約する
|
||||
4. `complete` で終了する
|
||||
|
||||
### auto-park(取りこぼし防止)
|
||||
@@ -112,8 +113,9 @@ subtasks:
|
||||
## 結果の参照
|
||||
|
||||
サブタスク完了後、親タスクは:
|
||||
- `subtasks/{index}/result.md` にサブタスクの要約結果がある(Read で読む)
|
||||
- `subtasks/{index}/output/` 以下にサブタスクの成果物がある
|
||||
- 各サブタスクのワークスペース(`subtasks/{連番}-{ジョブID先頭8桁}/`)直下の `result.md` に要約結果がある(Read で読む)
|
||||
- 同じワークスペースの `output/` 以下に成果物がある
|
||||
- どのディレクトリが自分のものかは、再開時のシステム通知が列挙する
|
||||
|
||||
## 制限
|
||||
|
||||
|
||||
Reference in New Issue
Block a user