ci / check (push) Waiting to run
- "Subagent" in every text a person or a model reads; "helper" retired
(the team area's step helper_done is now task_done).
- A subagent runs on the session's model unless the person named another
in this session's own messages; task's and team_add's `model` is refused
otherwise. No setting chooses a subagent's model.
- Capacity: another model on the session's model's one-model server is
refused; the session's model as its own subagent needs parallel >= 2 or
no limit; no fallback.
- The agents {min, max} setting is shown as Subagents, offered when a model
could serve; context.note.team_own when the session's model cannot.
- subagents.md, loop.json subagents, conformance/subagents.json (26 cases).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1254 lines
31 KiB
JSON
1254 lines
31 KiB
JSON
{
|
|
"about": "Subagents (subagents.md, spec 3.3.0): which model a subagent runs on, and when subagents are offered. `models`: the models the person may use, by served id — `id` at its connection, display `name`, `capacity` (models/schema.json; {} — no limit); `session`: the session's model, one of them. `op` `model` — a task or team_add call with `model` (absent: none given) after the person typed `said` in this session (oldest first; `other`: texts that are not the person's — the model's, a tool's) — answers `{model}`: the served id the subagent runs on, or `{refused}`: the text, word for word (loop.json subagents.texts). `op` `offer` (`subagents`: enabled, default true) — `{offered, own, note}`: whether the Subagents setting and the team tools are offered, whether the session's model can serve its own subagents, and the note line that says it cannot (context.note.team_own) where subagents are offered, else null. LLeMbas: services/subagents.py; CLI: team/subagents.ts.",
|
|
"cases": [
|
|
{
|
|
"about": "No model given: the session's own, on a model with no limit.",
|
|
"op": "model",
|
|
"session": "api/atlas-1",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b-instruct": {
|
|
"id": "coder-30b-instruct",
|
|
"name": "Coder 30B Instruct",
|
|
"capacity": {
|
|
"parallel": 2
|
|
}
|
|
},
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
},
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
}
|
|
},
|
|
"said": [
|
|
"Look into the parser."
|
|
],
|
|
"expect": {
|
|
"model": "api/atlas-1"
|
|
}
|
|
},
|
|
{
|
|
"about": "No model given: the session's own, on a model that serves several at once.",
|
|
"op": "model",
|
|
"session": "lab2/fast-8b",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b-instruct": {
|
|
"id": "coder-30b-instruct",
|
|
"name": "Coder 30B Instruct",
|
|
"capacity": {
|
|
"parallel": 2
|
|
}
|
|
},
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
},
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
}
|
|
},
|
|
"expect": {
|
|
"model": "lab2/fast-8b"
|
|
}
|
|
},
|
|
{
|
|
"about": "No model given and the session's model serves one request at a time: refused, and nothing else is picked.",
|
|
"op": "model",
|
|
"session": "lab/qwen-27b",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b-instruct": {
|
|
"id": "coder-30b-instruct",
|
|
"name": "Coder 30B Instruct",
|
|
"capacity": {
|
|
"parallel": 2
|
|
}
|
|
},
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
},
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
}
|
|
},
|
|
"said": [
|
|
"Split this up between subagents."
|
|
],
|
|
"expect": {
|
|
"refused": "This model serves one request at a time: name another model, on another server, for subagents."
|
|
}
|
|
},
|
|
{
|
|
"about": "Another model the person never named: refused.",
|
|
"op": "model",
|
|
"session": "lab/qwen-27b",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b-instruct": {
|
|
"id": "coder-30b-instruct",
|
|
"name": "Coder 30B Instruct",
|
|
"capacity": {
|
|
"parallel": 2
|
|
}
|
|
},
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
},
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
}
|
|
},
|
|
"said": [
|
|
"Hello."
|
|
],
|
|
"model": "box/coder-30b",
|
|
"expect": {
|
|
"refused": "Use another model for subagents only when the person names it."
|
|
}
|
|
},
|
|
{
|
|
"about": "Named by its served id: allowed, though it serves one request at a time — it is on another server.",
|
|
"op": "model",
|
|
"session": "lab/qwen-27b",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b-instruct": {
|
|
"id": "coder-30b-instruct",
|
|
"name": "Coder 30B Instruct",
|
|
"capacity": {
|
|
"parallel": 2
|
|
}
|
|
},
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
},
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
}
|
|
},
|
|
"said": [
|
|
"Use box/coder-30b for the subagents."
|
|
],
|
|
"model": "box/coder-30b",
|
|
"expect": {
|
|
"model": "box/coder-30b"
|
|
}
|
|
},
|
|
{
|
|
"about": "Named by its id at its connection, in other letter case.",
|
|
"op": "model",
|
|
"session": "lab/qwen-27b",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b-instruct": {
|
|
"id": "coder-30b-instruct",
|
|
"name": "Coder 30B Instruct",
|
|
"capacity": {
|
|
"parallel": 2
|
|
}
|
|
},
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
},
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
}
|
|
},
|
|
"said": [
|
|
"try CODER-30B"
|
|
],
|
|
"model": "box/coder-30b",
|
|
"expect": {
|
|
"model": "box/coder-30b"
|
|
}
|
|
},
|
|
{
|
|
"about": "Named by its display name, without case.",
|
|
"op": "model",
|
|
"session": "lab/qwen-27b",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b-instruct": {
|
|
"id": "coder-30b-instruct",
|
|
"name": "Coder 30B Instruct",
|
|
"capacity": {
|
|
"parallel": 2
|
|
}
|
|
},
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
},
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
}
|
|
},
|
|
"said": [
|
|
"The subagents can use coder 30b"
|
|
],
|
|
"model": "box/coder-30b",
|
|
"expect": {
|
|
"model": "box/coder-30b"
|
|
}
|
|
},
|
|
{
|
|
"about": "White space in a display name matches any run of white space.",
|
|
"op": "model",
|
|
"session": "api/atlas-1",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b-instruct": {
|
|
"id": "coder-30b-instruct",
|
|
"name": "Coder 30B Instruct",
|
|
"capacity": {
|
|
"parallel": 2
|
|
}
|
|
},
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
},
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
}
|
|
},
|
|
"said": [
|
|
"Give that to Gemma\n 12B, please."
|
|
],
|
|
"model": "lab/gemma-12b",
|
|
"expect": {
|
|
"model": "lab/gemma-12b"
|
|
}
|
|
},
|
|
{
|
|
"about": "A whole word only: a longer id that begins with the name does not name it.",
|
|
"op": "model",
|
|
"session": "lab/qwen-27b",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b-instruct": {
|
|
"id": "coder-30b-instruct",
|
|
"name": "Coder 30B Instruct",
|
|
"capacity": {
|
|
"parallel": 2
|
|
}
|
|
},
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
},
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
}
|
|
},
|
|
"said": [
|
|
"coder-30b-instruct is good at this."
|
|
],
|
|
"model": "box/coder-30b",
|
|
"expect": {
|
|
"refused": "Use another model for subagents only when the person names it."
|
|
}
|
|
},
|
|
{
|
|
"about": "The longer id names its own model.",
|
|
"op": "model",
|
|
"session": "lab/qwen-27b",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b-instruct": {
|
|
"id": "coder-30b-instruct",
|
|
"name": "Coder 30B Instruct",
|
|
"capacity": {
|
|
"parallel": 2
|
|
}
|
|
},
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
},
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
}
|
|
},
|
|
"said": [
|
|
"coder-30b-instruct is good at this."
|
|
],
|
|
"model": "box/coder-30b-instruct",
|
|
"expect": {
|
|
"model": "box/coder-30b-instruct"
|
|
}
|
|
},
|
|
{
|
|
"about": "A full stop or a colon that ends the sentence ends the word.",
|
|
"op": "model",
|
|
"session": "lab/qwen-27b",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b-instruct": {
|
|
"id": "coder-30b-instruct",
|
|
"name": "Coder 30B Instruct",
|
|
"capacity": {
|
|
"parallel": 2
|
|
}
|
|
},
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
},
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
}
|
|
},
|
|
"said": [
|
|
"Run the subagents on coder-30b."
|
|
],
|
|
"model": "box/coder-30b",
|
|
"expect": {
|
|
"model": "box/coder-30b"
|
|
}
|
|
},
|
|
{
|
|
"about": "A colon followed by a letter continues the word: a tag is another name.",
|
|
"op": "model",
|
|
"session": "lab/qwen-27b",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b-instruct": {
|
|
"id": "coder-30b-instruct",
|
|
"name": "Coder 30B Instruct",
|
|
"capacity": {
|
|
"parallel": 2
|
|
}
|
|
},
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
},
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
}
|
|
},
|
|
"said": [
|
|
"coder-30b:q4 would do."
|
|
],
|
|
"model": "box/coder-30b",
|
|
"expect": {
|
|
"refused": "Use another model for subagents only when the person names it."
|
|
}
|
|
},
|
|
{
|
|
"about": "Named in an earlier message of the session: still named.",
|
|
"op": "model",
|
|
"session": "lab/qwen-27b",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b-instruct": {
|
|
"id": "coder-30b-instruct",
|
|
"name": "Coder 30B Instruct",
|
|
"capacity": {
|
|
"parallel": 2
|
|
}
|
|
},
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
},
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
}
|
|
},
|
|
"said": [
|
|
"Use coder-30b for subagents today.",
|
|
"Now the tests."
|
|
],
|
|
"model": "box/coder-30b",
|
|
"expect": {
|
|
"model": "box/coder-30b"
|
|
}
|
|
},
|
|
{
|
|
"about": "Only the person's words count: a model named in the model's text or a tool's output is not named.",
|
|
"op": "model",
|
|
"session": "lab/qwen-27b",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b-instruct": {
|
|
"id": "coder-30b-instruct",
|
|
"name": "Coder 30B Instruct",
|
|
"capacity": {
|
|
"parallel": 2
|
|
}
|
|
},
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
},
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
}
|
|
},
|
|
"said": [
|
|
"Go on."
|
|
],
|
|
"other": [
|
|
"Maybe box/coder-30b would help.",
|
|
"models: box/coder-30b, lab/gemma-12b"
|
|
],
|
|
"model": "box/coder-30b",
|
|
"expect": {
|
|
"refused": "Use another model for subagents only when the person names it."
|
|
}
|
|
},
|
|
{
|
|
"about": "Named, but on the session's model's one-model server: refused — it would unload the lead's model.",
|
|
"op": "model",
|
|
"session": "lab/qwen-27b",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b-instruct": {
|
|
"id": "coder-30b-instruct",
|
|
"name": "Coder 30B Instruct",
|
|
"capacity": {
|
|
"parallel": 2
|
|
}
|
|
},
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
},
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
}
|
|
},
|
|
"said": [
|
|
"use gemma-12b"
|
|
],
|
|
"model": "lab/gemma-12b",
|
|
"expect": {
|
|
"refused": "That model is on the same one-model server as this chat's model; name a model on another server."
|
|
}
|
|
},
|
|
{
|
|
"about": "Not named and on the same server: not_named is said first.",
|
|
"op": "model",
|
|
"session": "lab/qwen-27b",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b-instruct": {
|
|
"id": "coder-30b-instruct",
|
|
"name": "Coder 30B Instruct",
|
|
"capacity": {
|
|
"parallel": 2
|
|
}
|
|
},
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
},
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
}
|
|
},
|
|
"model": "lab/gemma-12b",
|
|
"expect": {
|
|
"refused": "Use another model for subagents only when the person names it."
|
|
}
|
|
},
|
|
{
|
|
"about": "A one-model server's model is fine when the session's model is not on it.",
|
|
"op": "model",
|
|
"session": "api/atlas-1",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b-instruct": {
|
|
"id": "coder-30b-instruct",
|
|
"name": "Coder 30B Instruct",
|
|
"capacity": {
|
|
"parallel": 2
|
|
}
|
|
},
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
},
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
}
|
|
},
|
|
"said": [
|
|
"Use Gemma 12B for that."
|
|
],
|
|
"model": "lab/gemma-12b",
|
|
"expect": {
|
|
"model": "lab/gemma-12b"
|
|
}
|
|
},
|
|
{
|
|
"about": "The session's own model given as `model` needs no naming.",
|
|
"op": "model",
|
|
"session": "lab2/fast-8b",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b-instruct": {
|
|
"id": "coder-30b-instruct",
|
|
"name": "Coder 30B Instruct",
|
|
"capacity": {
|
|
"parallel": 2
|
|
}
|
|
},
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
},
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
}
|
|
},
|
|
"model": "lab2/fast-8b",
|
|
"expect": {
|
|
"model": "lab2/fast-8b"
|
|
}
|
|
},
|
|
{
|
|
"about": "The session's own model, named, still serves one request at a time: refused.",
|
|
"op": "model",
|
|
"session": "lab/qwen-27b",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b-instruct": {
|
|
"id": "coder-30b-instruct",
|
|
"name": "Coder 30B Instruct",
|
|
"capacity": {
|
|
"parallel": 2
|
|
}
|
|
},
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
},
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
}
|
|
},
|
|
"said": [
|
|
"use qwen-27b for them"
|
|
],
|
|
"model": "lab/qwen-27b",
|
|
"expect": {
|
|
"refused": "This model serves one request at a time: name another model, on another server, for subagents."
|
|
}
|
|
},
|
|
{
|
|
"about": "A model with no limit serves its own subagents.",
|
|
"op": "offer",
|
|
"session": "api/atlas-1",
|
|
"models": {
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
}
|
|
},
|
|
"expect": {
|
|
"offered": true,
|
|
"own": true,
|
|
"note": null
|
|
}
|
|
},
|
|
{
|
|
"about": "A model that serves several at once, alone: offered.",
|
|
"op": "offer",
|
|
"session": "lab2/fast-8b",
|
|
"models": {
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
}
|
|
},
|
|
"expect": {
|
|
"offered": true,
|
|
"own": true,
|
|
"note": null
|
|
}
|
|
},
|
|
{
|
|
"about": "A one-request model whose only other models are on its own one-model server: nothing is offered.",
|
|
"op": "offer",
|
|
"session": "lab/qwen-27b",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
}
|
|
},
|
|
"expect": {
|
|
"offered": false,
|
|
"own": false,
|
|
"note": null
|
|
}
|
|
},
|
|
{
|
|
"about": "A one-request model with a model on another server: offered, and the note says the session's model cannot serve subagents itself.",
|
|
"op": "offer",
|
|
"session": "lab/qwen-27b",
|
|
"models": {
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/gemma-12b": {
|
|
"id": "gemma-12b",
|
|
"name": "Gemma 12B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
}
|
|
},
|
|
"expect": {
|
|
"offered": true,
|
|
"own": false,
|
|
"note": "This model serves one request at a time, so subagents cannot run on it: they need another model, on another server, that the person names in this chat."
|
|
}
|
|
},
|
|
{
|
|
"about": "Another server's model counts whatever its own capacity: one request at a time is enough.",
|
|
"op": "offer",
|
|
"session": "box/coder-30b",
|
|
"models": {
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
},
|
|
"lab/qwen-27b": {
|
|
"id": "qwen-27b",
|
|
"name": "Qwen 27B",
|
|
"capacity": {
|
|
"group": "lab",
|
|
"parallel": 1
|
|
}
|
|
}
|
|
},
|
|
"expect": {
|
|
"offered": true,
|
|
"own": false,
|
|
"note": "This model serves one request at a time, so subagents cannot run on it: they need another model, on another server, that the person names in this chat."
|
|
}
|
|
},
|
|
{
|
|
"about": "Subagents switched off: nothing is offered, whatever the models.",
|
|
"op": "offer",
|
|
"session": "api/atlas-1",
|
|
"models": {
|
|
"api/atlas-1": {
|
|
"id": "atlas-1",
|
|
"name": "Atlas 1",
|
|
"capacity": {}
|
|
},
|
|
"lab2/fast-8b": {
|
|
"id": "fast-8b",
|
|
"name": "Fast 8B",
|
|
"capacity": {
|
|
"group": "lab2",
|
|
"parallel": 4
|
|
}
|
|
}
|
|
},
|
|
"subagents": false,
|
|
"expect": {
|
|
"offered": false,
|
|
"own": true,
|
|
"note": null
|
|
}
|
|
},
|
|
{
|
|
"about": "A one-request model alone: nothing is offered.",
|
|
"op": "offer",
|
|
"session": "box/coder-30b",
|
|
"models": {
|
|
"box/coder-30b": {
|
|
"id": "coder-30b",
|
|
"name": "Coder 30B",
|
|
"capacity": {
|
|
"parallel": 1
|
|
}
|
|
}
|
|
},
|
|
"expect": {
|
|
"offered": false,
|
|
"own": false,
|
|
"note": null
|
|
}
|
|
}
|
|
]
|
|
}
|