71 lines
4.1 KiB
Markdown
71 lines
4.1 KiB
Markdown
## Subagent routing (harness law, 2026-10-18)
|
|
|
|
**No subagent class may route to `frank-archon`** — the operator session lives there and
|
|
the endpoint runs 3 sequences (`--max-num-seqs 3`), so `task.maxConcurrency + 1` children
|
|
eat the parent's own KV slots. Violation cost: three doc children + parent = 4 sequences
|
|
on 3 slots, children ran 2 h 27 m / 2 h 45 m, the interactive session starved.
|
|
Routing and bounds live in `~/.omp/agent/config.yml` (`task:` block — the owner; verified
|
|
with `read cfg://task/agentModelOverrides`): heavy writers (`task`, `scout`) → frank-dragoon
|
|
(2 slots, idle, slow card ⇒ slice work smaller), bursty readers (`reviewer`, `sonic`,
|
|
`designer`, `librarian`) → frank-zealot (2 slots, also the compaction hub and every
|
|
tiny/smol/plan/commit/memory role). Caps: `maxConcurrency: 2`, `maxRuntimeMs: 1800000`,
|
|
`softRequestBudget: 120`, `maxRecursionDepth: 1` (children never spawn children).
|
|
`cfg://.../save` approvals auto-deny after a hardcoded 10 s dialog — after Frank has
|
|
approved a change, edit `config.yml` directly and validate the YAML; a running session
|
|
picks global-config edits up at once. Full procedure: managed skill
|
|
`bounding-subagent-runtime`.
|
|
|
|
## Documentation law (2026-10-18)
|
|
|
|
**One fact, one owner.** The `serverAppConfigs` repo owns every fleet fact;
|
|
`AGENTS.md` restates only what a deploy gate or the harness needs and otherwise
|
|
links. `serverAppConfigs-docs/` (Obsidian vault) carries the lore: one page per
|
|
endpoint (`[[frank-archon]]`, `[[frank-dragoon]]`, `[[frank-zealot]]`) holding
|
|
Current shape, **Eras** (one row per payload swap: dates, payload, runtime,
|
|
shape, why replaced, rollback), Laws, wire contract, files. `log.md` records
|
|
incidents and laws only — no per-swap ledgers, no bench tables. A retired
|
|
payload is an Eras row, never a page of its own. `scripts/<service>.env` beats
|
|
any page: where they disagree, the page is the bug.
|
|
|
|
## Model swaps (2026-10-18)
|
|
|
|
Swap the model, don't instrument the swap: edit the trio
|
|
(`scripts/<svc>.env` + serve script + unit) → `./tests/run.sh` → PR →
|
|
`deploy.sh <host> --service <svc>` → `/health` + one chat / tool-call / vision
|
|
probe → done. **No benchmarks, A/Bs, ladders, or acceptance tables unless
|
|
Frank explicitly asks for data.** If a payload misbehaves, revert the commit and
|
|
redeploy. When a bench IS ordered, the GPU-safety procedure (stop + mask, no
|
|
scratch ports, never `systemctl disable`) is `AGENTS.md` → *Model swaps*
|
|
and *Deployment completeness*.
|
|
|
|
## Where facts live
|
|
|
|
|Need|Owner|
|
|
|---|---|
|
|
|Topology, ports, payload, shape|repo `AGENTS.md` → Fleet topology; `scripts/<svc>.env` is the authority|
|
|
|Endpoint lore, eras, laws, rollback|vault `serverAppConfigs-docs/LLM/<endpoint>.md`|
|
|
|Harness model entries (`contextWindow`, `maxTokens`, `reasoningContentField`, `modelRoles`)|`~/.omp/agent/models.yml`|
|
|
|Incidents and operational laws|vault `serverAppConfigs-docs/log.md`|
|
|
|Service/infra pages|vault `Dankclaw/`, `Dankserver/`, `Infrastructure/`, `Architecture/`|
|
|
|
|
Models.yml resolution rules that are harness-local: a default model resolves as
|
|
a `defaultProvider` + `defaultModel` pair; a subagent override is a bare model
|
|
`id` and resolves only when unique across providers; two ports on one host need
|
|
two provider blocks — the file cannot express "same host, different port".
|
|
|
|
There is **no audio input anywhere in the fleet** (gone with the Gemma4
|
|
retirement, 2026-10-01). All three chat endpoints take text + images.
|
|
|
|
## Retired laws
|
|
|
|
- The old "Benchmarking Policy (MANDATORY)" wording demanded a bench harness per
|
|
payload; superseded 2026-10-18 by the swap law above.
|
|
- A "Subagent Lifecycle (MANDATORY)" rule (heartbeat ≤5 s, checkpoints, hard
|
|
timeout) was recorded here 2026-09 and **never implemented anywhere**; it
|
|
described nothing that exists and is deleted 2026-10-18. Do not re-add it
|
|
without a real implementation.
|
|
- The fleet model inventory that used to live in this memory file drifted out of
|
|
date within hours (it still claimed Bonsai-2-**27B** at `--ctx-size 401408`
|
|
and a dragoon 524,288-position pool). Memory files do not get deploys — the
|
|
repo does. That is why it is pointers now.
|