EvalCommunity Academy · Module II Application Lab

AI Agent Design & Specification Lab

Turn a real M&E task into a structured, testable and evaluable AI-agent design specification.

Workflow Inputs & outputs Validation Human control Evaluability
Core principle
Design the system before building the system.

The purpose of this laboratory is not to make the most sophisticated agent possible. It is to design an appropriate system whose purpose, workflow, evidence, inputs, outputs, validation and human responsibilities are explicit.

Design pathway
1
Purpose
→
2
Workflow
→
3
Inputs
→
4
Evidence
→
5
Tools
→
6
Validate
STEP 1 · PURPOSE

Define the agent's purpose

State the M&E task the system will support and define what it will not decide.

REMEMBER — How to do this
Define the M&E task, not the technology.

Good: “Identify potentially material indicator changes and prepare evidence for evaluator review.”
Weak: “Build an autonomous AI evaluator.”

Tool: Draft this in Word, Google Docs, ChatGPT, Claude or your Module 2 design template.
STEP 2 · WORKFLOW & RISK

Map the workflow and identify risk

Map the real M&E process first. Then identify where errors could have methodological consequences.

INPUT → CHECK → ANALYSE → RETRIEVE → COMPARE → VALIDATE → ESCALATE → HUMAN JUDGEMENT
REMEMBER — How to map it
Map what happens before, during and after each step.

Tools: paper, Word, PowerPoint, Miro, Lucidchart, spreadsheet, ChatGPT or Claude.

For each step ask: What information is needed? What can go wrong? Who checks it?

High risk does not automatically mean “no AI.” It means the design needs stronger controls and clearer human responsibility.
STEP 3 · ARCHITECTURE

Choose the architecture

REMEMBER — Architecture is a design decision
Linear: predictable sequence.
Retrieval: approved evidence must be found and supplied.
Tool-using: external tools are genuinely required.
Conditional: different conditions require different paths.
Iterative: the system must inspect and revise work.
Human-in-the-loop: evaluator approval is required at defined points.
Multi-agent: separate specialised components genuinely add value.

Rule: do not use a more complex architecture simply because it sounds more advanced.
STEP 4 · INPUTS

Specify the inputs

Required
What must always be present?
Optional
What may be missing?
Quality rules
What should trigger a stop or review?
REMEMBER — How to specify inputs
Do not write only “upload the data.” Define the fields, source, units, definitions, timeframe and quality requirements.

For qualitative work, consider transcript ID, metadata, analytical unit, segmentation and anonymisation.
For quantitative work, consider variable definitions, missingness, outliers, denominators and disaggregation.
STEP 5 · OUTPUTS

Specify outputs that can be validated

DATA → EVIDENCE → FINDING → INTERPRETATION → JUDGEMENT → RECOMMENDATION
REMEMBER — Design outputs backwards from verification
Ask: “What would an evaluator need to see to verify this output?”

Do not allow the system to hide uncertainty behind a single overall score or conclusion.
STEP 6 · CONTEXT & EVIDENCE

Specify the context and evidence

REMEMBER — Retrieval is not verification
A document being retrieved does not prove that an extracted claim is correct.

Design the system so important claims can be traced to their source and location, and contradictory or missing evidence can be flagged.
STEP 7 · TOOLS

Specify the tools

REMEMBER — Use the right tool for the job
Use deterministic tools for calculations when reproducibility matters.
Use retrieval systems for approved evidence.
Use Make.com later for connecting systems and automating the workflow.
Use an LLM where interpretation, classification, synthesis or language generation is genuinely useful.

Do not make the model perform a task better handled by a deterministic tool.
STEP 8 · QUALITY GATES

Build validation into the design

REMEMBER — How to build a quality gate
A quality gate should create an observable outcome:

PASS → continue
FAIL → revise / stop / escalate

Later, these conditions can be implemented through explicit validation logic, filters, routers or validation modules in an automation platform.
STEP 9 · HUMAN CONTROL

Define the methodological boundary

