Skip to content

[Eval Harness] Step 1: Fixed versioned task set (5-10 tasks from evolution cycles) #1514

Description

@Lexus2016

Parent: #1481 (Eval harness foundation — decomposed per owner request)

This is Step 1 of the eval harness, decomposed from #1481 into independently-mergeable ≤200-line slices. Unblocks #1267 (null-agent floor test) and #1302 (replay grading).

Scope (this issue — ≤200 lines)

Define a fixed, versioned task set — a gold-standard eval dataset that the harness runner (Step 2) and null-agent (Step 3) will consume. This is the data layer; no runner code yet.

Specific changes

  1. Task set schema: a simple dataclass or TypedDict defining a task:

    • id: unique task identifier
    • prompt: the task instruction text
    • expected_tools: list of tool calls the agent should make (for trajectory grading)
    • expected_result_pattern: optional regex/substring for result validation
    • category: task category (code, search, file-ops, etc.)
    • difficulty: easy/medium/hard
  2. Task definitions: 5-10 tasks sourced from existing evolution cycle tasks (real work the agent has done), covering different tool categories. Stored as a Python module or JSON file.

  3. Versioning: the task set has a version field so eval runs can pin to a specific set.

  4. Loader function: load_task_set(version: str = "1.0") -> list[EvalTask]

What this issue does NOT do

Success criteria

  • EvalTask schema defined with all fields
  • 5-10 tasks defined, covering ≥3 tool categories
  • Task set versioned (v1.0)
  • load_task_set() loader implemented
  • Unit test: loader returns correct tasks
  • Unit test: all tasks have required fields
  • Fits ≤200-line self-merge cap

Existing code checked

  • scripts/evolution_evaluator.py — deterministic scoring rubric (text grading only, not a task set)
  • tests/agent/test_agent_judge.py — Agent-as-a-Judge eval (different scope)
  • tests/agent/test_plan_mode_eval.py — plan-mode eval harness (different scope, model comparison)
  • No existing eval task set in the codebase (verified by grep)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions