Eval Engineering
LangChainOfficialPublished by LangChain
- Skill
- Workflow
- Agent tooling
- MIT
- Low risk
- Has scripts
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
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/langchain-ai/eval-engineering/downloadUnzip 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:
| Need | Read |
|---|---|
| Inspect source, traces, the Harness, dependencies, access, and existing evals | Discovery |
| Bootstrap or update reusable project knowledge | World knowledge |
| Propose Tasks and write the single Task Spec | Task design |
| Build data, services, access, state, and reset | Environment building |
| Create structured or natural-language data | Synthetic data |
| Define independent evidence and scoring | Verifier design |
| Apply Spec2Task to turn a reviewed Spec into an audited Task | Task implementation |
| Compare model runs and classify failures | Calibration |
| Package and run Harbor tasks | Harbor |
| Adapt a known benchmark design | Benchmark patterns |
| Build multi-turn conversations | Multi-turn simulation |
| See World knowledge learned across two Tasks | Service-desk example |
Reusable implementation resources:
Multi-turn runner, model user, and Harbor adapter example
Tool-schema comparison, which compares supplied schema fragments but does not resolve external
$reftargets
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 pathNever 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:
Confirm the model, trial count, judge, timeout, and maximum expected cost with the user unless the user already authorized that run plan.
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.
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.
Exercise every operation the Task depends on.
Run the reference path when one exists.
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.
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:
Mine new repository, trace, and human evidence.
Use the World Skill to generate distinct Task Specs.
Have the human review the specs.
Build independent approved Tasks in parallel.
Audit every Task individually.
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.mdmatches 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
- ATTRIBUTION.mdAdded by AutoGineer894 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md15.6 KiB
- agents/openai.yaml378 B
- assets/task/Task.md.template1.8 KiB
- assets/world-skill/SKILL.md.template2.9 KiB
- references/calibration.md3.1 KiB
- references/discovery.md12.1 KiB
- references/environment-building.md4.0 KiB
- references/examples/service-desk.md2.9 KiB
- references/harbor.md6.8 KiB
- references/multi-turn-simulation/guide.md5.1 KiB
- references/multi-turn-simulation/harbor_example.pyScript10.0 KiB
- references/multi-turn-simulation/model_user.pyScript5.0 KiB
- references/multi-turn-simulation/runner.pyScript7.0 KiB
- references/patterns.md36.8 KiB
- references/synthetic-data.md2.9 KiB
- references/task-design.md5.5 KiB
- references/task-implementation.md8.2 KiB
- references/verifier-design.md3.0 KiB
- references/world-knowledge.md11.3 KiB
- scripts/compare_tool_schemas.pyScript13.8 KiB
- scripts/snapshot_sqlite_state.pyScript5.2 KiB
references/discovery.md
Discover the Agent, Its Work, and Existing Evals
Discovery should explain the real work, the agent that performs it, the systems around it, and the evidence available for new Tasks. Organize findings in the form that best fits the project. Do not force every finding or trace into a fixed template.
Contents
Set the scope
Review the repository
Map the Harness and connected systems
Review existing evals
Review traces
Cluster real requests
Review traces in batches
Learn tool and system behavior
Map dependencies and access
Synthesize evidence
Set the scope
Identify the repository and revision, the agent or workflow under test, the existing eval suite, the available trace source, and the human's goal. Keep different agent versions or materially different deployments separate. Mark unknown facts as unknown.
Read repository instructions, manifests, workspace configuration, and focused documentation. During read-only discovery, do not start services, install packages, open secret stores, or use credentials.
Review the repository
Start from each real way the agent is invoked. Follow reachable code through:
Input, prompt, and context assembly.
Model creation, routing, settings, and fallbacks.
Agent loops, stopping, retries, and error handling.
Tools, exact input and output schemas, and validation.
Tool implementations, connected systems, parsing, and effects.
Skills, subagents, hooks, middleware, sessions, and memory.
Files, databases, APIs, applications, network, time, and identity.
Focused tests, known failures, deployment, local execution, and CI.
Use repository search to locate code, then read the complete relevant functions, callers, schemas, and focused tests. A README or directory listing can locate behavior, but it does not prove runtime behavior.
Keep notes in whatever structure makes relationships clear. Cite important claims with repository paths and symbols. Distinguish what source code proves, what a test proves, what a trace only suggests, and what remains uncertain.
For a large repository, divide review by real runtime area, system, or workflow. Do not divide work by arbitrary file counts. The main reviewer must join cross-area relationships and check the source behind consequential findings.
Map the Harness and connected systems
The Harness is the evaluated agent behavior: prompts, model loop, tools, session behavior, and adapter. The Environment contains the files, data, services, identity, permissions, network, clock, and mutable state around it.
Follow each agent capability across that boundary. For a search tool, inspect the registered tool name and arguments, how the Harness parses results, the service that answers the query, the returned record shape, permissions, ordering, pagination, errors, and any state changed by the call.
Map only details that can affect Task design or faithful execution:
how requests enter the Harness;
information added before the model sees a request;
tools available in each condition;
exact request, response, and error shapes;
state read or changed by each operation;
permissions, identity, time, ordering, and pagination;
loops, retries, fallbacks, stopping, sessions, and memory;
user-visible and external effects; and
differences introduced by the Harbor reconstruction.
Repository definitions are the primary source for intended schemas. Traces are useful evidence of real values, error shapes, latency, ordering, and behavior. Compare both when designing a simulated system.
Review existing evals
Follow each scored path from instruction to reward:
Read the exact agent input and promised result.
Read output parsing and fallback behavior.
Read every objective check and semantic judge.
Read weights, partial credit, thresholds, and the complete pass rule.
Read tests for valid, invalid, and partly valid results.
Correlate available run evidence with the exact Task version.
Look for unstated checks, unchecked requirements, hidden preferences, leaked truth, false acceptance, false rejection, stale evidence, and infrastructure errors reported as agent failures. New Task directions must add a meaningful condition, capability, failure mode, or evidence requirement.
Review traces
Use a trace source supplied or approved by the human. Record enough source context to cite findings later, such as project, agent version, filters, time range, export time, and stable conversation or trace identifiers.
A trace system can store one interaction as several related records. Names and relationships differ across products. Reconstruct the user-visible interaction and all relevant agent activity in time order. Include the initial request, later user turns, model responses, tool calls and results, retries, errors, state changes, and final outcome when they exist. Do not assume terms such as parent run or child run are available.
Start with a varied sample. Include different request types, tools, lengths, outcomes, permissions, agent versions, and failure shapes. Keep incomplete and failed interactions visible. They can reveal important dependencies and Task conditions.
Look for:
what users actually ask the agent to accomplish;
how much context, detail, data, and constraint users provide initially;
facts users expect the agent to discover;
ambiguity, follow-up questions, corrections, and changed requests;
desired outputs, state changes, files, messages, or decisions;
common agent strategies and where they diverge;
failed tool calls, malformed arguments, empty results, permission errors, timeouts, retries, and fallback behavior;
loops, abandoned attempts, unsupported claims, and partial completion;
user dissatisfaction, corrections, rejection, repeated requests, abandonment, and explicit acceptance;
final system state and external effects, not only the final response;
cases where a user appears satisfied despite a hidden error, or unhappy despite correct work;
tool and system schemas observed in real use; and
realistic conditions that could become Tasks without copying private data.
Preserve citations for important examples and aggregate claims. A note can use a trace ID, conversation ID, stable event ID, or another locator supported by the source. The structure of the note is flexible. It only needs enough context for another reviewer to understand and verify the claim.
Traces show observed behavior. They do not prove intended policy, complete business rules, or a correct answer. Use repository code, tests, source data, policies, final state, or human decisions as independent truth.
Cluster real requests
Group requests by underlying work and outcome, not by exact wording. Useful dimensions can include:
user goal and requested artifact or state change;
systems and tools needed;
read-only, analytical, drafting, or mutating work;
amount of context supplied by the user;
information the agent must discover or clarify;
permission, policy, time, or identity conditions;
single-turn or multi-turn interaction;
common failure or user dissatisfaction; and
independent evidence available for verification.
Name each cluster in plain language. Keep representative citations and note important variation inside the cluster. Counts can show frequency in the sample, but they do not establish business priority or population frequency unless the sample supports that claim.
Preserve rare but important requests, especially those involving safety, permissions, high-impact effects, or a distinctive capability. Do not force an unclear request into a cluster only to make the grouping complete.
Use the clusters to propose coverage, not to copy production conversations. Translate a cluster into a Task only after defining a controlled Environment, independent evidence, fairness boundary, and privacy-safe scenario.
Review traces in batches
When the trace set is large, review several small batches before expanding. Choose batches by stable identifiers, time windows, request clusters, agent versions, or outcomes. Keep batches non-overlapping unless overlap is an intentional review check.
If subagents are available and parallel review is useful:
The main agent defines shared analysis questions and privacy limits.
Give each subagent a bounded, non-overlapping batch and the same definitions.
Ask for request clusters, representative citations, tool and system facts, failure patterns, user reactions, possible Task conditions, and uncertainty.
Do not require one fixed response template. Require evidence for important claims and enough structure to merge results.
The main agent merges equivalent clusters, keeps disagreements visible, checks representative citations, and audits a sample from each batch.
Do not treat subagent agreement as truth. Retrieve more traces only to answer a named gap, test whether a pattern repeats, or cover a missing segment.
Learn tool and system behavior
Trace review should help reconstruct the systems an eval may need to simulate. For each important tool or system, learn what evidence permits:
exact operation and argument names;
required, optional, enum, and nested fields;
output objects, identifiers, ordering, pagination, and null behavior;
validation, permission, empty-result, rate-limit, and timeout errors;
retries and whether repeated calls are safe;
reads, writes, external effects, and delayed effects;
identity, role, tenant, time, and other hidden context;
relationships across records and systems; and
which behavior is defined by code versus only observed in traces.
Do not infer a complete API contract from one successful call. Compare varied calls, failures, repository schemas, tests, and approved documentation. Record known limits so a simulated Environment does not claim unsupported fidelity.
Map dependencies and access
Map every dependency needed for discovery, Task construction, model runs, or verification. This can include repositories, trace systems, documents, databases, APIs, applications, sandboxes, model providers, networks, VPNs, proxies, browser sessions, roles, and credentials.
Never read, print, copy, store, or ask the human to paste secret values. Do not
open .env files, credential stores, tokens, cookies, private keys, or secret
configuration. Inspect only safe code and sample configuration that names a
dependency or variable.
When access is needed, tell the human:
which dependency is needed and for what step;
the account, role, scope, or permission required;
the safe setup mechanism supported by the project;
the network or local environment requirement;
whether read-only, sandboxed, frozen, or simulated access can work; and
what fidelity or evidence is lost without access.
The human supplies access through the approved runtime mechanism. The agent uses only that mechanism and never records the value. After a safe access path works, record the reusable setup pattern in project World knowledge: dependency name, required role and scope, variable or profile name, setup command or documentation path, readiness check, and known limits. Never record the secret.
Synthesize evidence
Before proposing Tasks, give the human a clear synthesis. Choose the structure that best communicates the project. Cover:
the Harness and connected-system behavior relevant to evaluation;
real request clusters and representative trace citations;
user-provided detail, common ambiguities, and interaction shape;
tool schemas, system state, effects, errors, and simulation implications;
agent failure patterns and user dissatisfaction signals;
existing eval coverage and defects;
dependencies, safe access needs, and missing evidence;
conflicts, assumptions, and unknown facts;
candidate reusable World knowledge; and
two or three supported Task directions.
Protect private data. Summarize or replace identities and raw content when they are not needed to support the finding.
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.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download eval-engineering.zip