Skip to content

chore: define the online evals rubric and score configs - #1

Merged
RobertCrupa merged 3 commits into
mainfrom
feat/online-evals-rubric
Oct 8, 2026
Merged

RobertCrupa merged 3 commits into
mainfrom
feat/online-evals-rubric

Conversation

@RobertCrupa

@RobertCrupa RobertCrupa commented Sep 8, 2026 •

Copy link
Copy Markdown
Contributor

Closes apify/ai-team#268. Part of apify/ai-team#249 (online evals), stacked on `main` (rebased 2026-10-07; the PoC landed on main as #7 to #13).

  • `actors/judge/src/rubric.ts`: the `apify-ai-turn` v1 rubric, six PASS/FAIL criteria, and the online score names derived from it (`agent_judge`, `agent_judge_`), asserted under the 35-char cap.
  • `actors/judge/src/score-configs.ts` + `scripts/create-score-configs.ts`: idempotent BOOLEAN score-config creation; pure plan (create / exists / conflict) is unit-tested, the script is the I/O and has not been run against any project.
  • vitest and a `typecheck` script for the judge workspace; README section.

Deviations from the issue text, on purpose:

  • Score names are `agent_judge*`, not `overallVerdict*`, to match #269 and the #271 monitor.
  • "overallVerdict = the taskCompletion verdict" is not implemented: #269 makes the holistic verdict a separate judgment.
  • errorRecovery is not scored on turns without a tool error (#269).

Offline `datasetRun` mode is untouched.

@RobertCrupa
RobertCrupa added this pull request to stack #6 September 9, 2026 15:14
@RobertCrupa
RobertCrupa force-pushed the feat/online-evals-rubric branch from 1069876 to d8914e3 Compare October 7, 2026 09:00
@RobertCrupa
RobertCrupa removed this pull request from stack #6 October 7, 2026 09:08
@RobertCrupa
RobertCrupa changed the base branch from poc/workflow-runner to main October 7, 2026 09:08
@RobertCrupa
RobertCrupa added this pull request to stack #26 October 7, 2026 09:08
@apify-service-account apify-service-account added the tested Temporary label used only programatically for some analytics. label Oct 7, 2026
@apify-service-account apify-service-account added the t-ai Issues owned by the AI team. label Oct 7, 2026

@vojtechj-apify vojtechj-apify left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. The rubric, the derived score names and the 35-character assertion all check out, and splitting the score-config script into a pure plan plus I/O makes it easy to trust. One comment on the script below.

The apify-pull-request-toolkit check is failing. I couldn't open its log. Can you check it isn't a missing label or issue link?

Comment thread actors/judge/scripts/create-score-configs.ts
Online evals (ai-team#268) need the score schema fixed before anything
judges, because Langfuse score configs can only be archived, never deleted.

- src/rubric.ts: ONLINE_RUBRIC { name: 'apify-ai-turn', version: 1 } with
  six PASS/FAIL criteria and a separate holistic verdict (not derived from
  taskCompletion, per ai-team#269); score names agent_judge and
  agent_judge_<criterion> derived from the rubric; 35-char cap and charset
  asserted at import time.
- src/score-configs.ts: one BOOLEAN desired config per name and the pure
  create plan (create / exists / conflict on dataType mismatch or archived).
- scripts/create-score-configs.ts: idempotent I/O around the plan, run via
  `npm run create-score-configs --workspace actors/judge`. Not executed.
- test/: vitest for the rubric shape, name derivation, the cap and the plan.
- README: online rubric, score semantics, why BOOLEAN, archive-only configs.
- errorRecovery is not scored on turns without a tool error (ai-team#269);
  the rubric text and README row no longer count "no error" as a PASS.
- Conflict plan entries list every same-name config (id, dataType, archived)
  instead of naming only the first one.
- Add tsconfig.check.json and `npm run typecheck` covering src, scripts and
  test with noEmit; the build tsconfig is unchanged.
@RobertCrupa
RobertCrupa force-pushed the feat/online-evals-rubric branch from d8914e3 to 3fa3f71 Compare October 8, 2026 12:54
@RobertCrupa RobertCrupa added the adhoc Ad-hoc unplanned task added during the sprint. label Oct 8, 2026
@RobertCrupa

Copy link
Copy Markdown
Contributor Author

@vojtechj-apify you're right, the issues this closes is outside this repo so i will add the ad-hoc lable

@RobertCrupa
RobertCrupa merged commit 2424583 into main Oct 8, 2026
3 of 5 checks passed
@RobertCrupa
RobertCrupa deleted the feat/online-evals-rubric branch October 8, 2026 12:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

adhoc Ad-hoc unplanned task added during the sprint. t-ai Issues owned by the AI team. tested Temporary label used only programatically for some analytics.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants