[Refactor] Rename the --slot flag to --model - #7
Merged
Merged
Conversation
`--model jev|laya|cua|llm|random|rule` picks the model on every agent, on `decide` and on `probe`. "Slot" names only the position, the `model` argument of an openJiuwen agent. "Slot model" names the `Model` subclass that fills it. The results table's column, the replay page's data, the profiler JSON and a browser run's `answer.json` name the value `model`. The replay reads the `slot` key of records written by 0.1.0. The two tracked Allrecipes records use the new key. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This was referenced Sep 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
slothad two meanings: the position, themodelargument of an openJiuwen agent ("the model slot"), and the occupant (--slot jev, "thellmslot", "both slots"). A reader meets the second reading first, in every command. In English a slot is the position. The README had both in one paragraph: "run one agent on both slots" and, seven lines later, "the chat model in the same slot".How
The occupant is called the model.
--model jev|laya|cua|llm|random|ruleis the flag on every agent, ondecideand onprobe. The help text says thatllmis the chat model inMODEL_NAME. "Model slot" stays for the position, where the architecture docs define it. "Slot model" stays for theModelsubclass that fills it (ToolDecisionModel,BrowserDecisionModel).What
--slotbecomes--modelonrun,decide,probeand the rails. The MCP server'slist_agentsflags and the skills follow.SLOTSand its siblings become*_MODEL_NAMES, the string parameter ismodel_name,Trial.slotisTrial.model,slot_labelismodel_label.answer.jsonusemodel. The replay reads theslotkey of records written by 0.1.0, with a test. The two tracked Allrecipes records use the new key.randombaseline's seed stringrandom-slot-{seed}. A new string would change every seeded run's draws. The 0.1.0 changelog text. "Decision-policy slot" as the name of the upstream seam.--slotalias. argparse rejects the old flag withunrecognized arguments: --slot. A skill installed before this change needsnpx skills addagain.Verification
uv run ruff format --check .,uv run ruff check .,uv run ty check: pass.uv run pytest -q: 487 passed, 36 skipped. The new case istests/test_replay.py::TestBrowserRun::test_a_run_written_by_0_1_0_names_the_model_under_slot.scripts/smoke.sh: ok.uv run s1a run ticket_router --model random --rethink off --episodes 1prints the summary.uv run python -m evals.table evals/resultsshows themodelcolumn.uv run python -m evals.replay docs/results/allrecipes/jev docs/results/allrecipes/llm --out /tmp/replayrenders the migrated records.🤖 Generated with Claude Code