2.7 KiB
2.7 KiB
name, description
| name | description |
|---|---|
| bounding-subagent-runtime | Cap and diagnose runaway or hung omp subagents: task.maxRuntimeMs, softRequestBudget, maxConcurrency, maxRecursionDepth (the 0-trap), per-provider in-flight ceilings. |
When
Subagent runs long, fan out too wide, or you must (re)declare the fleet's subagent limit policy. Also when asked "what limits can subagents have".
Read first
- Repo KB page
omp-docs/pi/subagent-limits.md— the live policy of record (values + rationale + deliberately-not-set list). Do not re-derive; read it. cfg://taskandcfg://providers/maxInFlightRequests— effective values, not the stock defaults.
The knobs (cfg:// writes; /save suffix persists)
| Knob | Effect | Gotcha |
|---|---|---|
task.maxConcurrency |
session semaphore; excess queues | stock default 32 — "2" is not a default |
task.maxRecursionDepth |
nesting cap | predicate is depth < n; 1 = children cannot spawn (correct for "no nesting"); 0 disables spawning for the MAIN session too — never reach for 0; negative = unlimited |
task.maxRuntimeMs |
hard wall clock, overrun = aborted |
default 0 = off |
task.softRequestBudget |
wrap-up notice at N, force-yield at 1.5N | scout/sonic may impose lower built-ins |
task.agentIdleTtlMs |
park idle finished agents | <= 0 disables parking |
providers.maxInFlightRequests |
concurrent LLM requests per provider id | keys are the quoted block labels from agent/models.yml (e.g. "llamacpp (dankclaw-3090)"), flat map lookup; absent/≤0 = unlimited; scope = this machine's config root only — other workstations and non-omp clients are NOT counted; excess queues |
tools.maxTimeout |
ceiling on any agent-requested tool timeout | kills timeout: 0 runaways |
task.isolation.enabled |
makes per-spawn isolated flag available |
opt-in per spawn, not a blanket sandbox; needs git repo; off in plan mode |
task.completionProbe |
periodic completeness side-requests | token sink on shared endpoints |
Verify semantics from the bundle, not the label
Setting descriptions lie by omission. ~/.bun/install/global/node_modules/@oh-my-pi/pi-coding-agent/dist/cli.js:
- depth gate:
grep -o '.\{130\}xC\b.\{130\}'findsU_(n,s);grep -o 'function U_(e,t){.\{0,60\}'→e<0||t<e(n=cap, s=taskDepth). - in-flight lookup:
grep -o '.\{150\}axInFlightRequests.\{200\}'→ flat[providerId]lookup, non-number/≤0 = unlimited, clamp ≥1.
Landing a policy change
cfg /save writes persist immediately; agent/config.yml is machine-live tier (heartbeat commits it). Human-facing policy changes land as an omp-docs page update via branch → PR (docs tier), git worktree add from origin/main if the current checkout is branch-locked by workspace policy.