Skip to main content

1. Install

Requires Node 20+. The example below uses TypeScript. Install tsx if your project does not already have a TypeScript runner:

2. Create a worker

Create a file that runs your agent for each evaluation task. Pass task.ticket as the prompt and add task.mcp to your agent’s MCP servers. This example uses the Claude Agent SDK. The same pattern works with any agent that accepts an MCP server configuration.
agent.ts
Replace your-model-id with the model used by your agent. The model option is a label for grouping comparable runs, so it must match the value passed to your agent. Add a start script so CI can run the worker:
package.json
runAgent does not return a score. Ressl grades the final state of the mock world after the function finishes.

3. Copy the dataset slug

Open the Datasets tab in the console, pick a dataset, and click the copy icon next to its name. Use the copied slug in RESSL_DATASET. A display name and slug may be different.

4. Add the workflow

The SDK package includes a GitHub Actions workflow. Copy it into your repository:
On each push to main, the workflow:
  1. Starts an evaluation for the current commit.
  2. Runs your worker with npm start.
  3. Waits for the worker to finish the task queue.
  4. Posts the result as a commit comment and a GitHub check.
Add these values under Settings → Secrets and variables → Actions:
The included workflow is configured for the Claude example above. If your agent uses another provider, update the workflow to pass the required credentials.
Set RESSL_TASKS to a few task IDs for quick checks on each push. Leave it empty to run the full dataset.

5. Run an evaluation locally

Start an evaluation before running the worker. If the queue is empty, the worker exits.
Then drain it with your worker:
You can follow the run from the Runs tab in the console.