Generated banner for Eval Engineering
Generated logo for Eval Engineering

Eval Engineering

LangChainOfficialPublished by LangChain

  • Skill
  • Workflow
  • Agent tooling
  • MIT
  • Low risk
  • Has scripts

From the author

Inspect an agent repository and optional traces, interview the user, write reviewed Task Specs, build and audit Harbor tasks, and bootstrap reusable project World Knowledge Skills. Use for agent evals, benchmark design, Task generation, controlled Environments, synthetic data, Verifiers, Harbor runs, calibration, or continuous benchmark maintenance.
— the description by LangChain

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

Eval Engineering provides a structured, iterative methodology for developing and maintaining agent benchmarks. It guides the user through inspecting existing agent repositories and traces, designing grounded Task Specifications, building isolated execution environments, and implementing independent verifiers. The process emphasizes the creation of project-specific World Knowledge Skills to capture reusable patterns, ensuring that evaluation suites remain consistent, fair, and aligned with real-world agent behavior.

What it does

  • Inspects agent repositories, traces, and existing evaluation suites to identify testing gaps.
  • Drafts and reviews Task Specifications that define agent inputs, environment conditions, and scoring criteria.
  • Builds and audits isolated Harbor-based environments for reproducible agent testing.
  • Develops project-specific World Knowledge Skills to store reusable facts, scripts, and patterns.
  • Implements independent verifiers to score agent performance and detect failures.
  • Calibrates evaluation tasks by analyzing run trajectories and distinguishing between agent capability and infrastructure defects.

When to use it

  • When designing new benchmarks for an agent or workflow.
  • When existing evaluation tasks are brittle, leaking information, or failing due to environment issues.
  • When you need to capture and reuse project-specific knowledge across multiple evaluation tasks.
  • When you need to perform root-cause analysis on agent failures within a controlled environment.

Advantages

  • Ensures evaluation tasks are grounded in actual repository evidence and real-world usage.
  • Promotes consistency through the use of reusable World Knowledge Skills.
  • Reduces false negatives by distinguishing between agent capability failures and infrastructure or verifier defects.
  • Provides a clear, audit-ready structure for managing complex benchmark suites.

Usage examples

“I need to create a new evaluation task for our customer support agent that tests its ability to handle multi-turn ticket escalations. How should I start?”
The agent will guide you to first inspect existing traces of ticket escalations, review the current agent harness, and then draft a Task Spec that defines the escalation scenario, environment requirements, and success criteria.
“Our current evaluation suite is failing frequently due to environment setup issues. How can I fix this?”
The agent will help you audit the current Harbor configuration, verify environment isolation, and implement a more robust reset or replacement strategy for the test environment.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/langchain-ai/eval-engineering/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip eval-engineering.zip -d .agents/skills

Documentation by LangChain

Eval Engineering

Flow

  • Inspect all inputs first: the repository, Harness, optional traces, existing Tasks and runs, existing World knowledge, and the human goal. Identify the source files and skill references that apply before proposing work.

  • Create or update the small project World Knowledge Skill from reusable facts in those inputs. Use it to propose one grounded Task.

  • Draft the Task Spec and World Skill together. Show both to the user, keep exact Task truth only in Task.md, and refine both until the user approves them.

  • Implement the approved Task, validate its Environment and Verifier, run the real Harness, inspect the full evidence, and fix only non-agent failures.

  • Reconcile the World Skill with what the run proved, then repeat this flow for the next Task.

Terms

  • Task Spec: Task.md, which describes the input, relevant agent conditions, Environment, scoring, fairness, and open decisions for one Task.

  • Task: the runnable instruction, Environment, and Verifier.

  • Harness: the complete agent Harbor runs, including prompts, model loop, tools, hooks, memory, sessions, and adapter.

  • Environment: the files, data, services, identity, permissions, network, clock, and mutable state around the Harness.

  • Verifier: independent checks that score the result or mark a run invalid.

  • World Knowledge Skill: a repository-local skill with reusable project-specific knowledge, references, scripts, assets, and tests that help generate Task Specs and build future Tasks.

  • Spec2Task: the full loop that turns a reviewed Task Spec into an audited runnable Task. Follow Task implementation for its concrete build order and reference routing.

Reference routing

Read each reference when its decision appears:

NeedRead
Inspect source, traces, the Harness, dependencies, access, and existing evalsDiscovery
Bootstrap or update reusable project knowledgeWorld knowledge
Propose Tasks and write the single Task SpecTask design
Build data, services, access, state, and resetEnvironment building
Create structured or natural-language dataSynthetic data
Define independent evidence and scoringVerifier design
Apply Spec2Task to turn a reviewed Spec into an audited TaskTask implementation
Compare model runs and classify failuresCalibration
Package and run Harbor tasksHarbor
Adapt a known benchmark designBenchmark patterns
Build multi-turn conversationsMulti-turn simulation
See World knowledge learned across two TasksService-desk example

Reusable implementation resources:

1. Inspect inputs and existing World knowledge

Review every input the user provides before proposing a Task. Use the guidance that matches each available input:

  • For a repository, Harness, traces, or dependencies, read Discovery.

  • For existing Tasks and runs, inspect their instructions, Environments, Verifiers, rewards, trajectories, and final state. Read Calibration when run quality or failure causes affect the new design.

  • For an existing project World Skill, read World knowledge, then check the sources and reusable methods that affect the new Task.

  • For human goals and constraints, read Task design.

  • For relevant benchmark examples, use the domain index and source callouts in Benchmark patterns.

Inspect the repository before asking questions that source and tests can answer. Follow the active Harness through prompts, models, tools, services, state, effects, and focused tests. Inspect existing Task instructions, parsers, Verifiers, reward paths, and run evidence.

If the user supplies traces, review complete runs or threads. Use traces to learn real requests, dependency behavior, state shapes, errors, and failure conditions. Do not treat a trace answer as independent truth.

If .agents/skills/<project>-world/SKILL.md exists, read it. Follow its routing only for knowledge relevant to the current Task. Check cited repository paths, commands, and scripts when their accuracy affects the design.

2. Propose and select a Task

Read Task design and use the index in Benchmark patterns to find the relevant domain and source callouts. Focus on that domain unless the Task crosses another one. In the first user-facing design response after inspection, propose one Task grounded in repository evidence, supplied traces, existing coverage, or a human priority. State:

  • the real work and capability;

  • the condition that makes the case non-trivial;

  • the Environment and independent evidence it needs;

  • the important failure it can detect;

  • how it differs from existing Tasks; and

  • the main open decision.

In the same response, show the relevant current World Skill content and the specific additions or corrections this Task suggests. If no World Skill exists, show the small initial contents that will help create this Task and future Tasks. Keep the Task's exact request, focal records, expected result, hidden truth, and exact scoring rules out of the World Skill.

Let the user revise the Task proposal and World knowledge together before implementation. Offer alternatives only when a real user choice changes the design.

3. Write and review the Task Spec and World Skill

Copy the Task template to evals/<suite>/tasks/<task-id>/Task.md. Put all Task-specific design in this one file. At the same time, create or update the project World Skill by following World knowledge. Determine the project skill location supported by the active agent and repository. .agents/skills/<project>-world/SKILL.md and .claude/skills/<project>-world/SKILL.md are common landing spots. Follow an established project convention when one exists. Otherwise, explain the proposed location and get user confirmation before creating the skill. Start from the World Skill template when needed.

Keep each Task.md beside the Harbor task it describes:

evals/<suite>/tasks/<task-id>/
├── Task.md              # human-reviewed control-plane spec
├── task.toml             # required Harbor configuration
├── instruction.md        # required agent input
├── environment/          # required Environment definition and visible state
│   ├── Dockerfile        # use this or docker-compose.yaml
│   └── docker-compose.yaml # optional; primary service must be main
├── tests/
│   ├── test.sh           # required Harbor Verifier entry point
│   ├── test_*.py         # optional Verifier helpers
│   └── fixtures/         # optional hidden Verifier data
└── solution/
    └── solve.sh          # optional reference path

Never copy or mount Task.md into the evaluated agent's workspace or image. The agent receives instruction.md and only the Environment state intended for the run.

Include:

  • purpose and source evidence;

  • exact input and later turns;

  • only the Harness conditions relevant to this Task;

  • initial state, services, access, visibility, reset, and production differences;

  • required results, prohibited effects, accepted alternatives, and independent Verifier evidence;

  • fairness, leakage risks, and invalid-run conditions; and

  • open decisions and assumptions.

Show the full Task Spec and the World Skill changes to the user. Explain what is already in the World Skill, what this Task adds or corrects, and what stays only in Task.md. Revise both through the same back-and-forth. Mark the Task Spec approved only after explicit approval. Treat World Skill changes as accepted only after the user reviews them. If the user requests an end-to-end build without an approval pause, continue with an agent-reviewed Status: Draft and label the World Skill changes as unreviewed.

If implementation changes the request, visible information, material Environment behavior, or scoring boundary, update Task.md and show the change. Set its status back to Draft. Show the diff and require explicit reapproval before setting it to Approved again.

4. Apply Spec2Task

Follow Task implementation. It gives the build order and routes each decision to the Environment, synthetic-data, Verifier, Harbor, and calibration references.

For an existing project, use its pinned or supported Harbor version. Otherwise, use the installed supported version and record it. Upgrade only with user approval and a stated compatibility reason. Use the installed CLI help as the command contract.

Before a scored model run:

  1. Confirm the model, trial count, judge, timeout, and maximum expected cost with the user unless the user already authorized that run plan.

  2. Complete the package audit in Harbor. Confirm every required file, entry point, path, permission, configuration value, mount, service, and reward output needed for this exact Task is present and works through Harbor. Confirm hidden Task, Verifier, solution, and secret material is absent from the agent-visible image and workspace.

  3. Check setup and trial isolation in the way that fits the Environment. A fresh container or worktree can provide isolation by replacement. A reused mutable service needs a checked reset. Immutable frozen data needs only a checked load. See Task implementation.

  4. Exercise every operation the Task depends on.

  5. Run the reference path when one exists.

  6. Test the Verifier with a clear valid result, a valid alternative, a realistic wrong result, a shortcut, a prohibited collateral change, and missing or corrupt evidence.

  7. Confirm every completed Verifier path writes a valid reward and useful evidence without exposing hidden truth or secrets.

5. Run and audit

Run the actual Harness through Harbor. Read the complete trajectory, not only the reward. Inspect:

  • messages, model calls, tool calls, results, retries, and errors;

  • initial and final Environment state and external effects;

  • service, setup, readiness, reset, and cleanup evidence;

  • each Verifier criterion, its evidence, decision, and error; and

  • the resolved Harness, model, Environment, and judge configuration.

Classify each unsuccessful run as an agent capability failure, missing information, Harness defect, Environment defect, Verifier false rejection, Verifier false acceptance, leakage, or infrastructure failure. Fix non-agent failures before using the score.

Model comparison is an optional calibration strategy, not a completion rule. When it would answer a real uncertainty, compare a weaker model, the target model, or a stronger model and repeat trials when behavior is variable. Read every selected trace. Contrast can expose unclear inputs, brittle setup, leakage, shortcuts, or reward hacks. Pass rates and model ordering do not prove Task quality.

Read Calibration for the complete audit method.

6. Reconcile project World knowledge

Use World knowledge throughout Task design, implementation, and audit. Add or correct project-specific knowledge when the work supplies evidence that would help another Task. This can include Task patterns, Environment methods, data creation, Verifier evidence, run procedures, scripts, assets, and examples.

After the audit, reconcile the World Skill with what the completed Task proved. Show the user:

  • the proposed reusable knowledge;

  • the evidence supporting it;

  • how another Task would use it;

  • where it should live; and

  • what remains specific to the completed Task.

Remove or narrow ideas that the Task disproved. If the user asked for autonomous end-to-end updates without a pause, make the smallest supported update, show it in the final review, and do not imply that the human approved the generalization.

Create only SKILL.md at first. Add references/, scripts/, assets/, or tests/ only when their real contents justify them.

Keep the completed Task's request, focal state, expected result, and exact criteria in its collocated Task.md. Do not copy broad guidance that is already clear in this skill. Record the project-specific adaptation of that guidance.

7. Repeat