AI CAN
Retrieve, organise, classify, compare, calculate with suitable tools and draft defined outputs.
AI CAN ASSIST WITH
Coding, synthesis, interpretation, prioritisation and hypothesis generation when reviewed.
HUMAN MUST DECIDE
Evaluative judgement, contextual interpretation, causal conclusions and consequential recommendations.
AI SHOULD NOT DECIDE
High-stakes methodological, ethical or accountability decisions that cannot be adequately verified.
REMEMBER — Specify the control point
Avoid simply writing “human review required.”

Specify what the human checks, when the human checks it and what happens when the human disagrees.
STEP 10 · FAILURE & ESCALATION

Design what happens when the system cannot safely continue

REMEMBER — Good systems know when to stop
A reliable agent does not need to produce an answer under every circumstance.

Use:
UNCERTAINTY / FAILURE → FLAG → ESCALATE → HUMAN RESOLUTION
STEP 11 · EVALUABILITY

Design the agent so it can later be evaluated

REMEMBER — Design for evaluability now
Ask for every important output:

What counts as correct?
What evidence demonstrates correctness?
What counts as failure?
Can the failure be reproduced and inspected?
WORKED EXAMPLE

Indicator Performance Review Agent

Use this example to understand the level of detail expected. Click Load worked example below to place the example into the editable fields.

Purpose: Review quarterly indicator data, identify material deviations, retrieve contextual evidence and prepare a review brief.

Architecture: Human-in-the-loop agent.

Workflow: Receive data → check completeness → calculate deviation → retrieve evidence → compare supporting and contradictory evidence → identify uncertainty → prepare brief → evaluator review.

Human boundary: The evaluator decides whether the evidence supports an evaluative finding or causal explanation.

Failure rule: Missing or contradictory evidence is flagged rather than silently converted into a conclusion.

Generate your design specification

The generator checks the essential design fields and creates a structured specification for review, copying or printing.

FINAL DESIGN REVIEW

Before you build

0 / 14 design checks confirmed.
A complete specification is not evidence that the eventual agent will work.
It is the blueprint that makes implementation, testing and later evaluation possible.
" ); w.document.close(); setTimeout(function(){ w.focus(); w.print(); },500); }); status("Specification generated. Review it critically before implementation.",true); get("m2result").scrollIntoView({ behavior:"smooth", block:"start" }); } function fallbackCopy(text){ var area=document.createElement("textarea"); area.value=text; area.style.position="fixed"; area.style.left="-9999px"; area.style.top="0"; document.body.appendChild(area); area.focus(); area.select(); try{ document.execCommand("copy"); status("Copied. The specification is on the clipboard.",true); }catch(e){ status("Copy was not available in this browser. Select the specification manually.",false); } document.body.removeChild(area); } function example(){ get("m2purpose").value= "Review quarterly indicator data, identify material deviations, retrieve contextual evidence and prepare an evidence-grounded review brief for evaluator review."; get("m2not").value= "The agent does not determine whether the programme caused the observed change and does not make the final evaluative judgement."; get("m2workflow").value= "1. Receive indicator data\n2. Check completeness and definitions\n3. Calculate deviation from target\n4. Retrieve relevant contextual reports\n5. Compare supporting and contradictory evidence\n6. Identify uncertainty and alternative explanations\n7. Prepare structured review brief\n8. Evaluator reviews and decides."; get("m2risk").value= "Interpreting an observed indicator change as evidence of programme success or failure. The system must distinguish observed change from causal explanation and evaluative judgement."; get("m2architecture").value= "Human-in-the-loop agent"; get("m2aireason").value= "The task requires retrieval, conditional investigation and evidence synthesis, while consequential interpretation remains subject to evaluator review. A simpler deterministic calculation alone would not perform the full task."; get("m2inputs").value= "Indicator ID; indicator definition; baseline; target; actual value; previous value; reporting period; geography; population group; data-quality status; approved contextual sources."; get("m2outputs").value= "Indicator; reporting period; actual value; target; calculated deviation; evidence; source; interpretation; contradictory evidence; alternative explanations; uncertainty; reviewer action."; get("m2context").value= "Theory of change; evaluation questions; indicator definitions; approved targets; reporting period; geography; population; programme context; methodological limitations."; get("m2evidence").value= "Monitoring database; quarterly reports; implementation records; programme documents; contextual reports; approved evaluation evidence."; get("m2retrieval").value= "Search approved sources using indicator ID, reporting period, geography and relevant programme terms. If no sufficiently relevant evidence is found, flag the issue rather than inventing an explanation."; get("m2tools").value= "Spreadsheet / calculation"; get("m2toolreason").value= "Use deterministic calculation for deviation from target and previous period. Return the calculated values to the AI step for interpretation."; get("m2rules").value= "1. Missing required input → stop.\n2. Missing evidence source → flag.\n3. Contradictory evidence → flag for human review.\n4. Unsupported causal claim → reject or revise.\n5. Consequential judgement → require human approval."; get("m2human").value= "The evaluator verifies evidence, examines alternative explanations and decides whether the observed change constitutes an evaluative finding. The evaluator approves any substantive conclusion or recommendation."; get("m2failure").value= "Missing data → flag.\nContradictory sources → present both and escalate.\nTool/calculation failure → stop and report.\nAmbiguous indicator definition → request clarification.\nUnsupported causal explanation → remove and flag.\nInsufficient evidence → report the evidence gap."; get("m2measure").value= "Calculation accuracy; evidence-groundedness; completeness; source attribution; contradiction handling; correct escalation; reviewer agreement; processing time."; root.querySelectorAll(".m2validation").forEach(function(e){ e.checked=true; }); root.querySelectorAll(".m2eval").forEach(function(e){ e.checked=true; }); status("Worked example loaded. Modify the fields for your own M&E task, then generate the specification.",true); } function save(){ try{ var data={fields:{},validation:[],eval:[],checks:[]}; root.querySelectorAll("textarea,select").forEach(function(e){ data.fields[e.id]=e.value; }); data.validation=selected("m2validation"); data.eval=selected("m2eval"); root.querySelectorAll("#m2checks input").forEach(function(e){ data.checks.push(e.checked); }); localStorage.setItem("ecm2lab_saved",JSON.stringify(data)); status("Saved locally. No information was sent to an external service.",true); }catch(e){ status("Local saving is unavailable in this browser. The lab itself remains functional.",false); } } function restore(){ try{ var raw=localStorage.getItem("ecm2lab_saved"); if(!raw){ status("No saved Module 2 design was found in this browser.",false); return; } var data=JSON.parse(raw); if(data.fields){ Object.keys(data.fields).forEach(function(id){ var e=get(id); if(e){e.value=data.fields[id];} }); } root.querySelectorAll(".m2validation").forEach(function(e){ e.checked=data.validation.indexOf(e.value)>=0; }); root.querySelectorAll(".m2eval").forEach(function(e){ e.checked=data.eval.indexOf(e.value)>=0; }); if(data.checks){ root.querySelectorAll("#m2checks input").forEach(function(e,i){ e.checked=!!data.checks[i]; }); } updateCount(); status("Restored. Your saved Module 2 design has been loaded.",true); }catch(e){ status("The saved design could not be restored.",false); } } function reset(){ root.querySelectorAll("textarea").forEach(function(e){ e.value=""; }); root.querySelectorAll("select").forEach(function(e){ e.selectedIndex=0; }); root.querySelectorAll("input[type=checkbox]").forEach(function(e){ e.checked=false; }); get("m2result").style.display="none"; get("m2result").innerHTML=""; get("m2status").style.display="none"; updateCount(); } get("m2generate").addEventListener("click",generate); get("m2example").addEventListener("click",example); get("m2save").addEventListener("click",save); get("m2restore").addEventListener("click",restore); get("m2reset").addEventListener("click",reset); updateCount(); })();