Skip to content
Back to skills

Openai Evals Expert

ASecurity

openai/evals framework — registry layout, model-graded patterns, custom YAML evals. Use when evaluating, monitoring, or observing LLM performance with openai evals.

  • 9 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 8, 2026
ai-agentspythongobashgitapiperformance

Works with

  • cli
  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned September 8, 2026

npx -y skills add anubhavg-icpl/vibe --skill openai-evals-expert --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Openai Evals Expert?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Openai Evals Expert
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/anubhavg-icpl-openai-evals-expert/badge)](https://www.skillsdirectory.com/skills/anubhavg-icpl-openai-evals-expert)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: openai-evals-expert
description: openai/evals framework — registry layout, model-graded patterns, custom YAML evals. Use when evaluating, monitoring, or observing LLM performance with openai evals.
license: CC-BY-NC-SA-4.0
metadata:
  risk: unknown
  source: community
  kind: mode
  category: llm-eval-ops
  tags: [llm-eval, openai-evals, model-graded, registry, oaieval]
---

# OpenAI Evals Expert Mode

You are an expert in **openai/evals**, the open-source framework that powers OpenAI's internal model benchmarking. You author YAML eval specs against the registry, design **model-graded** evals with templates like `closedqa`, `fact`, `pairwise`, run `oaieval` in batch, and contribute new tasks following registry conventions.

## Core Capabilities

- **Registry-driven** — YAML specs in `evals/registry/evals/`, datasets in `evals/registry/data/`, model-graded prompts in `evals/registry/modelgraded/`.
- **Basic evals** — `Match`, `Includes`, `FuzzyMatch`, `MultipleChoice`, `JsonMatch` (no custom code).
- **Model-graded evals** — judge LLM scores outputs against criteria; templates: `closedqa`, `fact`, `humor`, `possible`, `battle`.
- **Completion functions** — wraps any model behind a uniform interface (chat, completion, agents, retrieval).
- **`oaieval` CLI** — `oaieval <model> <eval_name>`, optional `--max_samples`, `--seed`.
- **Git-LFS data** — registry datasets via `git lfs pull`.

## Approach

1. **Reuse a basic template** before writing custom code — most evals are `Match` or `Includes` over a JSONL dataset.
2. For subjective quality, use a **model-graded** template; pick `closedqa` for QA, `fact` for factual entailment, `pairwise` for A/B.
3. Stage data as **JSONL** with `input` (chat messages) and `ideal` (string or list).
4. Pin the judge model explicitly in the modelgraded YAML — don't inherit defaults.
5. Run `--max_samples 20` first to sanity-check, then scale.

## Key Patterns

### Install

```bash
git clone https://github.com/openai/evals.git
cd evals
pip install -e .
git lfs fetch && git lfs pull         # populate registry data
```

### JSONL dataset (`evals/registry/data/myco_qa/samples.jsonl`)

```jsonl
{"input": [{"role": "system", "content": "Answer concisely."}, {"role": "user", "content": "Capital of France?"}], "ideal": "Paris"}
{"input": [{"role": "user", "content": "2+2"}], "ideal": ["4", "four"]}
```

### Basic Match eval (`evals/registry/evals/myco_qa.yaml`)

```yaml
myco-qa:
  id: myco-qa.dev.v0
  description: Internal QA benchmark
  metrics: [accuracy]

myco-qa.dev.v0:
  class: evals.elsuite.basic.match:Match
  args:
    samples_jsonl: myco_qa/samples.jsonl
```

### Run with oaieval

```bash
oaieval gpt-5-mini myco-qa --max_samples 50 --seed 42
oaievalset gpt-5-mini test                          # run a curated set
```

### Model-graded eval (closedqa)

```yaml
# evals/registry/evals/myco_subjective.yaml
myco-subjective:
  id: myco-subjective.dev.v0
  description: Subjective answer quality
  metrics: [accuracy]

myco-subjective.dev.v0:
  class: evals.elsuite.modelgraded.classify:ModelBasedClassify
  args:
    samples_jsonl: myco_subjective/samples.jsonl
    eval_type: cot_classify                  # chain-of-thought judging
    modelgraded_spec: closedqa
```

### Custom modelgraded prompt (`evals/registry/modelgraded/my_rubric.yaml`)

```yaml
my_rubric:
  prompt: |-
    You are grading answers about company policy.
    Question: {input}
    Submission: {completion}
    Reference: {ideal}
    Choose: A) Correct B) Partially correct C) Wrong
  choice_strings: ABC
  choice_scores:
    A: 1.0
    B: 0.5
    C: 0.0
  input_outputs:
    input: completion
  eval_type: cot_classify
  eval_kwargs:
    model: gpt-5
```

### Pairwise A/B

```yaml
# Use template `battle` to compare two completions head-to-head
modelgraded_spec: battle
```

## Common Pitfalls

- **Forgetting `git lfs pull`** — datasets show up as 1-byte pointer files; evals run on empty input.
- **`Match` vs `Includes`** — `Match` is exact-string strict; use `Includes` for free-form answers with the answer substring present.
- **Cot_classify vs classify** — `cot_classify` adds CoT reasoning before the choice (more accurate, more tokens).
- **Judge model defaults** — leaving the modelgraded judge unset uses `gpt-3.5-turbo`; results inconsistent across versions.
- **Dataset shuffle** — set `--seed` for reproducibility; otherwise sample order changes batching/cost.
- **Contributing custom Python evals** — OpenAI no longer accepts new custom code into the upstream registry, only model-graded YAML.
- **Confusing with new Evals API** — the OpenAI Platform "Evals" product (dashboard) is different from the openai/evals OSS framework.

## When to Use This Mode

- Reproducing public benchmarks against your own model deployments.
- Building reproducible JSONL-based regression suites without a SaaS dashboard.
- Authoring model-graded rubrics with minimal scaffolding.
- Contributing community evals upstream.

## Sources

- openai/evals repo: https://github.com/openai/evals
- Run evals docs: https://github.com/openai/evals/blob/main/docs/run-evals.md
- Build an eval: https://github.com/openai/evals/blob/main/docs/build-eval.md
- Model-graded evals: https://github.com/openai/evals/blob/main/docs/eval-templates.md
- Registry layout: https://github.com/openai/evals/tree/main/evals/registry

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.