Use Tasks two and three to test the World Skill. Check whether it reduces rediscovery, improves Task Specs, preserves important relationships, reuses a proven operation, or prevents a known Verifier defect. Correct rules that are missing, stale, or too broad.

When several materially different Tasks have exercised the shared knowledge and the construction and verification methods are clear, the next cycle can propose several independent Task Specs:

  1. Mine new repository, trace, and human evidence.

  2. Use the World Skill to generate distinct Task Specs.

  3. Have the human review the specs.

  4. Build independent approved Tasks in parallel.

  5. Audit every Task individually.

  6. Update World knowledge only with reusable corrections.

Continue this loop as production behavior, user priorities, agents, and models change.

Dependencies, access, and safety

Map required systems, data, roles, network needs, and safe setup methods. Never read, print, copy, store, or ask the human to paste secret values. Tell the human what dependency is needed, why it is needed, and how the project expects access to be provided. Default to controlled local, frozen, or simulated dependencies. Never write to production during an eval. Treat access, startup, reset, timeout, judge, and Verifier failures as invalid runs, not failed agent work.

Complete only when

  • Task.md matches the built instruction, Environment, and Verifier.

  • The Task is solvable from agent-visible or normally discoverable information.

  • The Environment starts reliably and isolates trials by replacement, reset, or immutable state as appropriate, without leaking hidden truth.

  • Valid and invalid Verifier cases behave as intended.

  • At least one real Harness run was read in full.

  • Non-agent failures were repaired or reported as unresolved limits.

  • Model comparison, when used, includes trace review rather than pass rates alone.

  • The project World Skill was created or updated with the Task Spec, reviewed during the work, and reconciled with the final evidence.

  • The user receives the Task path, run command, results, evidence, and remaining limits.

Files

references/task-implementation.md

Implement and Audit a Task

This is the concrete implementation guide for Spec2Task. Use it after the user selects a Task and reviews its collocated Task.md. The result is a runnable Harbor Task whose Environment, Verifier, and real-run evidence match that Task Spec.

Contents

  • Read references at each decision

  • Build in this order

  • Check setup and trial isolation

  • Run deterministic checks

  • Run and inspect the Harness

  • Revise the correct layer

  • Finish with reusable knowledge

Read references at each decision

Current decisionReadRequired output
What state, service, access, fidelity, or trial isolation to buildEnvironment buildingEnvironment contract and setup or isolation method recorded in Task.md
How to create structured records or natural-language contentSynthetic dataMaterialized data, validation evidence, and generation review when used
What evidence proves success and how failures scoreVerifier designPass rule, criteria, independent evidence, and focused fixtures
How to package, configure, and run the TaskHarborRunnable task source, resolved configuration, and retained job evidence
How to inspect traces and judge fairnessCalibrationRun classifications, defects, rerun results, and remaining uncertainty
How to preserve reusable project knowledgeWorld knowledgeWorld Skill additions, corrections, or an explicit decision that none are reusable

Read only the references required by the current Task, but do not implement a layer before reading the reference that defines its checks.

Build in this order

1. Synchronize the Task files

Create instruction.md from the exact agent input in Task.md. Normally this input has explicit approval. If the human requested an end-to-end build with no approval pause, implementation can use the agent-reviewed Draft input, but Task.md must remain Status: Draft. Create the complete package defined in Harbor: task.toml, instruction.md, a usable Environment definition, and tests/test.sh, plus only the optional Verifier helpers, fixtures, and reference solution the Task needs. Check that later turns, access, time limits, and invalid-run conditions match the Task Spec.

Read the project World Skill used during design. Add or correct only reusable knowledge supported by the current implementation work. Keep the exact request, focal records, expected result, hidden truth, and exact scoring rules in Task.md.

2. Build the Environment

Follow Environment building. Preserve the production interface used by the Harness. Implement only the services, files, records, permissions, errors, and state changes needed by this Task. Keep hidden truth and raw Verifier access unavailable to the evaluated agent. Update the World Skill when this work proves a reusable project setup, service, state, access, or isolation method.

3. Build and validate data

