Skip to content

[Refactor] Rename the --slot flag to --model - #7

Merged
Yunaik merged 1 commit into
mainfrom
refactor/model-flag
Sep 23, 2026
Merged

Yunaik merged 1 commit into
mainfrom
refactor/model-flag

Conversation

@Yunaik

@Yunaik Yunaik commented Sep 23, 2026

Copy link
Copy Markdown
Collaborator

Why

slot had two meanings: the position, the model argument of an openJiuwen agent ("the model slot"), and the occupant (--slot jev, "the llm slot", "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|rule is the flag on every agent, on decide and on probe. The help text says that llm is the chat model in MODEL_NAME. "Model slot" stays for the position, where the architecture docs define it. "Slot model" stays for the Model subclass that fills it (ToolDecisionModel, BrowserDecisionModel).

What

  • CLI: --slot becomes --model on run, decide, probe and the rails. The MCP server's list_agents flags and the skills follow.
  • Code: SLOTS and its siblings become *_MODEL_NAMES, the string parameter is model_name, Trial.slot is Trial.model, slot_label is model_label.
  • Records: the results table's column, the replay page's data and CSS, the profiler JSON and a browser run's answer.json use model. The replay reads the slot key of records written by 0.1.0, with a test. The two tracked Allrecipes records use the new key.
  • Kept: the random baseline's seed string random-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.
  • Not added: a --slot alias. argparse rejects the old flag with unrecognized arguments: --slot. A skill installed before this change needs npx skills add again.

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 is tests/test_replay.py::TestBrowserRun::test_a_run_written_by_0_1_0_names_the_model_under_slot.
  • scripts/smoke.sh: ok.
  • To try, without a key: uv run s1a run ticket_router --model random --rethink off --episodes 1 prints the summary.
  • uv run python -m evals.table evals/results shows the model column.
  • uv run python -m evals.replay docs/results/allrecipes/jev docs/results/allrecipes/llm --out /tmp/replay renders the migrated records.

🤖 Generated with Claude Code

`--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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant