Full reference

Evaluate AI behavior with comparable evidence

Compare candidates on the same cases and evaluator, inspect failures in Lab Review, and keep promotion as a separate decision supported by the run’s evidence.

Updated

Reviewed against Console v0.2.2. Available actions depend on project access and runtime configuration; check your installed CLI version for command differences.

Run a comparison in Console

  1. Open Lab → New evaluation and select Prompt or Model.
  2. In Data, select Tag and dates or Saved dataset. Inspect captured cases and the actual retained cohort.
  3. In Compare, review the current prompt/model and choose the candidate. Never use a metering placeholder as a prompt.
  4. In Run, select the evaluator and available judge configuration, review the summary, and use Start evaluation when ready for candidate/judge calls.
  5. Open the result in Lab, check completed case coverage and errors, then inspect suggestions and queued cases in Lab → Review.

Follow Evaluate and review for every step and blocker. Form setup is not a completed evaluation; starting a run can spend tokens. Promotion remains a separate action.

Start with a durable evaluation

A durable run records its data, candidate configuration, results and lineage. Choose representative cases and a frozen dataset snapshot before execution. Keep prompt version, model, evaluator and relevant sampling settings explicit.

bash
stimulir lab eval runs --json
stimulir lab eval get <run-id> --json
stimulir lab eval tree <run-id> --json

Use the Console to inspect cases and the Lab Review guide for human scoring and signoff. A run’s best candidate and the average of all candidates answer different questions.

Compare an adapter against its baseline

bash
stimulir lab eval adapter \
  --family <supported-family> \
  --adapter-dir <runtime-adapter-path> --json

This runtime-backed retrieval evaluation requires the adapter to be accessible to the execution environment. It is distinct from a durable application evaluation. Keep the same held-out cases and compare with the reported base-model result.

Evaluate an RL policy

stimulir lab eval rl evaluates a policy in a supported environment and reports reward statistics. Specify the trained checkpoint when needed. Task count, seed, generation settings and reward definition affect comparability.

Choose the correct execution path

Durable application runs use the platform’s /api/v1/lab/evals routes. Runtime adapter and RL evaluations use the configured runtime proxy, or a direct --endpoint. A direct runtime response is not automatically a durable platform run.

Inspect the result before promotion

Confirm completion, valid case coverage and the comparison contract. Review failing and representative cases. Prepare a proposal only after the evidence supports a change. stimulir lab eval promote applies a proposal and moves the production label; reading a run does not do that.

Lab → Review separates Suggestions waiting from Human review. Applying a prompt suggestion can make it live. Model suggestions require the stated model/routing change; Mark as done records that work. An empty Pending queue does not mean every trace passed: inspect filters and Settings → Project → Review rules.

Evaluate media with a matching rubric

Include media artifacts, expected behavior and a suitable evaluator in the dataset. Do not apply a text-only score to a voice workflow and call it an audio-quality result. Availability of an audio inference route does not establish a particular evaluation metric.

Inspect available evaluators

bash
stimulir lab eval evaluators --json

Choose a visible evaluator and preserve its ID and version. Reusable evaluator invariants can reject unsuitable candidates before execution. Validate the rubric on representative outputs before trusting aggregate scores.

HybrIE eval 1 is a decision reasoning judge combining Clef or Clef Flash with an independent LLM judge. Its current configuration uses equal weights and a 0.25 disagreement threshold. Inspect component scores and queued disagreements; disagreement does not establish which judge is correct. To measure evaluator accuracy, compare with independent human labels.

Clef/Flash needs compatible admitted compute; a visible evaluator is not proof its runtime can execute. See local compute requirements.

Handle missing capabilities explicitly

If the required evaluator, provider or runtime is unavailable, record the blocker and stop that comparison. These pages describe the released interfaces; they do not promise a future evaluator or a completion date. For a guided diagnostic loop, use Improve.

Command catalogue

Expand a command for its arguments. These commands follow the released CLI source; check stimulir --version and the command’s --help for your installation. Required flags are marked; some operations also validate combinations of inputs.