When the Task needs constructed data, follow Synthetic data. Create IDs, relationships, permissions, dates, and constraints with code. Use a model only for fields that need natural language. Materialize the accepted data so every trial uses the same reviewed input. Update the World Skill when the method, schema, relationship rule, or validator can support another Task.

4. Build the Verifier

Follow Verifier design. Implement objective checks from raw files, tests, database state, service state, or other independent evidence. Use a model judge only for bounded semantic meaning that code cannot settle. Keep judge instructions, credentials, and expected results outside the Harness boundary. Update the World Skill when this work proves a reusable independent evidence source, accepted alternative, or known scoring risk.

5. Package the Harbor Task

Follow the package-completeness audit in Harbor. Confirm that every required file, entry point, path, permission, configuration value, mount, service, dependency, and reward output needed to run the exact Task exists and works through Harbor. Confirm hidden Task, Verifier, solution, and secret material is absent from the agent-visible image and workspace. Fix every gap before any Oracle or model trial. Then confirm the model, trial count, judge, timeout, and maximum expected cost with the human unless that run plan is already authorized.

Check setup and trial isolation

Reset means returning mutable state to the Task's declared starting condition before another trial uses it. It is an infrastructure concern, not a score of Task quality. Choose the check that matches the Environment:

EnvironmentAppropriate check
Fresh disposable container, VM, or worktree per trialBuild one fresh trial and verify its declared starting state. Replacement provides isolation.
Mutable service or database reused across trialsCapture Task-relevant starting state, make a representative change, run reset, and confirm the starting state returns.
Immutable frozen files, corpus, or repositoryVerify the pinned source loads correctly. No reset test is needed.
Approved live sandboxVerify the dedicated identity, safe starting state, allowed effects, and cleanup method. Do not use production writes.

Create or compare another fresh trial only when nondeterminism, shared state, or flaky setup is a real risk. Record expected runtime differences only when they cannot affect agent behavior or scoring.

Run deterministic checks

Before a model run:

  1. Call every operation the Task needs and confirm its response and effect.

  2. Confirm relevant invalid actions fail for the intended reason.

  3. Run the reference path when one exists to prove the Task is reachable.

  4. Run Verifier fixtures for a known-good result, a different valid result, a realistic wrong result, a shortcut, a prohibited collateral change, and missing or corrupt evidence.

  5. Confirm wrong work receives zero and infrastructure faults receive no agent score.

  6. Confirm every completed Verifier path writes criterion evidence and reward.

Fix deterministic failures before spending a model call. These checks establish reachability and Verifier behavior. They do not by themselves prove that the Task has the intended difficulty or realism.

Run and inspect the Harness

Run the actual Harness through Harbor. Follow Calibration. Read the complete selected trajectories, initial and final state, Verifier evidence, service logs, resolved configuration, phase timing, and errors.

Classify each bad outcome before changing anything. Keep a fair capability failure as an agent result. Repair missing information, Harness defects, Environment defects, false acceptance, false rejection, leakage, and infrastructure failure, then rerun the affected trial.

Revise the correct layer

Evidence showsChange
The request is unclear or unfairinstruction.md and Task.md
Required state is missing or unrealisticEnvironment implementation and its description in Task.md
A valid result fails or invalid result passesVerifier and its fixtures
Tools, prompts, sessions, or adapters differ from the intended agentHarness or adapter
Startup, timeout, credential, judge, or cleanup failsHarbor or runtime configuration; keep the old run unscored

For a material Task Spec change, set Task.md to Draft, show the diff, and require explicit reapproval before marking it Approved again.

Finish by reconciling reusable knowledge

After the Task passes its audit, follow World knowledge and reconcile the World Skill already used during design and implementation. Keep supported project-specific knowledge that can help another Task. Narrow or remove claims that the audit disproved. Keep the current Task's exact request, focal state, expected result, hidden truth, and scoring criteria in its Task directory. Show the final World Skill changes with the audit results.

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs Python

Security

What our scanner noticed· Low risk

  • Scripts that your agent may run

This skill includes scripts that your agent may run. Read them before you use it.

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
LangChain
Publisher
LangChain (Official)
Source
langchain-ai/langchain-skills · config/skills/eval-engineering · commit 126c384
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by LangChain or LangChain.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download eval-engineering.zip