
Config-Based Evaluations
FreeAttach evaluations to workflows using the eval-config tool.
Free · Opens the source repo
What Config-Based Evaluations does
The Config-Based Evaluations skill allows users to integrate configuration-based evaluations into their workflows using the eval-config tool. This skill is particularly useful for those looking to assess the quality of outputs generated by workflows, such as AI agents, by comparing them against predefined metrics and datasets. By leveraging this skill, users can set up evaluations that are not visible on the canvas but operate through the evaluation-config API, ensuring a clean workflow design without cluttering the user interface.
To utilize this skill, users must define several key parameters: a human-readable evaluation name, the starting node where the evaluation begins, the ending node whose output will be judged, and the dataset that contains the test cases. This structured approach allows for precise control over the evaluation process. Users can also specify metrics to judge the output, such as correctness or helpfulness, which are essential for measuring the performance of the workflow against expected outcomes.
The skill is designed for developers and designers who need to implement rigorous evaluation mechanisms within their workflows. It is particularly beneficial in scenarios where the quality of AI-generated responses needs to be quantified and assessed against specific benchmarks. By following the outlined procedures, users can efficiently create, update, and manage their evaluation configurations, ensuring that their workflows meet desired performance standards.
Overall, this skill streamlines the process of implementing evaluations in workflows, providing a robust framework for measuring output quality without the complexity of on-canvas evaluation nodes. It empowers users to maintain high standards in their automated processes, making it an essential tool for anyone working with AI-driven workflows.
When to use it
Use this skill when you need to evaluate the performance of a workflow's output against specific metrics and datasets.
When not to use it
This skill is not suitable for scenarios requiring on-canvas evaluation nodes or where evaluation needs to be visible in the workflow design.
What you can build with it
Evaluating AI Responses
Use this skill to assess the quality of responses generated by an AI agent in a workflow, ensuring they meet expected standards.
Quality Assurance for Workflows
Implement this skill to regularly evaluate the performance of workflows, allowing for continuous improvement and validation of outputs.
Benchmarking Against Test Datasets
Leverage this skill to compare workflow outputs against predefined test datasets, ensuring accuracy and relevance in results.
How to install Config-Based Evaluations
View source1. Install with the skills CLI
npx skills add n8n-io/n8n/config-evals --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by n8n-ioConfig-based Evaluations
Use this skill to attach a configuration-based evaluation to a workflow with the
eval-config tool. A config eval pairs a workflow with a name, a start node, an
end node, one or more judged metrics, and a Data Table dataset. Nothing is added
to the canvas — the config lives off-canvas via the evaluation-config API.
Config evals are the only evaluation form you work with. Do not add, read, rewire, or reason about on-canvas evaluation nodes (EvaluationTrigger, Evaluation/checkIfEvaluating/setOutputs/setMetrics). If the user asks for those, build a config eval instead and briefly say that is how you set up evaluations.
What a Config Eval Needs
name— a human-readable evaluation name.startNodeName— the node where a run begins; it is fed one test-input row. Must be a node with an incoming connection — never a trigger (see step 2).endNodeName— the node whose output is judged.dataTableId— a Data Table holding the test dataset. Create and populate it with thedata-tablestool first, then link it here by id.metrics— one or more judged metrics (see below).
Default Procedure
- Identify the target workflow and read it. Trace the main path from trigger to the node that produces the answer.
- Pick the nodes:
startNodeNameis the first node after the trigger — the node that receives the input the dataset varies. Never use the trigger itself: an eval run swaps the trigger for a dataset-driven one, so the start node must have an incoming connection or the run fails to compile. For a chat/agent workflow this is usually the agent node (often the same asendNodeName).endNodeNameis the node whose output you want scored (usually the AI agent or the final response node).
- Resolve the dataset. Call
data-tables(action="list")to find an existing dataset, or create and seed one withdata-tablesbefore creating the config. Never invent adataTableId; use one returned bydata-tables. - Choose metrics and build the
actualAnswer/expectedAnswer/userQueryexpressions (see Metrics). - Call
eval-config(action="create"), orupdatewhen changing an existing config. The tool shows an approval card automatically — call it and respect the result; do not ask for chat approval first. - Close with facts: evaluation name, workflow, start/end nodes, dataset name and id, and the metrics configured.
Metrics
Each metric is LLM-judged and needs a judge model: a credentialId, a model,
and an outputType (numeric, the default, or boolean). Reuse an LLM
credential the workflow already uses when one fits.
Do not set provider unless you know the exact chat-model node type — it is
derived automatically from the credential you pass (each credential type maps to
one provider). Just pick the credential and the model.
Two presets are available:
correctness— compares the produced answer to a ground-truth answer. RequiresexpectedAnswer(an n8n expression resolving to the ground-truth value, typically a dataset column, e.g.={{ $json.expected_output }}).helpfulness— judges the produced answer against the user's query. RequiresuserQuery(an n8n expression for the input the user asked, e.g.={{ $json.input }}).
Every metric also needs actualAnswer: an n8n expression resolving to the
workflow's produced answer at the end node, e.g. ={{ $json.output }}.
userQuery and expectedAnswer name dataset columns (the input the user
asked; the ground-truth answer). actualAnswer names a field of the workflow's
produced output. Write all of them as ={{ $json.<name> }} — the evaluation
reads dataset columns from the dataset row and actualAnswer from the end node
automatically. Do not reference the trigger or any node by name.
Expression fields must begin with =
actualAnswer, userQuery, and expectedAnswer are n8n expressions — they
read a value out of each test row at runtime. The leading = is what tells n8n
to evaluate the {{ … }} template. Without it the string is stored as literal
text: the field shows {{ $json.output }} verbatim and the judge scores that
raw string instead of the resolved value.
- Correct:
={{ $json.output }},={{ $json.expected_output }} - Wrong:
{{ $json.output }}(no=→ treated as fixed text)
Only add = when the value references workflow data via {{ … }}. A genuinely
fixed constant (rare for these fields) is written as plain text without =.
Pick correctness when the dataset has a known right answer to compare against;
pick helpfulness when there is no single ground truth and quality is judged
relative to the request. Use prompt only to override the default judge prompt.
Dataset Boundary
- Build the dataset with the
data-tablestool: one column for each input the evaluation varies, plus a ground-truth column when usingcorrectness. - The config only references the dataset by
dataTableId; theeval-configtool does not create or populate rows. If no suitable dataset exists, create one first, then create the config. - Do not weaken the evaluation to fit a thin dataset — seed the dataset to match the metrics, or ask the user for the expected answers.
More Detail
Use references/config-eval-playbook.md for tool-call recipes, worked examples, and output shapes.
Frequently asked questions about Config-Based Evaluations
Similar skills
Arize Evaluator
Streamline LLM evaluation workflows on Arize.
Troubleshoot
Analyze logs to understand chat agent behavior.
Agentic Evaluation
Enhance AI outputs through iterative evaluation and refinement.
RAG Evaluation
Evaluate retrieval-augmented generation benchmarks efficiently.
NV-Reason-CXR
Run smoke tests for chest X-ray reasoning models.
Clinical ASR Evaluation
Score and evaluate clinical ASR manifests effectively.
