Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,13 @@ MODEL_NAME=google/gemini-2.5-flash
# LAYA_MAX_LEN=1024
# LAYA_HEAD_MAX_LEN=512 # raise for choice questions with many options

# ---- Served Laya (behind --model laya-served; a system1-omni worker or laya-serve, no extra needed) ----
# LAYA_SERVED_URL=http://127.0.0.1:8000 # the worker; :8080 for the omni-jev frontend
# LAYA_SERVED_MODEL=english
# LAYA_SERVED_API_KEY= # the worker's LAYA_API_KEY, when it sets one
# LAYA_SERVED_TIMEOUT_S=5 # per decision, the retry and any /health refresh included
# LAYA_SERVED_MAX_LEN=512 # the worker's LAYA_MAX_LEN

# ---- Cua-S1 Nano (the in-process option scorer behind --model cua; needs `uv sync --extra cua`) ----
# CUA_S1_CHECKPOINT=cua-ai/cua-s1-nano-0.1 # a Hugging Face id, or a local directory holding <subfolder>/
# CUA_S1_SUBFOLDER=text # the text-only checkpoint; the window is 256 bytes of state
Expand Down
10 changes: 8 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,12 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); ver

### Added

- `--model laya-served`: Laya served over HTTP by system1-omni's worker (or plain laya-serve), on every front that
takes `laya`, in `decide` and in MCP `decide`. Configured by `LAYA_SERVED_URL` and optional `LAYA_SERVED_*`
variables; no cloud key. Run records name the served checkpoint, revision and device. Design, API spec and the
run steps: `docs/served-laya.md`, `docs/api/`.
- Tool-front ticks keep the answering model as `model`, and a served model's `served_by`, `url`, `request_id` and
`server_timing`.
- The MCP `decide` tool accepts `model="jev"|"laya"|"cua"`, defaulting to `jev`. Local backends use their
optional extras and need no Jev API key.
- `docs/benchmarks.md`: the Google Flights driver comparison rerun on 2026-09-23 from Poland, every arm three times on
Expand All @@ -20,8 +26,8 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); ver

### Changed

- `--model laya` loads in about 3 s instead of about 35 s: the encoder is built with transformers' weight init
off, since the checkpoint replaces every weight. Weights and answers are unchanged.
- `--model laya` loads in about 3 s instead of about 35 s: the `laya` extra now needs laya 0.3.9 or later, which
builds the encoder with transformers' weight init off, since the checkpoint replaces every weight.
- `--model` picks the model on every agent, on `decide` and on `probe`: `jev`, `laya`, `cua`, `llm`, `random` or
`rule`. The results table's column, the replay page's badge data and a browser run's `answer.json` name it
`model` as well; the replay still reads the `slot` key of records written by 0.1.0.
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ Everything outside `openjiuwen` is an extra. An agent whose extra is missing say
| `report` | pillow, playwright | `python -m evals.replay`, the showcase pages and GIFs; `--gif` also needs `uv run playwright install chromium` |
| `laya` | laya (torch, transformers) | `--model laya` on every agent and on `decide` and `probe`: Laya in process, no Jev key; the checkpoint downloads into the Hugging Face cache (`HF_HOME`) on first use |
| `cua` | cua-s1 (torch), huggingface-hub | `--model cua` on tool and browser agents and on `decide` and `probe`: Cua-S1 Nano in process; the 3 MB checkpoint downloads into the Hugging Face cache (`HF_HOME`) on first use |
| `dev` | pytest, pytest-asyncio, ruff, ty | the test suite, `scripts/smoke.sh` and the lint and type checks |
| `dev` | pytest, pytest-asyncio, ruff, ty, jsonschema, pyyaml, referencing | the test suite, `scripts/smoke.sh` and the lint and type checks; the last three check the served-Laya fixtures against `docs/api/` |

`uv sync --all-extras` installs all seven. The CLI runs from a checkout; a wheel install (`uv tool install`,
`pip install`) is unsupported, because the data folders (`evals/2048`, `evals/millionaire`, `evals/labelled`) sit
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ interface fits: [docs/architecture.md](docs/architecture.md), [docs/decision-mod
- [docs/agents.md](docs/agents.md): every agent with its flags, run command and extra.
- [docs/architecture.md](docs/architecture.md) and [docs/decision-models.md](docs/decision-models.md): the fronts, the model slot, the model interface, adding a backend.
- [docs/browser-front.md](docs/browser-front.md): the browser policy, decision by decision.
- [docs/served-laya.md](docs/served-laya.md): Laya served by system1-omni as a decision model over HTTP, with its [API spec](docs/api/laya-systemone.openapi.yaml).
- [docs/configuration.md](docs/configuration.md): environment variables, defaults and reader subsystems in one table.
- [docs/glossary.md](docs/glossary.md): terms the documentation glosses on first mention.
- [docs/why.md](docs/why.md): the problem, the philosophy, the precedents.
Expand Down
Loading
Loading