Skip to main content

EvalWorker

start() resolves once this worker’s run has no tasks left. Call stop() to finish the current work and stop pulling tasks. The model value must match the model used inside runAgent. Ressl uses this value to compare runs that use the same dataset and model. The constructor throws if model or runId is empty.

EvalTask

Ressl passes this object to runAgent:
Add task.mcp to the MCP configuration used for that agent call:
Tasks use separate mock worlds, so they can run in parallel. If your organization reaches its world limit, the worker waits and retries.

Events

Use onEvent to log or monitor worker activity:
The task event includes { runId, taskResultId, taskId }. The reported event includes { taskResultId, error? }. Error data includes the failed operation and either an error message or HTTP status.

Failure behavior

  • The worker retries temporary request failures with exponential backoff, up to 30 seconds between attempts.
  • A 401 or 403 response stops the worker.
  • The worker tries up to three times to report task completion.
  • If runAgent throws, the worker reports the error. Ressl still grades the state left in the mock world.

Trigger API

The included GitHub Actions workflow uses this endpoint to start a run.
The API key determines the organization. The endpoint returns 404 if the dataset is unavailable or the task filter has no matches.

Run status API

Check the run until status is succeeded or failed: