Skip to main content
Upload results you already ran elsewhere. Evolve imports the records; it does not rerun the evaluation. Have an SDK session log? Follow Upload an SDK run to find it, package one run, and inspect the imported trace.
The CLI waits for import by default. Use --no-wait to return the import ID immediately, then follow it:

What a job folder holds

A Harbor job directory can be uploaded directly. It requires config.json and result.json at the root, plus result.json in each trial folder.
Missing optional data stays missing. An imported trial without a trace does not acquire a synthetic trace.

What result.json must hold

This is a minimal illustrative trial record with a reward. Replace the task, agent, model, and result with the facts of your run.
The first seven top-level keys are required. verifier_result is optional. Include agent_result for recorded token and cost data, and exception_info for a failure.

What lands

Reported costs and totals remain identified as uploaded data. They are not charges for a new Evolve execution. Imported Harbor analyses preserve their summary and criterion outcomes. Agent, model, rubric, sandbox, and evidence fields remain null because the source file does not record them. An invalid analysis.json is retained as a file, with a reason on the trial; it does not reject the trial. You can run a new Evolve analysis separately.
Uploaded jobs support inspection, download, analysis, and sharing. Resume, retry, and regrade are refused with job_uploaded.

Task linkage

Analysis is more useful when it can also read the task files.
1

Upload trials

Supply the recorded job and trial files.
2

Resolve task identity

Use the first applicable case:
  • Case A: -d name@version supplied. Match the task name in that version.
  • Case B: the archive names accessible dataset versions. Match the task-content hash within those versions.
  • Case C: neither applies. Match the task-content hash in the accessible catalog.
3

Analyze

  • Linked task: Read the trial record and task files.
  • Unlinked task: Read the trial record only. The missing link is reported.
A task name alone does not establish an automatic content match. upload.task_links records the matching method or why a link was not found.

Runs made with the Evolve SDK

An individual managed-agent run is not a job archive. Upload an SDK run provides the local log path, field mapping, packaging script, and upload commands. Use agent/trajectory.json for ATIF. Native transcripts must use the harness’s recognized session path; arbitrary files under agent/ are stored but are not automatically parsed as a trace.
A native transcript that produces parsed events takes precedence over ATIF. Otherwise, the parser falls back to ATIF. ATIF can include a system step when the system prompt is available in your source records.

Bounds and duplicates

Inspect the import result, including skipped trials and their reasons. A completed import can have omissions. The capability document reports limits.uploads.job_archive_bytes. Local dataset and job archives larger than 256 MiB use resumable upload automatically.

Upload reference

Import options and progress commands.

Analyze imported results

Review behavior using the retained evidence.
Last modified on November 9, 2026