Verified86%Harbor: pendingKnowledge & Reasoning

CL-bench

This adapter converts CL-bench (Context Learning Benchmark) tasks into Harbor format.

How to run

ltb · cl-bench
$ npm i -g lettokenburn-cli
$ ltb bench pull cl-bench

External harness. pip install opencompass && opencompass --models <model_cfg> --datasets clbench_life_llmjudge_rawprompt_gen_84a8f0 (OpenCompass dataset config dir 'CLBench') https://github.com/open-compass/opencompass

License is link-only: ltb bench pull fetches rows from the original host for local evaluation only and does not write a solution/ directory. Do not redistribute the generated tasks.

Runs happen on your machine with your own subscription; only the score summary is pushed. CLI docs

Scores

20 sourced entries
HarnessSourceConfidenceLink
GPT-5.427.9N/AIndependentlowN/Aepoch.ai
GPT-5.123.7N/AIndependentlowN/Aepoch.ai
Grok 4.2022.2N/AIndependentlowN/Aepoch.ai
Claude Opus 4.5 (2025-11-01)21.1N/AIndependentlowN/Aepoch.ai
Gemini 3.1 Pro20.8N/AIndependentlowN/Aepoch.ai
Claude Opus 4.620.7N/AIndependentlowN/Aepoch.ai
Qwen3.6 Plus20.3N/AIndependentlowN/Aepoch.ai
Qwen3.5 Plus19.8N/AIndependentlowN/Aepoch.ai
Kimi K2.519.3N/AIndependentlowN/Aepoch.ai
GLM-518.7N/AIndependentlowN/Aepoch.ai
GPT-5.2-chat18.2N/AIndependentlowN/Aepoch.ai
o317.8N/AIndependentlowN/Aepoch.ai
Kimi K2 Thinking Turbo17.6N/AIndependentlowN/Aepoch.ai
zai-org/GLM-4.715.9N/AIndependentlowN/Aepoch.ai
Gemini 3 Pro15.8N/AIndependentlowN/Aepoch.ai
MiMo V2 Pro15.7N/AIndependentlowN/Aepoch.ai
Qwen3 Max (2025-09-23)14.5N/AIndependentlowN/Aepoch.ai
DeepSeek V3.213.2N/AIndependentlowN/Aepoch.ai
DeepSeek V3.212.4N/AIndependentlowN/Aepoch.ai
MiniMax M2.511.4N/AIndependentlowN/Aepoch.ai

Every number links to where it was published. Low-confidence rows are muted and need per-cell verification.

Reproduced by the community

All runs
Loading community runs…

About

CL-bench → Harbor Adapter

This adapter converts CL-bench (Context Learning Benchmark) tasks into Harbor format.

Overview

CL-bench evaluates context learning capabilities with 1,899 tasks across 4 context categories and 18 sub-categories. Tasks require models to learn from novel knowledge contexts absent from pre-training data.

  • Task Type: Context learning Q&A (open-ended, rubric-graded)
  • Dataset Size: 1,899 tasks
  • Context Categories: Domain Knowledge Reasoning, Rule System Application, Procedural Task Execution, Empirical Discovery & Simulation
  • Difficulty: Extremely challenging — best model achieves only 23.7%
  • Evaluation: LLM-as-judge with task-specific rubrics (avg. 63.2 rubrics per context)
  • Provenance: CL-bench Paper | HuggingFace Dataset
  • License: Refer to the original repository for licensing information
  • Modifications: Messages loaded from HuggingFace; agents write answer to /app/result.json; evaluation uses LLM judge with task-specific rubrics

What is CL-bench?

CL-bench tests whether models can learn from novel in-context knowledge and apply it to solve tasks. Unlike standard benchmarks, all contexts contain information that was absent from pre-training, making it impossible to rely on memorized knowledge.

Key Metrics (from paper):

  • Best model accuracy: ~23.7% (top of leaderboard at time of publication)
  • Average rubrics per context: 63.2 (strict all-or-nothing grading)
  • Contamination-free: All contexts verified to be novel knowledge

