Helpers on another model, chosen by logic rather than by the model
A helper still runs on the chat's own model by default. Other models are designated per main model -- offered to it, or by hand only -- by the instance or, with helpers.designate, by a person. subagent_run gains a model argument whose enum is exactly the candidates that passed two checks: capacity (a model that serves one request at a time cannot be its own helper; a connection that holds one model at a time cannot serve a helper on another of its models) and the model rules. A helper on another model takes that model's own effort and data group. The composer gains a Helpers picker; the model page, the connection form and Settings gain their switches and lists. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -16,6 +16,43 @@ for 1.0.0 have something to be assembled from.
|
||||
|
||||
## Unreleased
|
||||
|
||||
## 1.12.0
|
||||
|
||||
Helpers on another model. This is the last of the three releases.
|
||||
|
||||
- **A helper can run on a different model.** A helper is still the chat's own
|
||||
model by default. On each model's page, **Helpers** lists other models this
|
||||
one may send helpers to. Each is either *offered to the model*, so it can
|
||||
choose that model itself, or *by hand only*, so it is used once somebody adds
|
||||
it to a chat. When there is more than one choice, `subagent_run` gains a
|
||||
`model` argument limited to exactly those models, and the model is told what
|
||||
each is for. A helper on another model runs with that model's own default
|
||||
reasoning effort, never the parent's, which it might refuse. It reads its own
|
||||
data group's memories and notes.
|
||||
- **The composer's Helpers button** lists the models designated for the chat's
|
||||
model. Tick one to add it to this chat, on the new-chat screen as well.
|
||||
- **Capacity is decided by logic, not by the model.** Two new switches, both off
|
||||
by default, so nothing changes until they are set:
|
||||
- **Serves one request at a time**, on a model. It cannot be its own helper,
|
||||
because the helper would wait behind the reply that is waiting for it.
|
||||
- **Holds one model at a time**, on a connection (llama-swap in front of one
|
||||
GPU). Its models may still be their own helpers, but never send one to
|
||||
another model on the same connection, because loading it would unload the
|
||||
model whose reply is waiting.
|
||||
|
||||
A model with no helper it can use is no longer offered `subagent_run` at all,
|
||||
instead of being offered a tool that refuses every call. Asking a friend and
|
||||
the crowd are not affected: both are sequential, and the wait for a model to
|
||||
load is accepted there.
|
||||
- **The model rules apply to helpers too.** A designation the model chooses
|
||||
itself must be allowed by the rules. One added to a chat by hand needs what a
|
||||
crowd member added by hand needs. A model in another data group needs a rule
|
||||
that allows it.
|
||||
- **Your own helper models.** With the new *Choose their own helper models*
|
||||
permission (off by default), Settings → Models lets a person designate helpers
|
||||
for their models. These are added to the instance's, and a row of theirs for
|
||||
the same pair replaces the instance's.
|
||||
|
||||
## 1.11.0
|
||||
|
||||
Rules for which model may talk to which. This is the second of three releases;
|
||||
|
||||
Reference in New Issue
Block a user