@evolvingmachines/evolve 0.0.68 → 0.0.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evolvingmachines/evolve",
3
- "version": "0.0.68",
3
+ "version": "0.0.69",
4
4
  "keywords": [
5
5
  "ai",
6
6
  "agents",
@@ -131,9 +131,9 @@
131
131
  },
132
132
  "dependencies": {
133
133
  "@agentclientprotocol/sdk": "^0.5.1",
134
- "@evolvingmachines/daytona": "0.0.68",
135
- "@evolvingmachines/e2b": "0.0.68",
136
- "@evolvingmachines/modal": "0.0.68",
134
+ "@evolvingmachines/daytona": "0.0.69",
135
+ "@evolvingmachines/e2b": "0.0.69",
136
+ "@evolvingmachines/modal": "0.0.69",
137
137
  "ajv": "^8.17.1",
138
138
  "p-map": "^7.0.2",
139
139
  "smol-toml": "^1.7.0",
@@ -39,7 +39,7 @@ Hosted requests use `EVOLVE_API_KEY`. Start with Installation if authentication
39
39
  | [Datasets](references/core-concepts/datasets.md) | Browse ready-to-run tasks or publish your own versioned collection. |
40
40
  | [Jobs](references/core-concepts/jobs.md) | Run a task set across agents and models. Follow each attempt to its result. |
41
41
  | [Agents](references/core-concepts/agents.md) | Choose a built-in coding-agent harness or register your own. |
42
- | [Models](references/core-concepts/models.md) | Select models, compare them, and control metered spend. |
42
+ | [Models](references/core-concepts/models.md) | Exact model names, per-model reasoning options, and Evolve defaults. |
43
43
  | [Sandboxes](references/core-concepts/sandboxes.md) | Choose a cloud provider and understand how task requirements affect placement. |
44
44
  | [Agent skills](references/core-concepts/skills.md) | Give evaluated agents reusable instructions and supporting files. |
45
45
  | [Secrets](references/core-concepts/secrets.md) | Store a credential once and attach it to evaluation jobs by name. |
@@ -19,7 +19,7 @@ evolve analyze --show-defaults -a codex
19
19
  evolve analyze --show-defaults --json
20
20
  ```
21
21
 
22
- This returns the agent, model, reasoning effort, sandbox provider, prompt, and rubric an analysis runs under when you name none of them. With `-a`, it returns what that agent runs under: its default model and the effort that model takes. Defaults mode takes no job ID and no other analysis options.
22
+ This returns the configured agent, model, effort, sandbox provider, prompt, and rubric. With `-a`, it returns that agent's defaults. See the [model reference](/core-concepts/models#model-and-effort-reference) for reasoning options. Defaults mode takes no job ID and no other analysis options.
23
23
 
24
24
  ## Select trials
25
25
 
@@ -62,7 +62,7 @@ evolve analyze "$JOB_ID" \
62
62
  | --- | --- |
63
63
  | `-a`, `--agent <name>` | Agent the analyzer runs on. Default `claude`. |
64
64
  | `-m`, `--model <name>` | Analyzer model, from that agent's models. Default: the agent's default model. |
65
- | `--effort <value>` | Reasoning effort. |
65
+ | `--effort <value>` | Reasoning effort for the selected model. See the [model reference](/core-concepts/models#model-and-effort-reference). |
66
66
  | `-r`, `--rubric <path>` | TOML, YAML, or JSON rubric. |
67
67
  | `-p`, `--prompt <path>` | Text file replacing the default prompt. |
68
68
  | `-e`, `--env <provider>` | Sandbox provider for analysis. |
@@ -46,7 +46,7 @@ evolve check --show-defaults
46
46
  | `--name <name>` | Check label. Defaults to the acceptance timestamp. |
47
47
  | `-a`, `--agent <name>` | Agent the checker runs on. Default `claude`. |
48
48
  | `-m`, `--model <name>` | Checker model, from that agent's models. Default: the agent's default model. |
49
- | `--effort <value>` | Reasoning effort. |
49
+ | `--effort <value>` | Reasoning effort for the selected model. See the [model reference](/core-concepts/models#model-and-effort-reference). |
50
50
  | `-r`, `--rubric <path>` | TOML, YAML, or JSON rubric. |
51
51
  | `-p`, `--prompt <path>` | Replacement prompt text file. |
52
52
  | `-e`, `--env <provider>` | Checker sandbox provider. |
@@ -102,7 +102,7 @@ These options apply to every agent combination.
102
102
 
103
103
  | Option | Meaning |
104
104
  | --- | --- |
105
- | `--effort <value>` | Reasoning effort supported by the selected harness and model. |
105
+ | `--effort <value>` | Reasoning effort for the selected harness and model. See the [model reference](/core-concepts/models#model-and-effort-reference). |
106
106
  | `--preset <name>` | Supported settings preset: `no-internet` or `pinned-context`. |
107
107
  | `--ak <key=value>`, `--agent-kwarg <key=value>` | Agent setting. Repeatable. `config` accepts a local JSON/TOML file or inline JSON object. |
108
108
  | `--skill <ref>`, `--skills <ref>` | Skill reference or local directory. Repeatable. |
@@ -114,7 +114,7 @@ evolve run -c job.yaml --skill ./my-skill
114
114
 
115
115
  Skills accept `skills.sh/owner/repo[/skill]`, `org/repo[@ref]`, a Git URL, `upload:<id>`, or `name:<skill-name>`. Local directories upload before the job starts.
116
116
 
117
- Unsupported effort, presets, or settings are refused. See [Agents](/core-concepts/agents) and [Skills](/core-concepts/skills).
117
+ Unsupported effort, presets, or native configuration settings are refused. See [Agents](/core-concepts/agents) and [Skills](/core-concepts/skills).
118
118
 
119
119
  ### Secrets and verifier environment
120
120
 
@@ -21,12 +21,18 @@ One arm
21
21
  | `kimi` | Kimi Code |
22
22
  | `opencode` | OpenCode |
23
23
  | `droid` | Droid |
24
- | `pi` | pi |
24
+ | `pi` | Pi |
25
25
  | `prime-agent` | Prime Agent |
26
26
  | `dsh` | DeepSeek Harness |
27
27
  | `zcode` | Z Code |
28
28
  | `antigravity` | Antigravity CLI |
29
29
 
30
+ Use the [model and effort reference](/core-concepts/models#model-and-effort-reference) to copy the exact strings for each harness. Model names are not interchangeable across harnesses.
31
+
32
+ **Note:**
33
+
34
+ `gemini` is retired. Select `antigravity` for new runs; historical Gemini CLI records remain readable.
35
+
30
36
  ```bash
31
37
  evolve run -d harbor-examples@1.0 -i hello-world \
32
38
  -a codex -m gpt-6-luna \
@@ -39,14 +45,18 @@ Use `-a name@version` to pin a harness release. Without a version, Evolve resolv
39
45
 
40
46
  | Option | Purpose |
41
47
  | --- | --- |
42
- | `--effort <value>` | Set supported reasoning effort |
48
+ | `--effort <value>` | Set effort on every arm. See the [model reference](/core-concepts/models#model-and-effort-reference) |
43
49
  | `--preset no-internet` | Disable vendor server-side web tools |
44
50
  | `--preset pinned-context` | Set the supported context window to 200,000 tokens |
45
51
  | `--ak config=<path-or-JSON>` | Supply a native harness configuration |
46
52
 
53
+ An effort or configuration the harness cannot honor is refused when the job is created.
54
+
47
55
  Presets and native config are supported on Claude Code and Codex. The platform applies routing settings over your config, and preset settings take precedence where they overlap. Routing, billing, credential, and environment overrides are rejected.
48
56
 
49
- The live [capability document](/sdk-reference/meta) lists each harness's supported options. Unsupported effort or configuration is rejected when the job is created.
57
+ The [model table](/core-concepts/models#model-and-effort-reference) shows defaults and reasoning options for each model. Every arm needs an explicit model.
58
+
59
+ The live [capability document](/sdk-reference/meta) lists accepted configuration options.
50
60
 
51
61
  **Note:**
52
62
 
@@ -69,12 +69,19 @@ reviewed = await jobs().watch_analysis(finished.id)
69
69
 
70
70
  ## Rubrics and prompts
71
71
 
72
- Read the current defaults before customizing:
72
+ Read the current rubric, prompt, model, effort, and provider before customizing:
73
73
 
74
- ```bash
74
+ ```bash Default analyzer
75
75
  evolve analyze --show-defaults
76
76
  ```
77
77
 
78
+ ```bash Choose an analyzer
79
+ evolve analyze --show-defaults -a codex
80
+ evolve analyze "$JOB_ID" -a codex --watch
81
+ ```
82
+
83
+ The default analyzer is `claude`. Use `-a` to choose another built-in harness. Omit `-m` to use its default model for analyses, or choose one of its [models](/core-concepts/models#analysis-and-check-models).
84
+
78
85
  The default rubric covers these questions:
79
86
 
80
87
  | Criterion | Question |
@@ -104,7 +111,7 @@ evolve analyze "$JOB_ID" -r rubric.toml -p prompt.txt --watch
104
111
 
105
112
  An analyzer prompt can use `{trial_path}`, `{task_section}`, and `{criteria_guidance}`. Evolve appends the required output format.
106
113
 
107
- Use `-a`, `-m`, `--effort`, `-e`, and `-n` for agent, model, effort, provider, and concurrency. The analyzer runs on `claude` unless `-a` names another agent; the model must be one of that agent's [models](/core-concepts/models#analysis-and-check-models). On job creation, use the corresponding `--analyze-*` flags. See the [full reference](/cli-reference/analyze).
114
+ Use `--effort`, `-e`, and `-n` to set reasoning effort, sandbox provider, and concurrency. On job creation, use the corresponding `--analyze-*` flags. See the [full reference](/cli-reference/analyze).
108
115
 
109
116
  ## The result
110
117
 
@@ -117,7 +124,34 @@ Each criterion has an outcome, explanation, and evidence.
117
124
  | `not_applicable` | The criterion has no subject in this trial. |
118
125
  | `unknown` | The available record cannot decide it. |
119
126
 
120
- The result is this per-criterion JSON and nothing else: Evolve derives no verdict from it. The dashboard shows a summary chip it computes from the outcomes. Under a custom rubric the chip is `flagged` when any criterion fails, `unclear` when none fails but at least one is unknown, and `clean` otherwise. Under a rubric with the default criterion names the chip reads only `score_is_earned`, `score_is_correct`, `task_was_fair`, `report_is_truthful` and `environment_worked`: a fail on the first four is `flagged`, else a failed `environment_worked` is `env_fault`, else an unknown on any of the five or a not applicable score criterion is `unclear`, else `clean`; the other two criteria are facts about the trial and never move the chip. Read the criteria and compute what you need from them. A missing or extra criterion makes the analysis result invalid. A run without a valid result can retry once.
127
+ The API returns the findings without an overall verdict. Use the criterion outcomes and evidence to decide what to do next.
128
+
129
+ The dashboard computes a short summary label from those outcomes. Its rules depend on whether the result has exactly the default criterion names.
130
+
131
+ ### Default rubric: read the dashboard summary
132
+
133
+ The two score criteria are `score_is_earned` and `score_is_correct`. Apply the first matching rule:
134
+
135
+ | Rule | Summary label |
136
+ | --- | --- |
137
+ | A score criterion, `task_was_fair`, or `report_is_truthful` fails. | **Flagged** |
138
+ | `environment_worked` fails. | **Env fault** |
139
+ | Any of these five criteria is unknown, or a score criterion is not applicable. | **Unclear** |
140
+ | None of the above. | **Clean** |
141
+
142
+ `ended_by_its_own_decision` and `worked_as_for_a_real_user` describe the trial but do not change this label. Read their findings even when the summary is **Clean**.
143
+
144
+ ### Other rubrics: read the dashboard summary
145
+
146
+ Apply the first matching rule across all criteria:
147
+
148
+ | Rule | Summary label |
149
+ | --- | --- |
150
+ | Any criterion fails. | **Flagged** |
151
+ | Any criterion is unknown. | **Unclear** |
152
+ | Neither of the above. | **Clean** |
153
+
154
+ A missing or extra criterion makes the analysis result invalid. A run without a valid result can retry once.
121
155
 
122
156
  The analysis's `estimated_cost_usd` and the job's `stats.analysis.cost_usd` are separate from evaluation spend.
123
157
 
@@ -52,13 +52,31 @@ A check is a hosted model run and incurs cost. `evolve dataset check` is a separ
52
52
  | Execution | Valid reference solution; rejection of non-solutions; environment works; stable verification; sufficient limits. |
53
53
  | Feasibility | The task is solvable. |
54
54
 
55
- Inspect the default rubric's criteria and their complete guidance, and the current agent, model, effort, provider, and prompt:
55
+ Read the complete rubric guidance and the current agent, model, effort, provider, and prompt:
56
56
 
57
- ```bash
57
+ ```bash Default checker
58
58
  evolve check --show-defaults
59
59
  ```
60
60
 
61
- Use `-r rubric.toml` or `-p prompt.txt` to customize. Check prompt tokens are `{task_path}`, `{file_tree}`, and `{criteria_guidance}`. The required result format is appended automatically. The checker runs on `claude` unless `-a` names another agent; pass a model from that agent's [models](/core-concepts/models#analysis-and-check-models) with `-m`, or omit `-m` for that agent's default model.
61
+ ```bash Choose a checker
62
+ evolve check --show-defaults -a codex
63
+ evolve check ./tasks -a codex --watch
64
+ ```
65
+
66
+ The default checker is `claude`. Use `-a` to choose another built-in harness. Omit `-m` to use its default model for checks, or choose one of its [models](/core-concepts/models#analysis-and-check-models).
67
+
68
+ ### Use your own rubric or prompt
69
+
70
+ Use `-r rubric.toml` or `-p prompt.txt` to customize the review. A rubric accepts TOML, YAML, or JSON with uniquely named criteria:
71
+
72
+ ```toml rubric.toml
73
+ [[criteria]]
74
+ name = "inputs_are_documented"
75
+ description = "The instructions describe every required input."
76
+ guidance = "Compare the input files with the instructions."
77
+ ```
78
+
79
+ Check prompt tokens are `{task_path}`, `{file_tree}`, and `{criteria_guidance}`. The required result format is appended automatically. See the [check reference](/cli-reference/check#configure-the-checker) for all options.
62
80
 
63
81
  ## The result
64
82
 
@@ -76,11 +94,49 @@ check
76
94
  └── ...
77
95
  ```
78
96
 
79
- The result is this per-criterion JSON and nothing else: Evolve derives no verdict from it. The dashboard shows a summary chip it computes from the outcomes. Under a custom rubric the chip is `has_a_problem` when any criterion fails, `unclear` when none fails but at least one is unknown, and `no_problem_found` otherwise. Under a rubric with the default criterion names the same rule applies, with two exceptions: an unknown on one of the default rubric's execution criteria does not make the chip unclear but marks it not executed; and `attempt_isolation` counts only when it fails. Read the criteria and compute what you need from them.
97
+ Each criterion reports `pass`, `fail`, `not_applicable`, or `unknown`, with an explanation and evidence. The API returns these findings without an overall verdict or a separate execution flag.
98
+
99
+ The dashboard computes a short summary label from the outcomes. **No problem found** does not prove that the task runs: read any unresolved execution findings.
100
+
101
+ ### Default rubric: read the dashboard summary
102
+
103
+ These rules apply when the result has exactly the default criterion names. Apply the first matching rule:
104
+
105
+ | Rule | Summary label |
106
+ | --- | --- |
107
+ | Any criterion fails. | **Has a problem** |
108
+ | A criterion is unknown, except an execution criterion or `attempt_isolation`. | **Unclear** |
109
+ | Neither of the above. | **No problem found** |
80
110
 
81
- **Note:**
111
+ `attempt_isolation` changes the summary only when it fails.
112
+
113
+ The execution group contains these five criteria:
114
+
115
+ - `reference_solution_is_valid`
116
+
117
+ - `verifier_rejects_non_solutions`
118
+
119
+ - `environment_builds_and_runs`
120
+
121
+ - `verification_is_stable`
122
+
123
+ - `limits_allow_the_task`
124
+
125
+ If any is `unknown`, the dashboard adds **Not executed**. Otherwise it adds **Executed**. This note summarizes the outcomes; it is not a separate execution audit.
126
+
127
+ Read the evidence before relying on the note. An unknown means decisive execution evidence was unavailable, such as when the checker could not run the environment.
128
+
129
+ ### Other rubrics: read the dashboard summary
130
+
131
+ Apply the first matching rule across all criteria:
132
+
133
+ | Rule | Summary label |
134
+ | --- | --- |
135
+ | Any criterion fails. | **Has a problem** |
136
+ | Any criterion is unknown. | **Unclear** |
137
+ | Neither of the above. | **No problem found** |
82
138
 
83
- **Read the default rubric's execution criteria** (`reference_solution_is_valid`, `verifier_rejects_non_solutions`, `environment_builds_and_runs`, `verification_is_stable`, `limits_allow_the_task`) before treating a result with no failure as proof that the task runs. They are `unknown` when decisive execution evidence is unavailable, for example when the checker could not run the environment, and that leaves execution questions unresolved.
139
+ Other rubrics have no **Executed** or **Not executed** note.
84
140
 
85
141
  The parent lifecycle is `queued` → `running` → `completed`. A completed check can contain failed task checks; inspect each task's `status` and `failure`.
86
142
 
@@ -1,72 +1,425 @@
1
1
  ---
2
2
  title: "Models"
3
- description: "Select models, compare them, and control metered spend."
3
+ description: "Exact model names, per-model reasoning options, and Evolve defaults."
4
4
  ---
5
5
 
6
- `-m` selects the model for an evaluation arm. Every arm must name a model; there is no default.
6
+ Choose a harness, then copy a model name from its tab. Use the same model string in the CLI, TypeScript, and Python.
7
7
 
8
- ```bash
9
- evolve run -d harbor-examples@1.0 -i hello-world \
8
+ | Setting | CLI → managed SDK |
9
+ | --- | --- |
10
+ | Harness | `-a` → `agents[].name` |
11
+ | Model | `-m` → `agents[].model_name` |
12
+ | Reasoning effort | `--effort` → `agents[].reasoning_effort` |
13
+
14
+ Every evaluation arm **requires a model**. The default model below is the Agent SDK’s choice when its model is omitted. Default effort is Evolve’s configured setting when effort is omitted.
15
+
16
+ ## Model and effort reference
17
+
18
+ Reasoning options are checked against the exact model’s provider documentation and the harness’s native controls. Models with a thinking toggle or a token budget are labeled in the table.
19
+
20
+ `off` is the CLI and SDK spelling for thinking disabled and `thinking` for enabled; `none` is a native spelling shown in some tables and is not accepted. A model outside a harness's roster runs only through the Agent SDK; managed evaluations refuse it.
21
+
22
+ **Note:**
23
+
24
+ This page records native support. Some Evolve effort mappings still need correction before all of these options work through the CLI and SDK.
25
+
26
+ ### Claude Code
27
+
28
+ **Harness:** `claude`
29
+
30
+ **Default model:** `opus` or `claude-opus-5-5`
31
+
32
+ **Default effort:** `high`
33
+
34
+ | Model | Model string | Native reasoning efforts |
35
+ | --- | --- | --- |
36
+ | Claude Fable 5.1 | `fable` | `low`, `medium`, `high`, `xhigh`, `max` |
37
+ | Claude Opus 5.5 | `opus` | `low`, `medium`, `high`, `xhigh`, `max` |
38
+ | Claude Sonnet 5 | `sonnet` | `low`, `medium`, `high`, `xhigh`, `max` |
39
+ | Claude Haiku 4.5 | `haiku` | Thinking budget; no effort levels |
40
+ | GLM 5.3 | `glm-5.3` | `low`, `high`, `max` |
41
+ | GLM 5.3 Flash | `glm-5.3-flash` | `low`, `high`, `max` |
42
+ | DeepSeek V4.1 Flash | `openrouter/deepseek/deepseek-v4.1-flash` | `low`, `high`, `max` |
43
+ | DeepSeek V4.1 Flash | `fireworks/deepseek-v4.1-flash` | `low`, `high`, `max` |
44
+
45
+ ### Sources
46
+
47
+ [Claude Code](https://code.claude.com/docs/en/model-config) · [Claude effort](https://platform.claude.com/docs/en/build-with-claude/effort) · [GLM 5.3](https://docs.z.ai/guides/llm/glm-5.3) · [Fireworks model controls](https://github.com/fw-ai/fireconnect/blob/02e352a6184a404f0be3be0f1fd92ada9d37014b/packages/setup-cli/lib/fireworks/reasoning.mjs)
48
+
49
+ ### Other accepted model spellings
50
+
51
+ | Model string | Also accepted |
52
+ | --- | --- |
53
+ | `fable` | `claude-fable-5-1` |
54
+ | `opus` | `claude-opus-5-5` |
55
+ | `sonnet` | `claude-sonnet-5` |
56
+ | `haiku` | `claude-haiku-4-5-20251001` |
57
+
58
+ ### Codex
59
+
60
+ **Harness:** `codex`
61
+
62
+ **Default model:** `gpt-6-sol`
63
+
64
+ **Default effort:** `high`
65
+
66
+ | Model | Model string | Native reasoning efforts |
67
+ | --- | --- | --- |
68
+ | GPT-6 Astra | `gpt-6-astra` | `low`, `medium`, `high`, `xhigh`, `max` |
69
+ | GPT-6 Sol | `gpt-6-sol` | `none`, `low`, `medium`, `high`, `xhigh`, `max` |
70
+ | GPT-5.6 Terra | `gpt-5.6-terra` | `none`, `low`, `medium`, `high`, `xhigh`, `max` |
71
+ | GPT-6 Luna | `gpt-6-luna` | `none`, `low`, `medium`, `high`, `xhigh`, `max` |
72
+ | GPT-5.3 Codex | `gpt-5.3-codex` | `low`, `medium`, `high`, `xhigh` |
73
+
74
+ ### Sources
75
+
76
+ [GPT-6 Astra](https://developers.openai.com/api/docs/models/gpt-6-astra) · [GPT-6 Sol](https://developers.openai.com/api/docs/models/gpt-6-sol) · [GPT-6 Luna](https://developers.openai.com/api/docs/models/gpt-6-luna) · [GPT-5.6 Terra](https://developers.openai.com/api/docs/models/gpt-5.6-terra) · [GPT-5.3 Codex](https://developers.openai.com/api/docs/models/gpt-5.3-codex)
77
+
78
+ ### Qwen Code
79
+
80
+ **Harness:** `qwen`
81
+
82
+ **Default model:** `qwen3.8-max`
83
+
84
+ **Default effort:** `thinking`
85
+
86
+ | Model | Model string | Native reasoning efforts |
87
+ | --- | --- | --- |
88
+ | Qwen 3.8 Max | `qwen3.8-max` | `off`, `low`, `medium`, `xhigh` |
89
+ | Qwen 3.7 Plus | `qwen3.7-plus` | `off`, `thinking` |
90
+ | Qwen 3.8 Flash | `qwen3.8-flash` | `off`, `low`, `medium`, `xhigh` |
91
+
92
+ ### Sources
93
+
94
+ [Qwen Code settings](https://qwenlm.github.io/qwen-code-docs/en/users/configuration/settings/) · [Qwen model controls](https://docs.qwencloud.com/api-reference/chat/openai-chat)
95
+
96
+ ### Kimi Code
97
+
98
+ **Harness:** `kimi`
99
+
100
+ **Default model:** `kimi-k3` or `moonshot/kimi-k3`
101
+
102
+ **Default effort:** `max`
103
+
104
+ | Model | Model string | Native reasoning efforts |
105
+ | --- | --- | --- |
106
+ | Kimi K3 | `kimi-k3` | `low`, `high`, `max` |
107
+ | Kimi K2.7 Code | `kimi-k2.7-code` | Always thinking; no effort levels |
108
+ | Kimi K3 Raptor | `kimi-k3-raptor` | `off`, `low`, `high`, `max` |
109
+
110
+ ### Sources
111
+
112
+ [Kimi model controls](https://www.kimi.ai/help/kimi-api/api-model-selection) · [Kimi reasoning](https://platform.kimi.ai/docs/guide/use-reasoning-effort) · [Fireworks reasoning](https://docs.fireworks.ai/api-reference/post-chatcompletions)
113
+
114
+ ### Other accepted model spellings
115
+
116
+ | Model string | Also accepted |
117
+ | --- | --- |
118
+ | `kimi-k3` | `moonshot/kimi-k3` |
119
+ | `kimi-k2.7-code` | `moonshot/kimi-k2.7-code` |
120
+
121
+ ### OpenCode
122
+
123
+ **Harness:** `opencode`
124
+
125
+ **Default model:** `openrouter/anthropic/claude-opus-5.5`
126
+
127
+ **Default effort:** `high`
128
+
129
+ | Model | Model string | Native reasoning efforts |
130
+ | --- | --- | --- |
131
+ | Claude Fable 5.1 | `openrouter/anthropic/claude-fable-5.1` | `low`, `medium`, `high`, `xhigh`, `max` |
132
+ | Claude Opus 5.5 | `openrouter/anthropic/claude-opus-5.5` | `low`, `medium`, `high`, `xhigh`, `max` |
133
+ | Claude Sonnet 5 | `openrouter/anthropic/claude-sonnet-5` | `none`, `low`, `medium`, `high`, `xhigh`, `max` |
134
+ | Claude Haiku 4.5 | `openrouter/anthropic/claude-haiku-4.5` | Thinking budget; no effort levels |
135
+ | GPT-6 Astra | `openrouter/openai/gpt-6-astra` | `low`, `medium`, `high`, `xhigh`, `max` |
136
+ | GPT-6 Sol | `openrouter/openai/gpt-6-sol` | `none`, `low`, `medium`, `high`, `xhigh`, `max` |
137
+ | GPT-5.6 Terra | `openrouter/openai/gpt-5.6-terra` | `none`, `low`, `medium`, `high`, `xhigh`, `max` |
138
+ | GPT-6 Luna | `openrouter/openai/gpt-6-luna` | `none`, `low`, `medium`, `high`, `xhigh`, `max` |
139
+ | Gemini 3.8 Flash | `openrouter/google/gemini-3.8-flash` | `low`, `medium`, `high` |
140
+ | Qwen 3.8 Max | `openrouter/qwen/qwen3.8-max-0902` | `minimal`, `low`, `medium`, `high`, `xhigh` |
141
+ | Kimi K3 | `openrouter/moonshotai/kimi-k3` | `none`, `low`, `high`, `max` |
142
+ | GLM 5.3 | `openrouter/z-ai/glm-5.3` | `low`, `high`, `max` |
143
+ | GLM 5.3 Flash | `openrouter/z-ai/glm-5.3-flash` | `low`, `high`, `max` |
144
+ | DeepSeek V4.1 Flash | `openrouter/deepseek/deepseek-v4.1-flash` | `none`, `low`, `high`, `max` |
145
+ | DeepSeek V4.1 Flash | `fireworks/deepseek-v4.1-flash` | `none`, `low`, `high`, `max` |
146
+
147
+ ### Sources
148
+
149
+ [OpenCode models](https://opencode.ai/docs/models/) · [OpenRouter reasoning](https://openrouter.ai/docs/guides/best-practices/reasoning-tokens) · [Fireworks model controls](https://github.com/fw-ai/fireconnect/blob/02e352a6184a404f0be3be0f1fd92ada9d37014b/packages/setup-cli/lib/fireworks/reasoning.mjs)
150
+
151
+ ### Droid
152
+
153
+ **Harness:** `droid`
154
+
155
+ **Default model:** `claude-opus-5-5`
156
+
157
+ **Default effort:** `high`
158
+
159
+ | Model | Model string | Native reasoning efforts |
160
+ | --- | --- | --- |
161
+ | Claude Fable 5.1 | `claude-fable-5.1` | `low`, `medium`, `high`, `xhigh`, `max` |
162
+ | Claude Opus 5.5 | `claude-opus-5-5` | `low`, `medium`, `high`, `xhigh`, `max` |
163
+ | Claude Sonnet 5 | `claude-sonnet-5` | `off`, `low`, `medium`, `high`, `xhigh`, `max` |
164
+ | Claude Haiku 4.5 | `claude-haiku-4-5` | `off`, `low`, `medium`, `high` (thinking budgets) |
165
+ | GPT-5.6 Terra | `gpt-5.6-terra` | `none`, `low`, `medium`, `high`, `xhigh`, `max` |
166
+ | Gemini 3.8 Flash | `gemini-3.8-flash` | `low`, `medium`, `high` |
167
+ | Qwen 3.8 Max | `qwen3.8-max` | `low`, `medium`, `xhigh` |
168
+ | Kimi K3 | `kimi-k3` | `low`, `high`, `max` |
169
+ | GLM 5.3 | `glm-5.3` | `low`, `high`, `max` |
170
+ | GLM 5.3 Flash | `glm-5.3-flash` | `low`, `high`, `max` |
171
+ | DeepSeek V4.1 Flash | `openrouter/deepseek/deepseek-v4.1-flash` | `off`, `low`, `high`, `max` |
172
+ | DeepSeek V4.1 Flash | `fireworks/deepseek-v4.1-flash` | `off`, `low`, `high`, `max` |
173
+
174
+ ### Sources
175
+
176
+ [Factory models](https://docs.factory.ai/models) · [Claude effort](https://platform.claude.com/docs/en/build-with-claude/effort) · [Gemini thinking](https://ai.google.dev/gemini-api/docs/generate-content/thinking) · [Fireworks model controls](https://github.com/fw-ai/fireconnect/blob/02e352a6184a404f0be3be0f1fd92ada9d37014b/packages/setup-cli/lib/fireworks/reasoning.mjs)
177
+
178
+ ### Other accepted model spellings
179
+
180
+ | Model string | Also accepted |
181
+ | --- | --- |
182
+ | `claude-fable-5.1` | `claude-fable-5-1` |
183
+ | `claude-haiku-4-5` | `claude-haiku-4-5-20251001` |
184
+
185
+ ### Pi
186
+
187
+ **Harness:** `pi`
188
+
189
+ **Default model:** `openrouter/anthropic/claude-opus-5.5`
190
+
191
+ **Default effort:** `high`
192
+
193
+ | Model | Model string | Native reasoning efforts |
194
+ | --- | --- | --- |
195
+ | Claude Fable 5.1 | `openrouter/anthropic/claude-fable-5.1` | `low`, `medium`, `high`, `xhigh`, `max` |
196
+ | Claude Opus 5.5 | `openrouter/anthropic/claude-opus-5.5` | `low`, `medium`, `high`, `xhigh`, `max` |
197
+ | Claude Sonnet 5 | `openrouter/anthropic/claude-sonnet-5` | `off`, `low`, `medium`, `high`, `xhigh`, `max` |
198
+ | Claude Haiku 4.5 | `openrouter/anthropic/claude-haiku-4.5` | `off`, `minimal`, `low`, `medium`, `high` (thinking budgets) |
199
+ | GPT-6 Astra | `openrouter/openai/gpt-6-astra` | `low`, `medium`, `high`, `xhigh`, `max` |
200
+ | GPT-6 Sol | `openrouter/openai/gpt-6-sol` | `off`, `low`, `medium`, `high`, `xhigh`, `max` |
201
+ | GPT-5.6 Terra | `openrouter/openai/gpt-5.6-terra` | `off`, `low`, `medium`, `high`, `xhigh`, `max` |
202
+ | GPT-6 Luna | `openrouter/openai/gpt-6-luna` | `off`, `low`, `medium`, `high`, `xhigh`, `max` |
203
+ | Gemini 3.8 Flash | `openrouter/google/gemini-3.8-flash` | `low`, `medium`, `high` |
204
+ | Qwen 3.8 Max | `openrouter/qwen/qwen3.8-max-0902` | `minimal`, `low`, `medium`, `high`, `xhigh` |
205
+ | Kimi K3 | `openrouter/moonshotai/kimi-k3` | `off`, `low`, `high`, `max` |
206
+ | GLM 5.3 | `openrouter/z-ai/glm-5.3` | `low`, `high`, `max` |
207
+ | GLM 5.3 Flash | `openrouter/z-ai/glm-5.3-flash` | `low`, `high`, `max` |
208
+ | DeepSeek V4.1 Flash | `openrouter/deepseek/deepseek-v4.1-flash` | `off`, `low`, `high`, `max` |
209
+
210
+ ### Sources
211
+
212
+ [Pi model configuration](https://github.com/earendil-works/pi/blob/v0.87.1/packages/coding-agent/docs/models.md) · [OpenRouter reasoning](https://openrouter.ai/docs/guides/best-practices/reasoning-tokens)
213
+
214
+ ### Prime Agent
215
+
216
+ **Harness:** `prime-agent`
217
+
218
+ **Default model:** `openrouter/anthropic/claude-opus-5.5`
219
+
220
+ **Default effort:** `high`
221
+
222
+ | Model | Model string | Native reasoning efforts |
223
+ | --- | --- | --- |
224
+ | Claude Fable 5.1 | `openrouter/anthropic/claude-fable-5.1` | `low`, `medium`, `high`, `xhigh`, `max` |
225
+ | Claude Opus 5.5 | `openrouter/anthropic/claude-opus-5.5` | `low`, `medium`, `high`, `xhigh`, `max` |
226
+ | Claude Sonnet 5 | `openrouter/anthropic/claude-sonnet-5` | `off`, `low`, `medium`, `high`, `xhigh`, `max` |
227
+ | Claude Haiku 4.5 | `openrouter/anthropic/claude-haiku-4.5` | `off`, `high` (thinking off/on; no effort levels) |
228
+ | GPT-6 Astra | `openrouter/openai/gpt-6-astra` | `low`, `medium`, `high`, `xhigh`, `max` |
229
+ | GPT-6 Sol | `openrouter/openai/gpt-6-sol` | `off`, `low`, `medium`, `high`, `xhigh`, `max` |
230
+ | GPT-5.6 Terra | `openrouter/openai/gpt-5.6-terra` | `off`, `low`, `medium`, `high`, `xhigh`, `max` |
231
+ | GPT-6 Luna | `openrouter/openai/gpt-6-luna` | `off`, `low`, `medium`, `high`, `xhigh`, `max` |
232
+ | Gemini 3.8 Flash | `openrouter/google/gemini-3.8-flash` | `low`, `medium`, `high` |
233
+ | Qwen 3.8 Max | `openrouter/qwen/qwen3.8-max-0902` | `minimal`, `low`, `medium`, `high`, `xhigh` |
234
+ | Kimi K3 | `openrouter/moonshotai/kimi-k3` | `off`, `low`, `high`, `max` |
235
+ | GLM 5.3 | `openrouter/z-ai/glm-5.3` | `low`, `high`, `max` |
236
+ | GLM 5.3 Flash | `openrouter/z-ai/glm-5.3-flash` | `low`, `high`, `max` |
237
+ | DeepSeek V4.1 Flash | `openrouter/deepseek/deepseek-v4.1-flash` | `off`, `low`, `high`, `max` |
238
+
239
+ ### Sources
240
+
241
+ [Prime Agent](https://github.com/PrimeIntellect-ai/prime-agent/tree/v0.9.6) · [OpenRouter reasoning](https://openrouter.ai/docs/guides/best-practices/reasoning-tokens)
242
+
243
+ ### DeepSeek Harness
244
+
245
+ **Harness:** `dsh`
246
+
247
+ **Default model:** `openrouter/deepseek/deepseek-v4.1-flash`
248
+
249
+ **Default effort:** `high`
250
+
251
+ | Model | Model string | Native reasoning efforts |
252
+ | --- | --- | --- |
253
+ | DeepSeek V4.1 Flash | `openrouter/deepseek/deepseek-v4.1-flash` | `off`, `low`, `high`, `max` |
254
+ | DeepSeek V4.1 Flash | `fireworks/deepseek-v4.1-flash` | `off`, `low`, `high`, `max` |
255
+ | DeepSeek V4 Pro | `openrouter/deepseek/deepseek-v4-pro-0813` | `off`, `low`, `high`, `max` |
256
+
257
+ ### Sources
258
+
259
+ [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness/tree/dsh-v0.1.7-rc.2) · [OpenRouter reasoning](https://openrouter.ai/docs/guides/best-practices/reasoning-tokens) · [Fireworks reasoning](https://docs.fireworks.ai/api-reference/post-chatcompletions)
260
+
261
+ ### Z Code
262
+
263
+ **Harness:** `zcode`
264
+
265
+ **Default model:** `openrouter/z-ai/glm-5.3`
266
+
267
+ **Default effort:** `high`
268
+
269
+ | Model | Model string | Native reasoning efforts |
270
+ | --- | --- | --- |
271
+ | GLM 5.3 | `openrouter/z-ai/glm-5.3` | `low`, `high`, `max` |
272
+ | GLM 5.3 Flash | `openrouter/z-ai/glm-5.3-flash` | `low`, `high`, `max` |
273
+ | GLM 5.3 | `fireworks/glm-5.3` | `low`, `high`, `max` |
274
+ | GLM 5.3 Flash | `fireworks/glm-5.3-flash` | `low`, `high`, `max` |
275
+
276
+ ### Sources
277
+
278
+ [Z Code](https://github.com/zai-org/ZCode) · [GLM 5.3](https://docs.z.ai/guides/llm/glm-5.3) · [GLM 5.3 Flash](https://docs.z.ai/guides/vlm/glm-5.3-flash) · [Fireworks model controls](https://github.com/fw-ai/fireconnect/blob/02e352a6184a404f0be3be0f1fd92ada9d37014b/packages/setup-cli/lib/fireworks/reasoning.mjs)
279
+
280
+ ### Antigravity
281
+
282
+ **Harness:** `antigravity`
283
+
284
+ **Default model:** `gemini-3.8-flash` or `vertex_ai/gemini-3.8-flash`
285
+
286
+ **Default effort:** `high`
287
+
288
+ | Model | Model string | Native reasoning efforts |
289
+ | --- | --- | --- |
290
+ | Gemini 3.8 Flash | `gemini-3.8-flash` | `low`, `medium`, `high` |
291
+ | Gemini 3.5 Flash-Lite | `gemini-3.5-flash-lite` | `low`, `medium`, `high` |
292
+ | Gemini 3.1 Pro Preview | `gemini-3.1-pro-preview` | `low`, `medium`, `high` |
293
+
294
+ ### Sources
295
+
296
+ [Antigravity CLI](https://antigravity.google/docs/cli/overview/) · [Gemini thinking](https://ai.google.dev/gemini-api/docs/generate-content/thinking)
297
+
298
+ ### Other accepted model spellings
299
+
300
+ | Model string | Also accepted |
301
+ | --- | --- |
302
+ | `gemini-3.8-flash` | `vertex_ai/gemini-3.8-flash` |
303
+ | `gemini-3.5-flash-lite` | `vertex_ai/gemini-3.5-flash-lite` |
304
+ | `gemini-3.1-pro-preview` | `vertex_ai/gemini-3.1-pro-preview` |
305
+
306
+ **Note:**
307
+
308
+ `gemini` is retired. Use `antigravity` for new runs. Records of earlier Gemini CLI runs remain readable.
309
+
310
+ ## Use your selection
311
+
312
+ This example runs Codex with GPT-6 Luna at `high` effort.
313
+
314
+ ```bash CLI
315
+ evolve run \
316
+ -d harbor-examples@1.0 \
317
+ -i hello-world \
10
318
  -a codex \
11
- -m gpt-6-luna -m gpt-5.6-terra \
12
- --max-trial-spend 1 --max-retries 0 --watch
319
+ -m gpt-6-luna \
320
+ --effort high \
321
+ --max-trial-spend 1 \
322
+ --max-retries 0 \
323
+ --watch
324
+ ```
325
+
326
+ ```ts TypeScript
327
+ import { jobs } from "@evolvingmachines/evolve";
328
+
329
+ const job = await jobs().start({
330
+ datasets: [{
331
+ name: "harbor-examples",
332
+ version: "1.0",
333
+ task_names: ["hello-world"],
334
+ }],
335
+ agents: [{
336
+ name: "codex",
337
+ model_name: "gpt-6-luna",
338
+ reasoning_effort: "high",
339
+ }],
340
+ max_trial_spend_usd: 1,
341
+ retry: { max_retries: 0 },
342
+ });
13
343
  ```
14
344
 
15
- Repeating `-m` creates one arm per model. This command runs the selected task once with each model.
345
+ ```python Python
346
+ import asyncio
347
+ from evolve import jobs
16
348
 
17
- ## Find a supported model
18
349
 
19
- Each harness has its own model names. Read the live roster instead of assuming a name works with every harness:
350
+ async def main():
351
+ job = await jobs().start(
352
+ datasets=[{
353
+ "name": "harbor-examples",
354
+ "version": "1.0",
355
+ "task_names": ["hello-world"],
356
+ }],
357
+ agents=[{
358
+ "name": "codex",
359
+ "model_name": "gpt-6-luna",
360
+ "reasoning_effort": "high",
361
+ }],
362
+ max_trial_spend_usd=1,
363
+ retry={"max_retries": 0},
364
+ )
365
+ print(job.id)
366
+
367
+
368
+ asyncio.run(main())
369
+ ```
370
+
371
+ Repeat `-m` to compare models on one harness. `--effort` applies to every arm. To compare different efforts, set `reasoning_effort` separately on each arm in a [job config](/cli-reference/run) or the [SDK](/sdk-reference/jobs).
372
+
373
+ ### Using the Agent SDK instead of managed evaluations
374
+
375
+ The Agent SDK uses `model` and TypeScript `reasoningEffort` / Python `reasoning_effort` in its agent configuration. It can omit the model; managed evaluation arms cannot.
376
+
377
+ The tables above describe Evolve model access. Direct provider credentials have their own available models. On Claude Code and Droid, the `glm-5.3`, `glm-5.3-flash`, `openrouter/…` and `fireworks/…` rows, and Droid's `qwen3.8-max`, are gateway routes, and the `fireworks/` options on OpenCode, DeepSeek Harness, and Z Code require Evolve model access.
378
+
379
+ See the [Agent SDK manual](https://github.com/evolving-machines-lab/evolve/blob/main/docs-agents/index.md).
380
+
381
+ ### Read the current model list
20
382
 
21
383
  ```bash
22
384
  curl -sS https://dashboard.evolvingmachines.ai/api/meta
23
385
  ```
24
386
 
25
- The `agents` list includes each harness's models, effort support, and configuration capabilities. The same document is available through [`meta()` in both SDKs](/sdk-reference/meta), without authentication.
387
+ No authentication is required. `agents[].models` lists model aliases and IDs. Metadata reports the API’s accepted inputs and configured defaults.
388
+
389
+ The same document is available through [`meta()` in both SDKs](/sdk-reference/meta).
26
390
 
27
391
  ## Model access and spend
28
392
 
29
- ```text
30
- 1. Agent harness
31
- ↓
32
- 2. Evolve gateway
33
- Meter usage against the cap
34
- ↓
35
- 3. Model provider
36
- ```
393
+ An `EVOLVE_API_KEY` supplies platform model access. `--max-trial-spend` caps agent model spend **per trial attempt**. Verifier judges and trace analysis have separate budgets. See [job costs](/core-concepts/jobs#spend-and-retries).
37
394
 
38
- An `EVOLVE_API_KEY` supplies platform model access. `--max-trial-spend` limits the agent’s metered spend per trial attempt. Verifier judges and trace analysis have separate budgets. See [job costs](/core-concepts/jobs#spend-and-retries).
395
+ ### Provider keys and metering
39
396
 
40
- Requests that bypass the gateway with separately supplied credentials are not metered by Evolve. A task's `no-network` agent policy restricts model access to the platform gateway.
397
+ With your own supported provider key, model requests bill that provider account. Evolve gateway metering and the trial cap still apply. Job creation still requires a positive platform credit balance.
41
398
 
42
- If you enable your own provider key, supported model requests bill that provider account. Gateway metering and the cap still apply. Job creation still rejects accounts with an exhausted platform credit balance.
399
+ Requests that bypass the gateway with separate credentials are not metered by Evolve. A task's `no-network` agent policy restricts model access to the platform gateway.
43
400
 
44
- ## Reasoning effort
401
+ ## Analysis and check models
45
402
 
46
- `--effort` applies to every arm in the CLI run. Accepted values depend on the harness:
403
+ Analysis and task checks choose their agent and model separately from the evaluation arms.
47
404
 
48
- | Harness behavior | How to configure it |
405
+ | Operation | Agent / model options |
49
406
  | --- | --- |
50
- | Supports effort levels | Use a value from `limits.job.reasoning_efforts` |
51
- | Qwen thinking mode | Use `off` or `minimal` to disable thinking; `medium` or `thinking` to enable it |
52
- | Custom agent | Configure reasoning in its run command |
53
-
54
- When omitted, Evolve resolves the harness's default and records it in `agent_info.reasoning_effort`. The same harness and model at different efforts are distinct arms.
55
-
56
- In `/api/meta`, `agents[].effort_support` identifies the mode: `level`, `binary`, or `none`. Qwen's accepted values are listed in `limits.job.binary_effort_values`.
407
+ | `evolve analyze` | `-a` / `-m` |
408
+ | `evolve check` | `-a` / `-m` |
409
+ | Analysis during `evolve run` | `--analyze-agent` / `--analyze-model` |
57
410
 
58
- ## Analysis and check models
411
+ The default harness is `claude`. An omitted model uses `openrouter/deepseek/deepseek-v4.1-flash` when the selected harness offers it; otherwise it uses that harness's default model. A named model must belong to the selected harness's table above.
59
412
 
60
- Trace analysis and task checks run on Claude Code unless you choose another agent. Select their agent and model separately from the evaluation arms:
413
+ ```bash Analysis defaults
414
+ evolve analyze --show-defaults -a codex
415
+ ```
61
416
 
62
- | Operation | Agent option | Model option |
63
- | --- | --- | --- |
64
- | `evolve analyze` | `-a` | `-m` |
65
- | `evolve check` | `-a` | `-m` |
66
- | Analysis attached to `evolve run` | `--analyze-agent` | `--analyze-model` |
417
+ ```bash Check defaults
418
+ evolve check --show-defaults -a codex
419
+ ```
67
420
 
68
- Omit the model and the agent runs its default: `openrouter/deepseek/deepseek-v4.1-flash` on every agent whose models include it, otherwise that agent's own default model. A model you name must be one of the chosen agent's models. In `/api/meta`, `analyze.agents` lists the agents these commands accept, each agent's default model and models, and the effort each model runs at when you pass none. `evolve analyze --show-defaults -a <agent>` prints what that agent runs under.
421
+ Analysis and checks have their own model and effort defaults. Read them with `--show-defaults`.
69
422
 
70
423
  **[Configure a run](/cli-reference/run)**
71
424
 
72
- All model, effort, concurrency, and budget options.
425
+ Model comparisons, effort, concurrency, and spend controls.
@@ -5,7 +5,7 @@ description: "Read task-quality findings and open the evidence behind them."
5
5
 
6
6
  Find a check in **Jobs** under kind **Check**, or open a job's **Check** tab to see checks of its tasks.
7
7
 
8
- ![A task quality report showing its chip, criterion outcomes, and checker cost.](/images/dashboard-task-check.png)
8
+ ![A task quality report showing its summary label, criterion outcomes, and checker cost.](/images/dashboard-task-check.png)
9
9
 
10
10
  *Read the overall finding, then inspect the criterion evidence.*
11
11
 
@@ -13,7 +13,7 @@ Find a check in **Jobs** under kind **Check**, or open a job's **Check** tab to
13
13
  Check report
14
14
  ├── Source tasks + model + effort + cost
15
15
  └── Task results
16
- ├── Summary chip (computed from the outcomes)
16
+ ├── Summary label
17
17
  ├── Criterion outcomes and evidence
18
18
  └── Checker trace
19
19
  ```
@@ -47,7 +47,9 @@ The header identifies the check, source, model, effort, status, and cost. Each t
47
47
  | **No problem found** | Check execution findings before treating it as a runtime validation. |
48
48
  | Failed task check | Read its failure; this is a failed review, not a task-quality result. |
49
49
 
50
- The chip is a summary the dashboard computes from the criterion outcomes. Under a custom rubric the chip reads **Has a problem** when any criterion fails, **Unclear** when none fails but at least one is unknown, and **No problem found** otherwise. Under a rubric with the default criterion names the same rule applies, with two exceptions: an unknown on one of the default rubric's execution criteria does not make the chip unclear but marks it not executed; and `attempt_isolation` counts only when it fails. The chip and its not executed note summarize the outcomes; neither is a separate execution audit. See [the check result](/core-concepts/check#the-result).
50
+ The dashboard computes this summary label from the criterion outcomes. Open the findings to read their explanations and evidence.
51
+
52
+ With the default rubric, **Not executed** means at least one execution criterion is `unknown`; **Executed** means none is `unknown`. The note summarizes those findings, so read their evidence before treating the check as runtime validation. See [the exact result rules](/core-concepts/check#the-result).
51
53
 
52
54
  **[Check reference](/cli-reference/check)**
53
55
 
@@ -91,7 +91,7 @@ The summary separates completed, failed, and pending analyses, plus their cost.
91
91
 
92
92
  2. Review **criterion totals**: pass, fail, not applicable, and unknown.
93
93
 
94
- 3. Open **per-trial findings**: the summary chip, criterion outcomes, evidence, and summary.
94
+ 3. Open **per-trial findings**: the summary label, criterion outcomes, evidence, and summary.
95
95
 
96
96
  4. Follow the **analyzer trace**.
97
97
 
@@ -91,7 +91,9 @@ codex = await analyses().defaults(agent="codex")
91
91
  print(codex["model_name"], codex["reasoning_effort"])
92
92
  ```
93
93
 
94
- The response includes `agent`, `model_name`, `rubric`, `prompt`, `reasoning_effort`, and `sandbox_provider`. The prompt is the editable template text. Pass an agent to read what that agent runs under when you name no model: its default model and the effort that model takes.
94
+ The response includes `agent`, `model_name`, `rubric`, `prompt`, `reasoning_effort`, and `sandbox_provider`. The prompt is the editable template text.
95
+
96
+ Omit `agent` for `claude` defaults. Pass it to read another harness's analysis model default and that model's default effort. See [supported models and efforts](/core-concepts/models#analysis-and-check-models).
95
97
 
96
98
  A custom analyze prompt may use `{trial_path}`, `{task_section}`, and `{criteria_guidance}`. The required result schema is appended by the platform. See [analysis concepts](/core-concepts/analyze) for rubric design.
97
99
 
@@ -110,7 +112,9 @@ async for result in analyses().list(job=job_id):
110
112
 
111
113
  List options: `scope`, `job`, `status` list, `limit`, `cursor`. Status values are `queued`, `running`, `completed`, `failed`.
112
114
 
113
- The latest analysis also appears on `trial.analysis`. Each criterion reports `pass`, `fail`, `not_applicable`, or `unknown`, with an explanation and evidence. Evolve derives no verdict from them; compute what you need from the criteria.
115
+ The latest analysis also appears on `trial.analysis`. Each criterion reports `pass`, `fail`, `not_applicable`, or `unknown`, with an explanation and evidence.
116
+
117
+ The API returns no overall verdict. Use `checks` for your own result handling; the dashboard's [summary label](/core-concepts/analyze#the-result) is computed from those outcomes.
114
118
 
115
119
  ## Inspect the analyzer run
116
120
 
@@ -87,7 +87,9 @@ codex = await client.defaults(agent="codex")
87
87
  print(codex["model_name"], codex["reasoning_effort"])
88
88
  ```
89
89
 
90
- Defaults include agent, model, rubric, prompt, effort, and provider. Pass an agent to read what that agent runs under when you name no model: its default model and the effort that model takes. Check prompt tokens are `{task_path}`, `{file_tree}`, and `{criteria_guidance}`. They differ from analysis prompt tokens.
90
+ Defaults include agent, model, rubric, prompt, effort, and provider. Omit `agent` for `claude` defaults. Pass it to read another harness's check model default and that model's default effort. See [supported models and efforts](/core-concepts/models#analysis-and-check-models).
91
+
92
+ Check prompt tokens are `{task_path}`, `{file_tree}`, and `{criteria_guidance}`. They differ from analysis prompt tokens.
91
93
 
92
94
  ## Understand the result
93
95
 
@@ -114,7 +116,7 @@ Each task can be `queued`, `running`, `completed`, or `failed`. The check become
114
116
 
115
117
  **Note:**
116
118
 
117
- Evolve derives no verdict from a result. Read the criterion outcomes and evidence; the default rubric's execution criteria say whether the checker ran the task.
119
+ The API returns no overall verdict or separate execution flag. Read `checks` for outcomes and evidence. An unknown execution criterion leaves that part of the task's runtime behavior unresolved; see [how to read a check result](/core-concepts/check#the-result).
118
120
 
119
121
  ## Read and follow checks
120
122
 
@@ -123,7 +125,7 @@ Evolve derives no verdict from a result. Read the criterion outcomes and evidenc
123
125
  | `get(id)` | Full check and its task results |
124
126
  | `list(...)` | `scope`, `status` list, `dataset`, `limit`, `cursor`; paginated handle |
125
127
  | `watch(id, ...)` | Wait until completed; callback on changes |
126
- | `defaults({ agent })` | Current policy and editable prompt; with an agent, what that agent runs under |
128
+ | `defaults({ agent })` | Rubric, editable prompt, and settings for the selected harness |
127
129
 
128
130
  Watch options are `onProgress`, `pollIntervalMs`, `signal` in TypeScript; `on_progress`, `poll_interval_s`, `timeout_s` in Python. Polling starts at 2 seconds and slows to 30 seconds while unchanged.
129
131
 
@@ -5,7 +5,7 @@ description: "Every known code, what it means, and what to do next."
5
5
 
6
6
  Use `code` to identify a failure. Read `param` for the input to fix and `details` for the full context. See [Errors](/sdk-reference/errors) for TypeScript and Python handlers.
7
7
 
8
- This catalog covers all 122 codes known to the SDK. A newer server can add codes; [Meta](/sdk-reference/meta) lists the deployment's vocabulary.
8
+ This catalog covers the SDK's known error codes. A newer server can add codes; [Meta](/sdk-reference/meta) lists the deployment's vocabulary.
9
9
 
10
10
  **Info:**
11
11
 
@@ -229,4 +229,4 @@ These are capacity limits, separate from request rate limits. Each response prov
229
229
  | --- | --- |
230
230
  | `internal_error` | The server encountered an unexpected failure. Keep the request ID when reporting it. |
231
231
 
232
- `unknown_error` is an SDK fallback when a response provides no usable code. It is not one of the 122 codes above. Preserve the status, message, and request ID rather than guessing a cause.
232
+ `unknown_error` is an SDK fallback when a response provides no usable code. It is not a server error code. Preserve the status, message, and request ID rather than guessing a cause.
@@ -57,7 +57,7 @@ job = await client.start(
57
57
  | Input | Fields |
58
58
  | --- | --- |
59
59
  | `datasets` | One or more selectors. Required: `name`. Optional: `version`, `task_names`, `exclude_task_names`, `n_tasks`. Omitted version selects the active version. Filters accept glob patterns; the cap applies after filters. |
60
- | `agents` | One or more arms. Required: `name`, `model_name`. Optional: `version`, `reasoning_effort`, `kwargs`, `preset`, `skills`. Use [capabilities](/sdk-reference/meta) for supported values. |
60
+ | `agents` | One or more arms. Required: `name`, `model_name`. Optional: `version`, `reasoning_effort`, `kwargs`, `preset`, `skills`. Use [capabilities](/sdk-reference/meta) for accepted inputs. |
61
61
 
62
62
  Python also accepts `DatasetSelector` and `AgentArm` dataclass instances in these lists.
63
63
 
@@ -30,12 +30,12 @@ Also available as `hosted().meta()` in both languages.
30
30
 
31
31
  | Field | Use it to answer |
32
32
  | --- | --- |
33
- | `agents` | Which harnesses run? Which models, efforts, versions, kwargs, and presets do they support? |
33
+ | `agents` | Which harnesses run? Which model names, effort inputs, versions, and presets does the API accept? |
34
34
  | `retired_agents` | Which harnesses are retired, and which harness replaces each? |
35
35
  | `sandbox_providers` | Which providers support the task's resources and features? |
36
36
  | `platform_constraints` | Which requirements cannot run on this deployment? |
37
37
  | `network_modes` | Which network modes can a task declare? |
38
- | `analyze` | Which agents can analyses and checks run on, with which models and reasoning efforts? |
38
+ | `analyze` | Which agents, models, effort inputs, and configured defaults do analyses and checks accept? |
39
39
  | `limits` | What are the current defaults and bounds for jobs, pages, uploads, and comparisons? |
40
40
  | `statuses` | Which states exist, and which are terminal? |
41
41
  | `agent_registration` | Which names, environment keys, and upload sizes can a custom agent use? |
@@ -44,7 +44,7 @@ Also available as `hosted().meta()` in both languages.
44
44
 
45
45
  **Tip:**
46
46
 
47
- Read capabilities when building a picker or validating a saved configuration. A documented example is useful; a fixed copy of the platform's model catalog becomes stale.
47
+ Read capabilities when building a picker or validating a saved configuration. For reasoning options by model, see the [model reference](/core-concepts/models#model-and-effort-reference).
48
48
 
49
49
  ## Configuration
50
50