@evolvingmachines/evolve 0.0.65 → 0.0.67-train-harness-wave-2026-09-25.20260926.e00a8a6d
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/dist/{chunk-DK2MGUPB.js → chunk-DI6LPW2B.js} +2 -2
- package/dist/cli/index.cjs +29 -29
- package/dist/cli/index.d.cts +3 -3
- package/dist/cli/index.d.ts +3 -3
- package/dist/cli/index.js +18 -18
- package/dist/index.cjs +64 -60
- package/dist/index.d.cts +297 -18
- package/dist/index.d.ts +297 -18
- package/dist/index.js +48 -44
- package/dist/{types-B_qmzlMk.d.cts → types-Dj0iMl5V.d.cts} +70 -90
- package/dist/{types-B_qmzlMk.d.ts → types-Dj0iMl5V.d.ts} +70 -90
- package/harness-capabilities.json +285 -0
- package/package.json +9 -6
- package/skills/create-adapter/SKILL.md +71 -26
- package/skills/create-task/SKILL.md +124 -66
- package/skills/evolve/SKILL.md +37 -20
- package/skills/evolve-evals/SKILL.md +142 -69
- package/skills/evolve-evals/references/cli-reference/agent.md +76 -0
- package/skills/evolve-evals/references/cli-reference/analysis.md +78 -0
- package/skills/evolve-evals/references/cli-reference/analyze.md +97 -0
- package/skills/evolve-evals/references/cli-reference/auth.md +96 -0
- package/skills/evolve-evals/references/cli-reference/check.md +157 -0
- package/skills/evolve-evals/references/cli-reference/dataset.md +154 -0
- package/skills/evolve-evals/references/cli-reference/filesystem.md +168 -0
- package/skills/evolve-evals/references/cli-reference/index.md +149 -0
- package/skills/evolve-evals/references/cli-reference/job.md +198 -0
- package/skills/evolve-evals/references/cli-reference/run.md +188 -0
- package/skills/evolve-evals/references/cli-reference/secrets.md +77 -0
- package/skills/evolve-evals/references/cli-reference/session.md +56 -0
- package/skills/evolve-evals/references/cli-reference/skill.md +52 -0
- package/skills/evolve-evals/references/cli-reference/skills.md +85 -0
- package/skills/evolve-evals/references/cli-reference/trial.md +115 -0
- package/skills/evolve-evals/references/cli-reference/upload.md +72 -0
- package/skills/evolve-evals/references/core-concepts/agents.md +101 -0
- package/skills/evolve-evals/references/core-concepts/analyze.md +143 -0
- package/skills/evolve-evals/references/core-concepts/check.md +116 -0
- package/skills/evolve-evals/references/core-concepts/compatibility.md +39 -0
- package/skills/evolve-evals/references/core-concepts/compose.md +103 -0
- package/skills/evolve-evals/references/core-concepts/datasets.md +234 -0
- package/skills/evolve-evals/references/core-concepts/index.md +52 -0
- package/skills/evolve-evals/references/core-concepts/jobs.md +223 -0
- package/skills/evolve-evals/references/core-concepts/models.md +73 -0
- package/skills/evolve-evals/references/core-concepts/multi-step.md +93 -0
- package/skills/evolve-evals/references/core-concepts/rewardkit.md +341 -0
- package/skills/evolve-evals/references/core-concepts/sandboxes.md +73 -0
- package/skills/evolve-evals/references/core-concepts/secrets.md +86 -0
- package/skills/evolve-evals/references/core-concepts/sharing.md +81 -0
- package/skills/evolve-evals/references/core-concepts/skills.md +100 -0
- package/skills/evolve-evals/references/core-concepts/task-config.md +169 -0
- package/skills/evolve-evals/references/core-concepts/task-environment.md +127 -0
- package/skills/evolve-evals/references/core-concepts/task-reference.md +191 -0
- package/skills/evolve-evals/references/core-concepts/task-verifiers.md +209 -0
- package/skills/evolve-evals/references/core-concepts/tasks.md +90 -0
- package/skills/evolve-evals/references/core-concepts/teams.md +128 -0
- package/skills/evolve-evals/references/core-concepts/trial-outputs.md +225 -0
- package/skills/evolve-evals/references/core-concepts/trials.md +129 -0
- package/skills/evolve-evals/references/core-concepts/upload-sdk-session.md +240 -0
- package/skills/evolve-evals/references/core-concepts/upload.md +166 -0
- package/skills/evolve-evals/references/dashboard/checks.md +54 -0
- package/skills/evolve-evals/references/dashboard/datasets.md +65 -0
- package/skills/evolve-evals/references/dashboard/jobs.md +106 -0
- package/skills/evolve-evals/references/dashboard/traces.md +54 -0
- package/skills/evolve-evals/references/dashboard/trial-viewer.md +77 -0
- package/skills/evolve-evals/references/getting-started/first-task.md +228 -0
- package/skills/evolve-evals/references/getting-started/installation.md +79 -0
- package/skills/evolve-evals/references/getting-started/quick-start.md +100 -0
- package/skills/evolve-evals/references/index.md +58 -0
- package/skills/evolve-evals/references/sdk/http.md +110 -0
- package/skills/evolve-evals/references/sdk/python.md +108 -0
- package/skills/evolve-evals/references/sdk/typescript.md +104 -0
- package/skills/evolve-evals/references/sdk-reference/agents.md +75 -0
- package/skills/evolve-evals/references/sdk-reference/analyses.md +125 -0
- package/skills/evolve-evals/references/sdk-reference/auth.md +171 -0
- package/skills/evolve-evals/references/sdk-reference/checks.md +146 -0
- package/skills/evolve-evals/references/sdk-reference/datasets.md +170 -0
- package/skills/evolve-evals/references/sdk-reference/error-codes.md +231 -0
- package/skills/evolve-evals/references/sdk-reference/errors.md +98 -0
- package/skills/evolve-evals/references/sdk-reference/filesystem.md +166 -0
- package/skills/evolve-evals/references/sdk-reference/index.md +161 -0
- package/skills/evolve-evals/references/sdk-reference/jobs.md +250 -0
- package/skills/evolve-evals/references/sdk-reference/meta.md +54 -0
- package/skills/evolve-evals/references/sdk-reference/methods/agents.md +154 -0
- package/skills/evolve-evals/references/sdk-reference/methods/analyses.md +211 -0
- package/skills/evolve-evals/references/sdk-reference/methods/auth.md +257 -0
- package/skills/evolve-evals/references/sdk-reference/methods/checks.md +462 -0
- package/skills/evolve-evals/references/sdk-reference/methods/datasets.md +687 -0
- package/skills/evolve-evals/references/sdk-reference/methods/filesystem.md +527 -0
- package/skills/evolve-evals/references/sdk-reference/methods/jobs.md +1023 -0
- package/skills/evolve-evals/references/sdk-reference/methods/meta.md +213 -0
- package/skills/evolve-evals/references/sdk-reference/methods/secrets.md +157 -0
- package/skills/evolve-evals/references/sdk-reference/methods/skills.md +125 -0
- package/skills/evolve-evals/references/sdk-reference/methods/trials.md +371 -0
- package/skills/evolve-evals/references/sdk-reference/secrets.md +104 -0
- package/skills/evolve-evals/references/sdk-reference/skills.md +66 -0
- package/skills/evolve-evals/references/sdk-reference/trials.md +164 -0
- package/skills/evolve-evals/references/sdk-reference/types.md +1255 -0
- package/skills/publish/SKILL.md +103 -79
- package/skills/rewardkit/SKILL.md +78 -23
- package/spec/openapi.yaml +164 -160
- package/skills/evolve-evals/references/cli-reference/agent.mdx +0 -79
- package/skills/evolve-evals/references/cli-reference/analysis.mdx +0 -160
- package/skills/evolve-evals/references/cli-reference/analyze.mdx +0 -84
- package/skills/evolve-evals/references/cli-reference/auth.mdx +0 -133
- package/skills/evolve-evals/references/cli-reference/check.mdx +0 -263
- package/skills/evolve-evals/references/cli-reference/dataset.mdx +0 -151
- package/skills/evolve-evals/references/cli-reference/index.mdx +0 -108
- package/skills/evolve-evals/references/cli-reference/job.mdx +0 -278
- package/skills/evolve-evals/references/cli-reference/run.mdx +0 -204
- package/skills/evolve-evals/references/cli-reference/secrets.mdx +0 -95
- package/skills/evolve-evals/references/cli-reference/skill.mdx +0 -61
- package/skills/evolve-evals/references/cli-reference/skills.mdx +0 -81
- package/skills/evolve-evals/references/cli-reference/trial.mdx +0 -181
- package/skills/evolve-evals/references/cli-reference/upload.mdx +0 -36
- package/skills/evolve-evals/references/core-concepts/agents.mdx +0 -106
- package/skills/evolve-evals/references/core-concepts/analyze.mdx +0 -86
- package/skills/evolve-evals/references/core-concepts/check.mdx +0 -64
- package/skills/evolve-evals/references/core-concepts/datasets.mdx +0 -138
- package/skills/evolve-evals/references/core-concepts/index.mdx +0 -42
- package/skills/evolve-evals/references/core-concepts/jobs.mdx +0 -151
- package/skills/evolve-evals/references/core-concepts/models.mdx +0 -68
- package/skills/evolve-evals/references/core-concepts/sandboxes.mdx +0 -52
- package/skills/evolve-evals/references/core-concepts/secrets.mdx +0 -41
- package/skills/evolve-evals/references/core-concepts/sharing.mdx +0 -35
- package/skills/evolve-evals/references/core-concepts/skills.mdx +0 -42
- package/skills/evolve-evals/references/core-concepts/tasks.mdx +0 -216
- package/skills/evolve-evals/references/core-concepts/teams.mdx +0 -36
- package/skills/evolve-evals/references/core-concepts/trial-outputs.mdx +0 -117
- package/skills/evolve-evals/references/core-concepts/trials.mdx +0 -103
- package/skills/evolve-evals/references/core-concepts/upload.mdx +0 -93
- package/skills/evolve-evals/references/dashboard/checks.mdx +0 -21
- package/skills/evolve-evals/references/dashboard/datasets.mdx +0 -24
- package/skills/evolve-evals/references/dashboard/jobs.mdx +0 -65
- package/skills/evolve-evals/references/dashboard/traces.mdx +0 -17
- package/skills/evolve-evals/references/dashboard/trial-viewer.mdx +0 -30
- package/skills/evolve-evals/references/getting-started/installation.mdx +0 -56
- package/skills/evolve-evals/references/getting-started/quick-start.mdx +0 -94
- package/skills/evolve-evals/references/index.mdx +0 -48
- package/skills/evolve-evals/references/sdk/python.mdx +0 -161
- package/skills/evolve-evals/references/sdk/typescript.mdx +0 -163
- package/skills/evolve-evals/references/sdk-reference/agents.mdx +0 -108
- package/skills/evolve-evals/references/sdk-reference/analyses.mdx +0 -222
- package/skills/evolve-evals/references/sdk-reference/auth.mdx +0 -116
- package/skills/evolve-evals/references/sdk-reference/checks.mdx +0 -300
- package/skills/evolve-evals/references/sdk-reference/datasets.mdx +0 -346
- package/skills/evolve-evals/references/sdk-reference/errors.mdx +0 -210
- package/skills/evolve-evals/references/sdk-reference/index.mdx +0 -60
- package/skills/evolve-evals/references/sdk-reference/jobs.mdx +0 -822
- package/skills/evolve-evals/references/sdk-reference/meta.mdx +0 -52
- package/skills/evolve-evals/references/sdk-reference/skills.mdx +0 -69
- package/skills/evolve-evals/references/sdk-reference/trials.mdx +0 -302
- package/skills/evolve-evals/references/sdk-reference/types.mdx +0 -274
- package/skills/evolve-evals/references/snippets/global-options.mdx +0 -13
- package/skills/evolve-evals/references/snippets/list-flags.mdx +0 -23
package/skills/publish/SKILL.md
CHANGED
|
@@ -1,146 +1,170 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: publish
|
|
3
|
-
description: Publish
|
|
3
|
+
description: Publish Harbor-format task datasets or upload existing results to Evolve, including recorded Evolve SDK runs packaged as jobs. Use when the user wants to publish a benchmark, upload tasks, or turn an SDK session into an evaluation job.
|
|
4
4
|
metadata:
|
|
5
5
|
internal: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
Walk them through each step, checking prerequisites and confirming before running
|
|
10
|
-
commands that upload.
|
|
8
|
+
# Publish to Evolve
|
|
11
9
|
|
|
12
|
-
|
|
10
|
+
Publish tasks for future evaluations, or import results from a run that already happened. Both workflows use Evolve.
|
|
13
11
|
|
|
14
|
-
|
|
12
|
+
| What the user has | Start here |
|
|
13
|
+
| --- | --- |
|
|
14
|
+
| A folder or repository of tasks | Publish a dataset below. For the task layout, read `evolve skills get create-task`. |
|
|
15
|
+
| A completed job folder or archive | Import results below. |
|
|
16
|
+
| A recorded Evolve SDK session | Read `evolve skills get evals core-concepts/upload-sdk-session` before packaging it. |
|
|
15
17
|
|
|
16
|
-
|
|
17
|
-
(https://dashboard.evolvingmachines.ai/api-keys) and export it. Every command reads
|
|
18
|
-
`EVOLVE_API_KEY`.
|
|
19
|
-
```bash
|
|
20
|
-
export EVOLVE_API_KEY="<your key>"
|
|
21
|
-
evolve auth status
|
|
22
|
-
```
|
|
23
|
-
`auth status` prints who the platform thinks you are and which key is in use.
|
|
18
|
+
## Setup, when needed
|
|
24
19
|
|
|
25
|
-
|
|
26
|
-
`instruction.md`, `tests/test.sh`, and an `environment/` folder unless `task.toml`
|
|
27
|
-
names a prebuilt `docker_image` (`evolve skills get create-task` has the format). The
|
|
28
|
-
directory name is the task's name: letters, digits, `.`, `_` and `-`, at most 128
|
|
29
|
-
characters, starting with a letter or digit; use lowercase (Harbor's convention). A
|
|
30
|
-
`dataset.toml` manifest at the root is optional.
|
|
20
|
+
Use the installed CLI; install only if missing: `npm install -g @evolvingmachines/evolve`. Confirm authentication with `evolve auth status`. If needed, set `EVOLVE_API_KEY` using a key from https://dashboard.evolvingmachines.ai/api-keys.
|
|
31
21
|
|
|
32
|
-
|
|
22
|
+
Publishing or importing is a remote mutation. Proceed when the user's request authorizes it; otherwise prepare the exact command and explain what it uploads. An upload request does not authorize emailing or sharing results. For explicit sharing requests, read `evolve skills get evals core-concepts/sharing`.
|
|
33
23
|
|
|
34
|
-
|
|
35
|
-
flag.
|
|
24
|
+
## Publish a dataset
|
|
36
25
|
|
|
37
|
-
### 1. Check the
|
|
26
|
+
### 1. Check the tasks
|
|
27
|
+
|
|
28
|
+
Inspect the task directories and any `dataset.toml`, then validate their metadata:
|
|
38
29
|
|
|
39
30
|
```bash
|
|
40
|
-
evolve dataset check
|
|
31
|
+
evolve dataset check ./tasks
|
|
41
32
|
```
|
|
42
33
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
reads each task and, when it can, runs its environment, reference solution and verifier,
|
|
47
|
-
then rules on a rubric.
|
|
34
|
+
This sends each `task.toml` and the optional manifest to Evolve. It does not publish the corpus or run the tasks. Fix refused fields before continuing.
|
|
35
|
+
|
|
36
|
+
For an agent-based quality review, use `evolve check ./tasks --watch`. This uploads tasks and incurs agent usage. Read the findings and trace: Evolve derives no verdict from the result, and `unknown` on the default rubric's execution criteria is not proof that the reference solution and verifier were executed successfully. See `evolve skills get evals core-concepts/check`.
|
|
48
37
|
|
|
49
|
-
### 2.
|
|
38
|
+
### 2. Choose one source and publish
|
|
50
39
|
|
|
51
|
-
|
|
40
|
+
**Local directory**
|
|
52
41
|
|
|
53
42
|
```bash
|
|
54
43
|
evolve dataset publish \
|
|
55
|
-
--dir
|
|
56
|
-
--name
|
|
44
|
+
--dir ./tasks \
|
|
45
|
+
--name my-benchmark \
|
|
57
46
|
--version 1.0 \
|
|
58
47
|
--watch
|
|
59
48
|
```
|
|
60
49
|
|
|
61
|
-
|
|
62
|
-
and may be omitted. The pre-flight runs automatically before the upload;
|
|
63
|
-
`--skip-preflight` uploads without it, and a task the check would have refused then fails
|
|
64
|
-
at import instead.
|
|
50
|
+
A `dataset.toml` can supply the name and version. Local publishing runs metadata preflight automatically; `--skip-preflight` skips that early check, not import validation.
|
|
65
51
|
|
|
66
|
-
|
|
52
|
+
**Git repository**
|
|
67
53
|
|
|
68
54
|
```bash
|
|
69
55
|
evolve dataset publish \
|
|
70
|
-
--git https://github.com/acme/
|
|
56
|
+
--git https://github.com/acme/tasks.git \
|
|
71
57
|
--ref v1.0.0 \
|
|
72
|
-
--
|
|
58
|
+
--path benchmark \
|
|
59
|
+
--name my-benchmark \
|
|
73
60
|
--version 1.0 \
|
|
74
61
|
--watch
|
|
75
62
|
```
|
|
76
63
|
|
|
77
|
-
|
|
78
|
-
refused. `--path <subfolder>` imports one folder of a larger repository.
|
|
64
|
+
Pin a tag or a full 40-character commit SHA. Branch names are refused. Omit `--path` to use the repository root.
|
|
79
65
|
|
|
80
|
-
|
|
66
|
+
**Public HTTPS archive**
|
|
81
67
|
|
|
82
68
|
```bash
|
|
83
|
-
evolve dataset publish
|
|
69
|
+
evolve dataset publish \
|
|
70
|
+
--from https://example.com/tasks.tar.gz \
|
|
71
|
+
--name my-benchmark \
|
|
72
|
+
--version 1.0 \
|
|
73
|
+
--watch
|
|
84
74
|
```
|
|
85
75
|
|
|
86
|
-
|
|
87
|
-
the Harbor hub. For a hub package the name and version default to the package's own.
|
|
88
|
-
|
|
89
|
-
### 3. Follow the publish
|
|
76
|
+
Evolve fetches the archive. Both Git and HTTPS sources require an explicit name and version.
|
|
90
77
|
|
|
91
|
-
|
|
92
|
-
on its own, so one broken task does not block the others; `--watch` ends with how many
|
|
93
|
-
built. If the terminal is gone, re-attach from any machine:
|
|
78
|
+
**Optional: import a public Harbor Hub package into Evolve**
|
|
94
79
|
|
|
95
80
|
```bash
|
|
96
|
-
evolve dataset
|
|
81
|
+
evolve dataset publish \
|
|
82
|
+
--from hub:cookbook/hello-world \
|
|
83
|
+
--watch
|
|
97
84
|
```
|
|
98
85
|
|
|
99
|
-
|
|
100
|
-
On your own dataset, `READY` also makes the version active, so the bare name runs it.
|
|
86
|
+
`hub:org/name[@ref]` is an accepted source; the destination is Evolve. Name and version may come from the package. Keep this syntax when importing an actual Harbor package.
|
|
101
87
|
|
|
102
|
-
|
|
88
|
+
For a new dataset, add `--org <organization>` to select an organization. Otherwise, Evolve uses the saved `evolve auth org use` default, then your personal organization. An existing dataset keeps its organization; an explicit or saved default that conflicts is refused. See `evolve skills get evals cli-reference/dataset` for all options.
|
|
89
|
+
|
|
90
|
+
### 3. Follow the import and inspect the result
|
|
91
|
+
|
|
92
|
+
`--watch` follows the import and build. To reconnect, use the complete import ID printed by publishing:
|
|
103
93
|
|
|
104
94
|
```bash
|
|
105
|
-
evolve dataset
|
|
106
|
-
evolve
|
|
95
|
+
evolve dataset watch "$IMPORT_ID"
|
|
96
|
+
evolve dataset show my-benchmark@1.0
|
|
107
97
|
```
|
|
108
98
|
|
|
109
|
-
|
|
110
|
-
|
|
99
|
+
`evolve dataset watch my-benchmark` also finds a live import. Use the import ID after it has settled.
|
|
100
|
+
|
|
101
|
+
A `READY` version needs at least one built task, but can contain failed tasks. Report the final state, name, version, built and failed counts, and failure reasons. A new ready version on your own dataset becomes active; a bare dataset name selects that active version.
|
|
102
|
+
|
|
103
|
+
### 4. Run or manage the version
|
|
104
|
+
|
|
105
|
+
When the user wants an evaluation, select the harness and model, then run the pinned version:
|
|
111
106
|
|
|
112
107
|
```bash
|
|
113
|
-
evolve
|
|
108
|
+
evolve run \
|
|
109
|
+
--dataset my-benchmark@1.0 \
|
|
110
|
+
--agent codex \
|
|
111
|
+
--model "<model>" \
|
|
112
|
+
--watch
|
|
114
113
|
```
|
|
115
114
|
|
|
116
|
-
|
|
115
|
+
Replace `<model>` with the selected model. Read `evolve skills get evals cli-reference/run` for job settings.
|
|
116
|
+
|
|
117
|
+
| Need | Command |
|
|
118
|
+
| --- | --- |
|
|
119
|
+
| Point the bare name at another `READY` version | `evolve dataset activate my-benchmark 1.0` |
|
|
120
|
+
| Download the original corpus package as its owner | `evolve dataset download my-benchmark@1.0 -o corpora/` |
|
|
121
|
+
| Fix tasks after a partial build | Publish the corrected corpus under a new version. |
|
|
122
|
+
|
|
123
|
+
## Import results
|
|
124
|
+
|
|
125
|
+
### 1. Prepare the job folder
|
|
126
|
+
|
|
127
|
+
An existing Harbor-format job folder can be uploaded directly. Before packaging another runner's files, read `evolve skills get evals core-concepts/upload` for the required layout and fields. The root needs `config.json` and `result.json`; each trial has its own `result.json`.
|
|
128
|
+
|
|
129
|
+
For an SDK session, read `evolve skills get evals core-concepts/upload-sdk-session` first. It shows the local log location, field mapping, and packaging script. A session can contain several runs or commands; do not assume one file is one trial. The example script supports one successful Codex or Claude run; the guide covers other cases.
|
|
130
|
+
|
|
131
|
+
Preserve recorded rewards in each trial's `verifier_result.rewards`. Without recorded rewards, the import has no score. Do not infer a score from agent completion.
|
|
132
|
+
|
|
133
|
+
### 2. Upload and follow
|
|
117
134
|
|
|
118
135
|
```bash
|
|
119
|
-
evolve
|
|
136
|
+
evolve upload ./completed-job -d my-benchmark@1.0
|
|
120
137
|
```
|
|
121
138
|
|
|
122
|
-
|
|
139
|
+
Use the job directory or its `.tar.gz`. Alternatively, use `evolve upload --from <public-https-archive-url>`. Omit `-d` if no published dataset should be linked; when supplied, it links trial tasks by name.
|
|
123
140
|
|
|
124
|
-
|
|
125
|
-
traces and rewards become a job you read like any other. Before packing a folder by
|
|
126
|
-
hand — runs made with the Evolve SDK, or any other runner — read what a trial folder
|
|
127
|
-
and its `result.json` must hold: `evolve skills get evals core-concepts/upload`. The
|
|
128
|
-
score lives in `result.json` as `verifier_result.rewards`; without it a trial arrives
|
|
129
|
-
with no score.
|
|
141
|
+
The CLI waits for the import by default. `--no-wait` returns the import record instead. Reconnect with:
|
|
130
142
|
|
|
131
143
|
```bash
|
|
132
|
-
evolve
|
|
144
|
+
evolve job imports --status RUNNING
|
|
145
|
+
evolve job import "$IMPORT_ID" --watch
|
|
133
146
|
```
|
|
134
147
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
follows the import until the job exists; `--no-wait` returns at once with the import id.
|
|
148
|
+
### 3. Inspect the imported job
|
|
149
|
+
|
|
150
|
+
Use the job ID from the completed import:
|
|
139
151
|
|
|
140
152
|
```bash
|
|
141
|
-
evolve job
|
|
142
|
-
evolve job
|
|
153
|
+
evolve job show "$JOB_ID"
|
|
154
|
+
evolve job trials "$JOB_ID"
|
|
143
155
|
```
|
|
144
156
|
|
|
145
|
-
|
|
146
|
-
|
|
157
|
+
Choose a trial ID from the listing, then read its transcript with `evolve trial trace "$TRIAL_ID"`. Check the task, harness, model, prompt, agent activity, and recorded scores. Report skipped trial folders and missing task links.
|
|
158
|
+
|
|
159
|
+
Imported jobs support analysis, but cannot be resumed, retried, or regraded. Read `evolve skills get evals cli-reference/upload` for all upload options.
|
|
160
|
+
|
|
161
|
+
## Use Python or TypeScript instead
|
|
162
|
+
|
|
163
|
+
Read `evolve skills get evals sdk-reference/index` for client setup, then the matching method reference:
|
|
164
|
+
|
|
165
|
+
| Operation | Read |
|
|
166
|
+
| --- | --- |
|
|
167
|
+
| Validate, publish, follow, activate, or download datasets | `evolve skills get evals sdk-reference/methods/datasets` |
|
|
168
|
+
| Upload a job and follow its import | `evolve skills get evals sdk-reference/methods/jobs` |
|
|
169
|
+
|
|
170
|
+
Both SDKs expose `datasets().preflight()` and `datasets().publish()`, plus `jobs().upload()`. Call preflight separately when publishing through an SDK. Publishing and uploading return import records; follow with `watchImport` in TypeScript or `watch_import` in Python. These calls do not convert SDK session logs into job folders; package the session first.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rewardkit
|
|
3
|
-
description: Write Harbor-format
|
|
3
|
+
description: Write verifiers for Evolve's Harbor-format tasks using Reward Kit. Use when creating or editing a
|
|
4
4
|
task's tests/ directory, adding grading criteria, setting up LLM/agent judges, or designing
|
|
5
5
|
verifiers that produce a reward score.
|
|
6
6
|
metadata:
|
|
@@ -11,6 +11,10 @@ Help the user write task verifiers with Reward Kit. Reward Kit is a lightweight
|
|
|
11
11
|
package that turns a directory of criteria files into a reward score. Each criterion is a
|
|
12
12
|
Python function call or a TOML judge file; folders become separate rewards.
|
|
13
13
|
|
|
14
|
+
The package keeps its upstream name, `harbor-rewardkit`. For Evolve's supported
|
|
15
|
+
setup and a complete example, read
|
|
16
|
+
`evolve skills get evals core-concepts/rewardkit`.
|
|
17
|
+
|
|
14
18
|
## Setup in a task
|
|
15
19
|
|
|
16
20
|
Put criteria alongside `test.sh` in the task's `tests/` directory:
|
|
@@ -22,17 +26,33 @@ tests/
|
|
|
22
26
|
└── judge.toml # optional LLM/agent judge
|
|
23
27
|
```
|
|
24
28
|
|
|
25
|
-
|
|
29
|
+
Install the package when the image builds, using Python 3.12 or newer. In shared
|
|
30
|
+
mode, add this to `environment/Dockerfile`; in separate mode, install it in the
|
|
31
|
+
verifier image:
|
|
32
|
+
|
|
33
|
+
```dockerfile
|
|
34
|
+
RUN pip install --no-cache-dir \
|
|
35
|
+
'harbor-rewardkit==0.2.1'
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Then write `tests/test.sh`:
|
|
26
39
|
```bash
|
|
27
40
|
#!/bin/bash
|
|
28
|
-
|
|
41
|
+
set -euo pipefail
|
|
42
|
+
python3 -m rewardkit /tests \
|
|
43
|
+
--workspace /app \
|
|
44
|
+
--output /logs/verifier/reward.json
|
|
29
45
|
```
|
|
30
46
|
|
|
31
47
|
This runs all criteria in `/tests/` against the workspace at `/app` and writes
|
|
32
|
-
`/logs/verifier/reward.json`.
|
|
48
|
+
`/logs/verifier/reward.json`. Adjust `--workspace` if the task uses another directory.
|
|
33
49
|
|
|
34
|
-
Run `evolve check "<task-path>" --watch`
|
|
35
|
-
solution
|
|
50
|
+
Run `evolve check "<task-path>" --watch` for task quality review. The checker
|
|
51
|
+
may run the reference solution and verifier when its environment supports
|
|
52
|
+
them; inspect its findings and evidence. The default rubric's execution
|
|
53
|
+
criteria say whether it ran the task; `unknown` on them is not proof that the
|
|
54
|
+
solution or verifier ran. Read `evolve skills get evals core-concepts/check`
|
|
55
|
+
for the result semantics.
|
|
36
56
|
|
|
37
57
|
If judge criteria need API keys, request them through `task.toml`:
|
|
38
58
|
```toml
|
|
@@ -40,11 +60,16 @@ If judge criteria need API keys, request them through `task.toml`:
|
|
|
40
60
|
ANTHROPIC_API_KEY = "${ANTHROPIC_API_KEY}"
|
|
41
61
|
```
|
|
42
62
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
63
|
+
Write the template literally as the whole value. Evolve supplies a scoped gateway
|
|
64
|
+
credential and base URL during verification. Set the judge model explicitly in
|
|
65
|
+
the TOML. Use `OPENAI_API_KEY` instead for an OpenAI-family judge.
|
|
66
|
+
|
|
67
|
+
On a job, `--ve REWARDKIT_JUDGE=<judge>` overrides the judge and
|
|
68
|
+
`--ve REWARDKIT_MODEL=<model>` selects an agent judge's model. These are the only
|
|
69
|
+
two job-level verifier environment overrides. Read
|
|
70
|
+
`evolve skills get evals cli-reference/run` for CLI options or
|
|
71
|
+
`evolve skills get evals sdk-reference/methods/jobs` for the Python and TypeScript
|
|
72
|
+
`start` inputs.
|
|
48
73
|
|
|
49
74
|
Ask whether Reward Kit should run in the agent's shared environment or in a
|
|
50
75
|
separate verifier environment. Prefer a separate verifier environment when judge
|
|
@@ -53,14 +78,14 @@ available to the agent:
|
|
|
53
78
|
|
|
54
79
|
```toml
|
|
55
80
|
[environment]
|
|
56
|
-
network_mode = "no-network" # Agent
|
|
81
|
+
network_mode = "no-network" # Agent can reach the Evolve model gateway
|
|
57
82
|
|
|
58
83
|
[verifier]
|
|
59
84
|
environment_mode = "separate"
|
|
60
85
|
|
|
61
86
|
[verifier.environment]
|
|
62
|
-
network_mode = "
|
|
63
|
-
docker_image
|
|
87
|
+
network_mode = "no-network" # Native judge calls use Evolve's gateway
|
|
88
|
+
# With no docker_image, build the verifier from tests/Dockerfile.
|
|
64
89
|
```
|
|
65
90
|
|
|
66
91
|
In shared mode, the verifier runs in the agent container and inherits
|
|
@@ -69,9 +94,9 @@ baseline is refused at import on Evolve, because a shared verify cannot switch
|
|
|
69
94
|
egress. If agent and verifier need different network access, use
|
|
70
95
|
`environment_mode = "separate"` and set `[verifier.environment].network_mode`.
|
|
71
96
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
`no-network`.
|
|
97
|
+
Evolve's native judge gateway is reachable with `no-network`. Other external
|
|
98
|
+
APIs need a `public` baseline or the required hosts in the verifier allowlist.
|
|
99
|
+
Programmatic checks that only read local files can also use `no-network`.
|
|
75
100
|
|
|
76
101
|
In separate mode with no `[verifier.environment].docker_image`, `tests/` is the
|
|
77
102
|
verifier image's build context and its `tests/Dockerfile` must provide
|
|
@@ -79,6 +104,12 @@ verifier image's build context and its `tests/Dockerfile` must provide
|
|
|
79
104
|
uploads `tests/` to `/tests` instead. When it pins a distinct image, that image
|
|
80
105
|
boots as it is with nothing uploaded, so it must carry `/tests/test.sh` itself.
|
|
81
106
|
|
|
107
|
+
For separate verification, declare the files to grade in the task's `artifacts`
|
|
108
|
+
list. The verifier does not receive the agent's whole workspace. Read
|
|
109
|
+
`evolve skills get evals core-concepts/task-verifiers` and
|
|
110
|
+
`evolve skills get evals core-concepts/task-config` for Evolve's file-transfer and
|
|
111
|
+
network rules.
|
|
112
|
+
|
|
82
113
|
## Programmatic criteria
|
|
83
114
|
|
|
84
115
|
Call built-ins from any `.py` file in `tests/`:
|
|
@@ -95,6 +126,10 @@ rk.json_key_equals("result.json", "status", "ok")
|
|
|
95
126
|
All criteria accept `weight` (default `1.0`) and `isolated` (default `False`, runs in
|
|
96
127
|
overlayfs so side effects don't leak).
|
|
97
128
|
|
|
129
|
+
Isolation needs working overlayfs support. If the image needs `fuse-overlayfs`,
|
|
130
|
+
install it at build time; do not rely on its runtime installer with restricted
|
|
131
|
+
network access. Confirm the sandbox permits the required mounts.
|
|
132
|
+
|
|
98
133
|
### Available built-ins
|
|
99
134
|
|
|
100
135
|
- **Files**: `file_exists`, `file_not_exists`, `file_contains`, `file_contains_regex`,
|
|
@@ -102,12 +137,17 @@ overlayfs so side effects don't leak).
|
|
|
102
137
|
- **Commands**: `command_succeeds`, `command_output_contains`, `command_output_matches`,
|
|
103
138
|
`command_output_matches_regex` (30s default timeout, optional `cwd`)
|
|
104
139
|
- **Data**: `json_key_equals`, `json_path_equals`, `csv_cell_equals`, `xlsx_cell_equals`
|
|
105
|
-
(needs `[
|
|
140
|
+
(needs `[documents]` extra), `sqlite_query_equals`
|
|
106
141
|
- **HTTP**: `http_status_equals`, `http_response_contains`
|
|
107
142
|
- **Images**: `image_similarity`, `image_size_equals` (needs `[image]` extra)
|
|
108
143
|
- **Trajectory**: `trajectory_tool_used`, `trajectory_tool_not_used`, `trajectory_turn_count`
|
|
109
144
|
|
|
110
|
-
|
|
145
|
+
Install needed extras in that same image: `harbor-rewardkit[documents]==0.2.1`
|
|
146
|
+
or `harbor-rewardkit[image]==0.2.1`. Use `[all]` only if both are needed.
|
|
147
|
+
|
|
148
|
+
Do not depend on downloading packages during verification. Evolve's offline
|
|
149
|
+
Reward Kit bundle is for judge-enabled runs and does not include optional
|
|
150
|
+
extras. Its `uvx` path cannot fetch versions or extras absent from the bundle.
|
|
111
151
|
|
|
112
152
|
## Custom criteria
|
|
113
153
|
|
|
@@ -143,7 +183,7 @@ For subjective checks (quality, readability, edge cases), create a TOML file:
|
|
|
143
183
|
|
|
144
184
|
```toml
|
|
145
185
|
[judge]
|
|
146
|
-
judge = "anthropic/claude-sonnet-
|
|
186
|
+
judge = "anthropic/claude-sonnet-4-6"
|
|
147
187
|
files = ["/app/main.py"]
|
|
148
188
|
|
|
149
189
|
[[criterion]]
|
|
@@ -169,7 +209,7 @@ Agent judges shell out to a CLI and can explore the filesystem:
|
|
|
169
209
|
```toml
|
|
170
210
|
[judge]
|
|
171
211
|
judge = "claude-code"
|
|
172
|
-
model = "anthropic/claude-sonnet-
|
|
212
|
+
model = "anthropic/claude-sonnet-4-6"
|
|
173
213
|
isolated = true
|
|
174
214
|
|
|
175
215
|
[[criterion]]
|
|
@@ -179,6 +219,10 @@ type = "binary"
|
|
|
179
219
|
|
|
180
220
|
Slower and more expensive than LLM judges, but they can run commands and inspect files.
|
|
181
221
|
|
|
222
|
+
Evolve supports `claude-code` and `codex` agent judges. Install the selected CLI
|
|
223
|
+
in the verifier image and request its matching provider credential. The managed
|
|
224
|
+
judge path does not supply verifier MCP tools or arbitrary provider credentials.
|
|
225
|
+
|
|
182
226
|
### Useful `[judge]` options
|
|
183
227
|
|
|
184
228
|
`timeout` (default 300), `reasoning_effort` (`low`|`medium`|`high`), `reference` (path to
|
|
@@ -289,8 +333,15 @@ weight unless that aggregation's inline map overrides them;
|
|
|
289
333
|
- `/logs/verifier/reward.json` — per-reward scores
|
|
290
334
|
- `/logs/verifier/reward-details.json` — per-criterion results, judge reasoning, errors
|
|
291
335
|
|
|
336
|
+
Evolve uses `reward` as the primary score, or the only value when there is one
|
|
337
|
+
key. Multiple dimensions without `reward` remain metrics but have no primary
|
|
338
|
+
score. Keep the primary score in `[0, 1]`.
|
|
339
|
+
|
|
292
340
|
## Multi-step tasks
|
|
293
341
|
|
|
342
|
+
Evolve currently requires shared verification for multi-step tasks; separate
|
|
343
|
+
verifier environments are rejected.
|
|
344
|
+
|
|
294
345
|
In a multi-step task, each step has its own `tests/` under
|
|
295
346
|
`steps/{name}/tests/`, and the verifier runs once per step. Reward Kit behaves
|
|
296
347
|
the same as in a single-step task: for each step it reads `/tests`, runs the
|
|
@@ -311,6 +362,9 @@ separate reward key for that step, and `multi_step_reward_strategy = "mean"`
|
|
|
311
362
|
averages each key across steps. Use `"final"` when the last step is an
|
|
312
363
|
end-to-end check whose rewards already represent the full task.
|
|
313
364
|
|
|
365
|
+
Read `evolve skills get evals core-concepts/multi-step` for Evolve's supported
|
|
366
|
+
step configuration and result layout.
|
|
367
|
+
|
|
314
368
|
## When to reach for what
|
|
315
369
|
|
|
316
370
|
- **Use built-ins** for file existence, string matches, command output, JSON/CSV checks,
|
|
@@ -326,5 +380,6 @@ end-to-end check whose rewards already represent the full task.
|
|
|
326
380
|
|
|
327
381
|
## Working example
|
|
328
382
|
|
|
329
|
-
|
|
330
|
-
|
|
383
|
+
Read `evolve skills get evals core-concepts/rewardkit` for a complete verifier,
|
|
384
|
+
or `evolve skills get evals getting-started/first-task` for the task's build,
|
|
385
|
+
publish, check, and evaluation workflow.
|