Back to .md Directory

Triggering Evals via GitHub Actions

How to kick off eval runs remotely using the `gh` CLI.

May 2, 2026
0 downloads
0 views
eval claude workflow
View source

Triggering Evals via GitHub Actions

How to kick off eval runs remotely using the gh CLI.

For local runs, CLI options, plugin system, and result analysis, see eval/README.md. For dataset management, see docs/EVAL_DATA.md. For past run analyses, see eval/analyses/README.md.

Best known configuration (65% — run-026)

gh workflow run eval.yml \
  -f benchmark=arc \
  -f model="anthropic/claude-opus-4-6" \
  -f max-iterations=20 \
  -f max-depth=2 \
  -f max-tasks=20 \
  -f concurrency=5 \
  -f max-blocks-per-iteration=1 \
  -f analyze=true \
  -f drivers="one-block-per-iteration,deadline-return,verify-all-examples,verify-before-return,hypothesis-budget,exploration-budget,arc-helper-library,overlap-testing,json-stringify-return" \
  -f selected-problems="0934a4d8,135a2760,136b0064,195c6913,247ef758,2ba387bc,36a08778,446ef5d2,4e34c42c,5961cc34,6e453dd6,78332cb0,7ed72f31,89565ca0,8f3a5a89,a251c730,aa4ec2a5,b99e7126,cbebaa4b,db695cfb"
ParameterValue
Drivers (9)one-block-per-iteration, deadline-return, verify-all-examples, verify-before-return, hypothesis-budget, exploration-budget, arc-helper-library, overlap-testing, json-stringify-return
Modelclaude-opus-4-6
Iterations20
Max depth2
Concurrency5
Blocks/iteration1
Score13/20 (65%)
Commite40547e
Run ID21996621690

Basic syntax

gh workflow run eval.yml -f benchmark=<bench> -f model=<model> [flags...]

Workflow inputs

InputRequiredDefaultDescription
benchmarkyesoolong, s-niah, arc, arc3, or arc-compound
modelyesqwen/qwen3-coderProvider/model ID for OpenRouter
max-tasksnoallLimit number of tasks
max-iterationsno15Max REPL iterations per task
max-depthno1Max recursion depth
concurrencyno5Parallel tasks
driversnoComma-separated driver plugin names
appnoApp plugin name
selected-problemsnoallARC: comma-separated problem IDs
gamenoARC-3: comma-separated game IDs (e.g. ls20,ft09)
max-blocks-per-iterationnoUse 1 for single-block enforcement
attemptsno1Attempts per task for pass@N (e.g., 2 for pass@2)
trace-fullnofalseEnable all trace options (child traces, snapshots, action logs)
analyzenotrueRun trajectory distillation after eval

ARC task IDs

ARC problem IDs are raw hex (e.g. 0934a4d8), not prefixed. The analysis artifacts use arc- prefixed filenames (e.g. arc-0934a4d8.json), but the eval harness and --selected-problems flag expect the raw ID.

Examples

ARC with composable drivers (no app)

gh workflow run eval.yml \
  -f benchmark=arc \
  -f model="anthropic/claude-opus-4-6" \
  -f max-iterations=20 \
  -f max-depth=2 \
  -f max-tasks=20 \
  -f concurrency=5 \
  -f max-blocks-per-iteration=1 \
  -f analyze=true \
  -f drivers="one-block-per-iteration,deadline-return,verify-all-examples,verify-before-return,hypothesis-budget,exploration-budget,arc-helper-library,overlap-testing,json-stringify-return" \
  -f selected-problems="0934a4d8,135a2760,136b0064,195c6913,247ef758,2ba387bc,36a08778,446ef5d2,4e34c42c,5961cc34,6e453dd6,78332cb0,7ed72f31,89565ca0,8f3a5a89,a251c730,aa4ec2a5,b99e7126,cbebaa4b,db695cfb"

ARC baseline (no drivers, no app)

gh workflow run eval.yml \
  -f benchmark=arc \
  -f model="anthropic/claude-opus-4-6" \
  -f max-iterations=20 \
  -f max-depth=2 \
  -f max-tasks=20 \
  -f concurrency=5 \
  -f max-blocks-per-iteration=1 \
  -f analyze=true \
  -f selected-problems="0934a4d8,135a2760,136b0064,195c6913,247ef758,2ba387bc,36a08778,446ef5d2,4e34c42c,5961cc34,6e453dd6,78332cb0,7ed72f31,89565ca0,8f3a5a89,a251c730,aa4ec2a5,b99e7126,cbebaa4b,db695cfb"

ARC-AGI-3 interactive game

gh workflow run eval.yml \
  -f benchmark=arc3 \
  -f model="anthropic/claude-opus-4-6" \
  -f game=ls20 \
  -f max-iterations=25 \
  -f max-depth=2 \
  -f concurrency=3 \
  -f app=arc3-player

ARC-3 with multiple games

gh workflow run eval.yml \
  -f benchmark=arc3 \
  -f model="anthropic/claude-opus-4-6" \
  -f game="ls20,ft09" \
  -f max-iterations=25 \
  -f concurrency=3 \
  -f app=arc3-player

ARC-AGI-2 compound learning (first test — 3 tasks, full trace)

gh workflow run eval.yml \
  -f benchmark=arc-compound \
  -f model="anthropic/claude-opus-4-6" \
  -f app=arc-compound-orchestrator \
  -f max-iterations=100 \
  -f max-depth=2 \
  -f selected-problems="0934a4d8,135a2760,136b0064" \
  -f trace-full=true \
  -f analyze=true

ARC compound — 5 tasks, no trace (faster)

gh workflow run eval.yml \
  -f benchmark=arc-compound \
  -f model="anthropic/claude-opus-4-6" \
  -f app=arc-compound-orchestrator \
  -f max-iterations=100 \
  -f max-depth=2 \
  -f selected-problems="0934a4d8,135a2760,136b0064,195c6913,247ef758" \
  -f analyze=true

OOLONG with Gemini Flash

gh workflow run eval.yml \
  -f benchmark=oolong \
  -f model="google/gemini-2.5-flash" \
  -f max-iterations=15 \
  -f concurrency=5

Monitoring runs

# List recent runs
gh run list --workflow=eval.yml --limit=5

# Check a specific run
gh run view <run-id> --json status,conclusion,jobs

# Stream logs
gh run watch <run-id>

# View logs after completion
gh run view <run-id> --log

Downloading artifacts

gh run download <run-id> -n eval-arc-<run-number>
gh run download <run-id> -n trajectory-analysis-arc-<run-number>

Related Documents