-
-
Notifications
You must be signed in to change notification settings - Fork 0
subagent parallel width cap
親が同時に走らせる subagent の数に上限を置くか。置くなら何本で、何を数えるのか。
上限 = 同時 in-flight 5 本。 数える対象は「spawn 済みでまだ返っていない subagent」であって、1メッセージあたりの Agent ツール呼び出し数ではない。binding condition = 前の batch が全て報告を返すまで次の batch を投げない。
適用先は skills/task-subagent-delegation/SKILL.md を通る全ての並列委譲(親 issue またぎの worktree 並列 / 同一親 sub-issue 並列 / bounded read-only 調査の fan-out)。skills/evolution-parallel-agent-eval/SKILL.md の N / M / P fan-out は Design Dimensions 側で別途 bounded なため除外。
値 5 は暫定であり、強制機構は存在しない。 どちらも仕様本文に明記してある。
-
depends on
parallel-subagent-eval-three-axis-decomposition— 値 5 の括り出しに eval の default 幅 N=3 を下端の基準として使っている。eval 側の N が動けば上限値の妥当性も再検討対象になる -
depends on
dynamic-workflows-non-adoption— 上端の基準として host 側の fan-out スケール(research preview で同時 16 / 1 run 累計 1000、#1426 / #1428 で評価のうえ非採用)を参照している - conflicts with (現時点で対立 entry なし)
実測から導いていない。 cost / latency のどちらも測っていない。下端に eval の確立済み default 幅(N=3)、上端に host スケールの fan-out(同時 16)を置き、そのあいだの安全側として 5 を選んだだけの括り出しである。
したがって「5 が最適である」という主張は本判断に含まれない。含まれるのは「上限が無い状態よりは在る状態のほうがよい」という主張だけであり、観測が出た時点で値を改訂することを前提にしている。
初版(#1532 / PR #1533)の上限は 1メッセージあたりの Agent ツール呼び出し数 として書かれていた。brake 1 の指摘で、この数え方では上限が上限として機能しないことが判明した。
5 本を投げたメッセージの直後に、1本目の wave が返る前へさらに 5 本を投げると、各メッセージは 5 以下に収まったまま実 in-flight 幅が 10 に達する。仕様の文言をすべて守った状態で上限の 2 倍が成立するため、これは運用ミスではなく仕様の穴だった。
同 PR の brake 1 ラウンド4で、上限の定義を in-flight bound へ移し、「前 wave の完了まで次 batch を投げない」を binding condition として明記する形に修正した。同じサイクルのラウンド3では、上限が並列委譲パターンの一つにしか掛からない書き方になっていた scope 不足も別途修正している。
上限を強制する hook / counter / gate は存在しない。親が spawn の瞬間に binding condition を思い出して自己適用することに全面依存している。
これは rules/model/subtractive-structural-beauty.md の spec write 条項に正面から抵触する:
Procedures whose execution by future AI is not guaranteed must be replaced by structures that are reliably executed (hook / bootstrap / rule / physical constraint).
指摘元は #1533 の brake 1 で、N=3 の 3体全員が独立に同じ条項を引いて指摘した。同型の欠陥は rules/model/trigger-check-gate.md が自己記述済みであり(「a forgettable relief path is strictly dominated by the deterministic hook」)、5軸ゲートのほうは #1493 で hook 化されて解決している。
暫定対応として、recall 依存であることを仕様本文に honesty clause として明記し、構造的強制への置き換えを #1534 で追跡する形にした。rules/operations/operations.md の Post-L1-Merge Runtime Observation が #1413 に対して取っているのと同じ扱い。
#1534 が抱えている検討軸は3つ:
- PreToolUse hook で Agent ツール呼び出しをカウントする経路が harness 上で成立するか(現行
adapter/claude/hooks/は on-session-start / on-user-prompt / post-tool-use のみ) - in-flight 数の観測が hook から可能か。困難なら per-message batch size の強制に落とし、上限の主張自体を機構の側へ合わせる
- 値 5 の妥当性そのもの
- 実 in-flight 幅の超過が観測されたとき(recall 依存の穴が実害として出た初回)
- cost / latency の実測が取れたとき。値 5 は測定に置き換えられる前提の暫定値である
- #1534 の検討軸1 / 2 が harness 上で成立すると判明したとき。その時点で honesty clause は構造へ置き換わり、本エントリの「受容した対価」節は解消される
- 「1メッセージ 5 本以内なので上限を守っている」と述べられた時 → 数える対象は in-flight であって per-message ではない。前 wave が返っているかを先に確認する
- eval の N / M / P fan-out を上限違反として止めようとした時 → 除外対象。Design Dimensions 側で別途 bounded になっている
- 上限を spawn 深度(subagent が自分の子を spawn する軸)の話と混ぜて読んだ時 → 別軸。深度は
skills/task-subagent-prompt/SKILL.mdBounded delegation - 「5 という値の根拠は何か」と問われた時 → 実測ではない。N=3 と host スケール 16 のあいだの安全側という括り出しであり、観測が出れば改訂する前提であることを先に述べる
この Wiki は、Li+ に基づく開発・運用を支えるための情報整理空間です。
数字で始まるページは、 Li+プログラムの各レイヤーの仕様を定義するページです。
- 要求(何を満たすか)と仕様(どう振る舞うか)を一体として記述する
- 実装前に作成または更新する
- issue群から採用された要件を集約する
これらのページは 安定性と一貫性を重視して管理されます。
アルファベットで始まるページは、 Li+の構想・設定・導入手順などの参照用ページです。
- 設計思想・背景
- 設定リファレンス・インストール手順
これらのページは 必要に応じて更新・拡張されます。
リポジトリ内の rules/**/*.md(L1–L4 の常時ロード分、subdir 含む)、skills/**/SKILL.md(トリガー起動分)、adapter/claude/CLAUDE.md、adapter/claude/hooks-settings.md、adapter/claude/hooks/*.sh、adapter/codex/AGENTS.md、およびルート直下の Li+config.md、Li+update.md は、
AIやランタイムが直接読む実行用プログラム / 定義ファイルです。
-
docs/は人間向けの仕様書・要求仕様・手順書 -
rules/,skills/および adapter / update は実行時に読み込まれる本体
両者は対応しているが、役割は同じではない。
Home | 1. Model | 2. Evolution | 3. Task | 4. Operations | A. Concept
要求仕様書 (1-6)
参考文書 (A-K)
- A. Concept
- B. Configuration
- C. Update
- D. Installation
- DiDD(対話駆動開発)
- E. Li+ language
- F. Behavior-First
- G. Sheepdog Engineering
- H. Roles and Evaluation
- K. Source File Format
判断構造
- Decision Structure
- layer reorg rationale
- github app user-to-server token expiration
- sheepdog engineering concept
- prerelease tag recovery procedure
- release flip drift patterns
- Li+ long-term vision (feedback only)
- Master role as client-architect
- current architecture as concession
- Li+ license Apache-2.0 rationale
- Character_Instance evolution history
- prompt as emotion vector controller
- agentic-search five-phase refactor
- Character_Instance output-styles migration
- Li+ lightening L1 gate override
- subagent state-machine label mechanism
- LSP integration out of scope
- Character_Instance opt-in and surface scope
- parallel-subagent-eval three-axis decomposition
- parallel-subagent-eval cost acceptance
- parallel-subagent-eval model floor
- release version rule always-on relocation
- bootstrap walkthrough skip and gh install relocation
- wiki sync sidebar integrity check
- decision structure rename rationale
- decision structure industry positioning
- subtractive structural beauty framing
- Li+ authorship is collaborative
- Li+ design intent vs current limit
- Li+ history is empirical
- Master verification at runtime not spec
- rules cache fetch address table
- dialogue-evaluator scoring redesign
- Li+ always-on footprint is load-bearing
- DiDD umbrella naming
- milestone subsystem removal
- L1 brake 2 root-criteria evaluator
- Hook-driven gate trigger
- dynamic-workflows non-adoption
- ACE context-engineering non-adoption
- memory GraphRAG SQLite exploration
- Li+ context-rot tension
- Li+ structure as retrieval surface
- 常時ロード分の重複を削る向き
- Li+ evaluation criterion
- Li+ self-evolution lineage
- Li+ judgment-learning telos
- Sheepdog Engineering publish intent
- Implementation always delegated
- brake evaluator baseline integrity
- brake1 single-round cap
- skill の発火条件は description 内に置く
- subagent parallel-width cap
- brake1 operational-copy target-conditional
- wiki sync code-notation strip
- wiki sync drift-targeted mirror
- decision structure writer surface activation
- decision structure state-form edge binding
- Neuron Graph RAG integrated prototype
- issue 完了条件フィールドの射程