stimulir lab eval ack-steer

Record that a steer was consumed. Write-once and idempotent.

run_id required
Positional argument. Eval run id.
steer_id required
Positional argument. Steer id to acknowledge.
--consumed-by required
Who consumed it — an agent session id, not a user id.
--note
What was DONE, e.g. 'applied as derive on run X'.
--json
Emit raw JSON output.
stimulir lab eval adapter

Score a PEFT LoRA adapter directory on held-out retrieval (vs base model).

--family, -f required
Base model family: qwen3-4b, qwen3-0.6b, or mistral-7b.
--adapter-dir, -a required
Adapter directory with PEFT LoRA weights to score.
--examples
Held-out examples to score.
--seed
Seed for reproducible example generation.
--device
auto, metal, cuda, or cpu.
--model-dir
Optional base-model directory override.
--endpoint
HybrIE runtime URL (bypasses the console proxy).
--json
Emit raw JSON output.
stimulir lab eval agent-iteration

Emit lineage identifiers, fingerprints, counts, and outcomes only.

run_id required
Positional argument. Explicit eval run id.
stimulir lab eval agent-status

Emit bounded machine-readable status without raw eval or steer content.

run_id required
Positional argument. Explicit eval run id.
stimulir lab eval champions

List promoted champions, newest promotion first.

--comparability-key
Only the champion(s) of one comparability bucket.
--limit
See the installed command’s --help for accepted values.
--json
Emit raw JSON output.
stimulir lab eval create-run

Create a durable prompt/data/inference eval run.

--name, -n
Eval suite display name.
--data-asset-id
Staged data asset or trace snapshot id. Repeat to use one exact multi-case cohort.
--prompt
Prompt ref as KEY, KEY:VERSION, or KEY:LABEL. Can be repeated.
--provider
Baseline provider.
--model
Baseline model or endpoint model name.
--adapter-id
Optional adapter id to hot-swap as a candidate.
--adapter-version
Exact registered adapter version.
--base-model-id
Exact base model recorded by the adapter manifest.
--adapter-format
Registered adapter format, for example peft-lora.
--evaluator-id
Attach an evaluator. Its definition governs scoring, and its invariants gate every candidate BEFORE any judge spend (see evaluator-create).
--execute
Create the run and start it now.
--leave-queued
Create the run QUEUED and do NOT start it. You start it yourself with execute-run.
--json
Emit raw JSON output.
stimulir lab eval delete

Archive (default) or hard-delete eval runs.

run_ids required
Positional argument. One or more eval run ids.
--hard
Destroy the rows instead of archiving. Gated on lineage.
--include-descendants
With --hard, also destroy every run branched below the selection.
--yes, -y
Skip the confirmation prompt.
--json
Emit raw JSON output.
stimulir lab eval derive

Branch a child run from one candidate of a parent run.

run_id required
Positional argument. Parent run id to branch from.
--rationale required
The hypothesis this branch tests. Required — a branch with no stated hypothesis is a rerun.
--prompt-file
File holding the new prompt content. Pushed as a new version of the SOURCE arm's prompt key.
--prompt-ref
Existing prompt as KEY, KEY:VERSION or KEY:LABEL. Its key must match the source arm's.
--kind
Derive kind. adapter_warm_start is the only unavailable training operation.
--source-candidate-key
Branch from this arm instead of the parent's best-scoring one.
--adapter-id
Adapter id for an adapter_hot_swap derive.
--adapter-version
Exact adapter version for an adapter_hot_swap derive.
--base-model-id
Exact base model recorded by the adapter manifest.
--adapter-format
Adapter format for an adapter_hot_swap derive.
--candidate-provider
Explicit provider for a model_substitution or prompt_and_model derive.
--candidate-model
Explicit model for a model_substitution or prompt_and_model derive.
--instruction
Immutable provenance: what this child was steered with. Usually a steer body.
--allow-rejected
Override the rejection ledger: derive even though this exact candidate (same content, key, provider, model and route) was already rejected in this measurement context. Without it the API refuses with a 409.
--stop-parent
Skip the parent's PENDING results. PERMANENT: the parent becomes a partial measurement.
--start/--no-start
Queue and spawn the child now (default), or leave it DRAFT.
--idempotency-key
Retry-safe key. A repeat under the same key returns the first child and spends nothing.
--max-cases
Cap cases drained by the first execution.
--max-candidates
Cap candidates drained by the first execution.
--json
Emit raw JSON output.
stimulir lab eval evaluator-create