Adapter Features

  • HuggingFace Integration: Automatic dataset download from tencent/CL-bench
  • LLM Judge Evaluation: Uses configurable judge model (default: gpt-4o-mini) with task-specific rubrics
  • Oracle Solution: LLM-based oracle reads context messages and generates answers
  • Metadata Preservation: Stores context category, sub-category, and source ID in task.toml
  • Configurable Models: Judge and oracle models set via environment variables

Generated Task Structure

datasets/clbench/
├── clbench-task-{N}/
│   ├── task.toml                 # Task metadata and verifier settings
│   ├── instruction.md            # Task instructions referencing message files
│   ├── environment/
│   │   ├── Dockerfile            # Python + openai environment
│   │   ├── docker-compose.yaml   # Mounts messages/ as read-only
│   │   └── .dockerignore
│   ├── solution/
│   │   ├── solve.sh              # Oracle entry point
│   │   └── oracle.py             # LLM-based oracle (reads context, generates answer)
│   └── tests/
│       ├── test.sh               # Test execution script
│       └── evaluate.py           # LLM judge evaluation with task rubrics

Adapter code layout:

adapters/clbench/
├── README.md                     # Adapter documentation and reproduction steps
├── adapter_metadata.json         # Harbor adapter metadata
├── clbench-parity-50-once.yaml   # Fixed 50-task Harbor parity run config
├── parity_experiment.json        # Parity results and linked PR artifacts
├── pyproject.toml                # Adapter package and `clbench` CLI entry point
├── run_clbench.yaml              # Reference Harbor run config
└── src/
    └── clbench/
        ├── __init__.py
        ├── adapter.py            # Main conversion logic
        ├── main.py               # CLI entry point
        └── task-template/        # Files copied into each generated task

Usage

Create task directories

# From adapter directory
cd adapters/clbench

# Generate all 1,899 tasks
uv run clbench --overwrite

# Generate first N tasks
uv run clbench --limit 10 --overwrite

# Generate specific tasks by index
uv run clbench --task-ids 0 1 2 3 4 --overwrite

# Generate the fixed 50-task parity subset
uv run clbench --split parity --overwrite

# Use custom output directory
uv run clbench --output-dir /path/to/output --overwrite

Set required environment variables

Requirements:

  • HuggingFace datasets library: pip install datasets
  • OPENAI_API_KEY for oracle and judge evaluation
  • OPENAI_BASE_URL (optional, for custom endpoints)

Run Evaluation

Datasets registry

# Use oracle agent (LLM-based reference solution)
uv run harbor run -d clbench -a oracle

# Use your specified agent and model
uv run harbor run -d clbench -a <agent> -m "<model>"

Config files

# From the repository root

# Run the reference config
uv run harbor run -c adapters/clbench/run_clbench.yaml

# Run with custom agent and model
uv run harbor run -p datasets/clbench -a <agent> -m "<model>"

Individual trials

# Run a single trial with oracle
uv run harbor run -p datasets/clbench/clbench-task-0 -a oracle

# Run a single trial with a specific agent
uv run harbor run -p datasets/clbench/clbench-task-0 -a <agent> -m "<model>"

Environment Variables

| Variable | Required | Description | |----------|----------|-------------| | OPENAI_API_KEY | Yes | API key for oracle and judge | | OPENAI_BASE_URL | No | Custom API base URL | | JUDGE_MODEL | No | Judge model (default: gpt-4o-mini) | | ORACLE_MODEL | No | Oracle model (default: gpt-4o-mini) |

Evaluation

CL-bench uses an all-or-nothing LLM judge:

  • Score 1: Agent response satisfies ALL rubric requirements
  • Score 0: Agent response fails to meet any single requirement

The judge checks each rubric item individually, then applies strict all-or-nothing scoring. Average rubrics per task is 63.2, making this extremely challenging. The Harbor adapter keeps the original task rubrics and binary scoring formula, while hardening the judge-output parser so fenced JSON, chatty JSON, and Overall Score fallback responses can still be parsed.

The judge prompt also includes rubric-equivalence