{ "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 } } ] }