Create a reusable evaluator whose invariants gate candidates pre-spend.

--name, -n required
Evaluator display name.
--forbidden-phrase
A candidate whose prompt contains this exact text is SKIPPED before any judge spend and recorded as a rejection. Repeatable.
--required-phrase
A candidate whose prompt is MISSING this text is skipped. Repeatable.
--max-prompt-chars
Skip a candidate whose prompt exceeds this length.
--invariant-key
Identifier recorded on rejections this invariant produces.
--description
Human note stored with the evaluator.
--json
Emit raw JSON output.
stimulir lab eval evaluators

List evaluators visible to the active workspace.

--include-archived
Include archived evaluators.
--json
Emit raw JSON output.
stimulir lab eval execute-run

Execute a queued durable Lab eval run.

run_id required
Positional argument. Eval run id.
--json
Emit raw JSON output.
stimulir lab eval get

Show one durable Lab eval run: best arm, lineage, review and pending work.

run_id required
Positional argument. Eval run id.
--json
Emit raw JSON output.
stimulir lab eval niah

Score a trained adapter checkpoint on held-out NIAH retrieval (vs zero-LoRA baseline).

--family, -f required
Base model family: qwen3-4b, qwen3-0.6b, or mistral-7b.
--checkpoint-dir, -c required
Trained checkpoint directory (metadata.json + model.safetensors).
--examples
Held-out examples to score (default 200).
--seed
Seed for reproducible example generation.
--device
auto, metal, cuda, or cpu.
--model-dir
Optional base-model directory override.
--endpoint
HybrIE runtime URL (bypasses the console proxy).
--json
Emit raw JSON output.
stimulir lab eval promote

Apply a promotion proposal: move the production label and pin the champion.

proposal_id required
Positional argument. Proposal id to apply (see proposals).
--reason
Note recorded with the promotion.
--yes, -y
Skip the confirmation prompt.
--json
Emit raw JSON output.
stimulir lab eval proposal-prepare

Prepare a proposal for human review without applying or promoting it.

run_id required
Positional argument. Completed eval run id whose winner should be reviewed.
stimulir lab eval proposal-review

Emit one bounded proposal action without narratives or arbitrary payloads.

proposal_id required
Positional argument. Explicit proposal id to review.
stimulir lab eval proposals

List promotion proposals — a completed run's recommended label move.

--status
Filter by status (proposed, applied, dismissed).
--limit
See the installed command’s --help for accepted values.
--json
Emit raw JSON output.
stimulir lab eval rejections

List the rejection ledger, newest first.

--comparability-key
Only rejections in one comparability bucket.
--identity-hash
Only rejections of one candidate identity.
--run
Only rejections recorded on one run.
--limit
See the installed command’s --help for accepted values.
--json
Emit raw JSON output.
stimulir lab eval rl

Score a policy on an RL environment and report reward statistics.

--family, -f required
Base model family: qwen3-4b, qwen3-0.6b, or mistral-7b.
--environment
RL environment (e.g. niah).
--policy
Policy to score: base, hypernet, or peft-lora.
--checkpoint-dir, -c
Trained checkpoint directory (required for non-base policies).
--tasks
Number of eval tasks (sent as num_tasks).
--max-new-tokens
Generation cap per task.
--temperature
Sampling temperature.
--seed
Seed for reproducible task generation.
--pass-threshold
Reward threshold above which a task counts as passed.
--device
auto, metal, cuda, or cpu.
--endpoint
HybrIE runtime URL (bypasses the console proxy).
--json
Emit raw JSON output (includes the per_task list).
stimulir lab eval runs

List durable Lab eval runs, ranked by their best ARM rather than a run mean.

--limit
See the installed command’s --help for accepted values.
--status
Filter by draft, queued, running, completed, or failed.
--include-archived
Also list archived runs (hidden by default).
--json
Emit raw JSON output.
stimulir lab eval steer

Attach an instruction to a run for whichever agent polls it next.

run_id required
Positional argument. Eval run id.
--body required
The instruction, in plain text.
--kind
instruction or note.
--idempotency-key
Retry-safe key; a repeat returns the existing steer instead of a second one.
--json
Emit raw JSON output.
stimulir lab eval steers

List a run's steers, newest first, with each consumption note.

run_id required
Positional argument. Eval run id.
--pending
Only steers nobody has consumed yet.
--include-archived
Allow reading an archived run's steers.
--json
Emit raw JSON output.
stimulir lab eval tree

Show the whole lineage tree containing a run: nodes, best-per-bucket, pending work.

run_id required
Positional argument. Any run id in the tree — root, leaf or middle.
--include-archived
Include archived member runs.
--json
Emit raw JSON output.

SDK method catalogue

Expand a client to inspect public methods and parameter names. Read each operation’s task guide before supplying a payload or starting work. The SDK returns platform responses; handle errors and inspect completion state before using a result.

client.lab_evalsLabEvalsClient
list_runs(limit, status, include_archived)
Returns the platform response; inspect its status and error detail.
get_run(run_id)
Returns the platform response; inspect its status and error detail.
get_agent_status(run_id)
Bounded run state without payloads, narratives, steer text, or raw errors.
get_agent_iteration(run_id)
Typed lineage IDs, counts, fingerprints and outcomes only.
list_champions(comparability_key, limit)
Promoted champions, newest promoted_at first.
list_rejections(comparability_key, identity_hash, run_id, limit)
The rejection ledger, newest first.
list_evaluators(include_archived)
Evaluators visible to the active workspace.
create_evaluator(name, forbidden_phrases, required_phrases, max_prompt_chars, invariant_key, description)
Create a reusable evaluator whose invariants gate candidates pre-spend.
list_proposals(status, limit)
Promotion proposals from completed runs, newest first.
review_proposal(proposal_id)
Review one explicit proposal through the bounded agent projection.
prepare_promotion_proposal(run_id)
Prepare a human-review proposal for one completed eval; never apply it.
apply_proposal(proposal_id, reason)
Apply a promotion proposal: move the production label, pin the champion.
create_run(tags)
Create an eval run. A faithful mapping of POST /runs.
execute_run(run_id, max_cases, max_candidates)
Returns the platform response; inspect its status and error detail.
run_url(run_id, view)
Console deep link for a run, or None when the console origin is unknown.
get_run_tree(run_id, include_archived)
The whole lineage tree containing run_id, from any run id in it.
derive_run(run_id, rationale, derive_kind, prompt_ref, prompt_content, source_candidate_key, adapter_id, adapter_format, derive_instruction, stop_parent, start, idempotency_key, max_cases, max_candidates)
Branch a child run from one candidate of run_id.
create_steer(run_id, body, kind, idempotency_key)
Attach an instruction to a run for whichever agent polls it next.
list_steers(run_id, pending, include_archived)
Returns the platform response; inspect its status and error detail.
ack_steer(run_id, steer_id, consumed_by, note)
Record that a steer was consumed. Write-once and idempotent.
delete_runs(run_ids, mode, include_descendants)
Archive (default) or hard-delete runs.
score_niah(family, checkpoint_dir, examples, seed, device, model_dir, timeout)
Score a trained checkpoint on held-out NIAH retrieval (vs zero-LoRA).
score_adapter(family, adapter_dir, examples, seed, device, model_dir, timeout)
Score a PEFT LoRA adapter directory on held-out retrieval (vs base).
score_rl(family, environment, policy, checkpoint_dir, tasks, max_new_tokens, temperature, seed, pass_threshold, device, timeout)
Score a policy on an RL environment and report reward statistics.