spec_version: "1.0" name: "rag_optimizer" environment: name: "RAG Optimizer" description: "RAG pipeline optimization benchmark. Agents resolve pricing conflicts, route metadata tags, and splinter monolithic content blobs." version: "1.0.0" dockerfile: "Dockerfile" endpoints: reset: "/reset" step: "/step/{session_id}" state: "/state/{session_id}" tasks: - id: easy name: "Contamination Purging" description: "Purge contradictory or low-value documents so retrieval surfaces clean, high-signal references." reward_range: [0.01, 0.99] grader: "rag_optimizer.server.grader:grade_easy" - id: medium name: "Syntactic Splintering" description: "Break down the monolithic onboarding blob into multiple granular chunks." reward_range: [0.01, 0.99] grader: "rag_optimizer.server.grader:grade_medium" - id: hard name: "Duplicate Purge" description: > Multi-doc deduplication for framework drift. KB contains 3 overlapping FastAPI routing docs: two legacy variants with incorrect @app.route() guidance and one correct current doc using @app.get()/@app.post() and Pydantic v2, plus distractors. Agent must delete noisy legacy docs so retrieval surfaces the correct current doc at rank 1. Reward improves continuously as noise is removed; no binary metadata gate. reward_range: [0.01, 0.99] grader: "rag_optimizer.server.grader:grade_hard" agent: inference_entrypoint: "inference.py" requirements: "requirements.txt"