Agents building Agents_
Using Coding agents and SDD to build reliable AI agents
About me_
Alfonso Graziano 🇮🇹🍝
AI Tech Lead @ Nearform
—
2
Let’s connect :D
Everyone wants
AI Agents
—
3
How do we do that?_
AI
AI
—
4
The Problems with Building AI Agents
...and how to solve them partially, with other agents!
—
5
—
5
—
5
AI Agents: a refresher_
—
6
—
6
Two classes of problems_
Bad performances on evals
Bad performances on live data
—
7
—
7
Bad performances on evals - the golden dataset_
Bad performances on evals
—
8
—
8
We have an hello world agent_
—
9
—
9
A naive evaluator_
—
10
—
10
Results are very poor_
—
11
—
11
Some failure modes_
No tools_
The system doesn't have the tools it requires to operate correctly, or the tools are wrong and/or contains bugs
—
12
Wrong system prompt_
The system prompt doesn't align with the rules which are represented in the Golden Dataset
No context retrieval_
The agent is not able to fetch the relevant context to answer correctly
Can an AI agent improve another agent autonomously?
—
13
—
13
—
13
Karpathy's Autoresearch shows that this is possible_
—
14
—
14
How autoresearch works_
—
15
—
15
So, I built auto-agent_
https://github.com/alfonsograziano/auto-agent
—
16
—
16
And it actually works!_
+10% on a
Production agent
—
17
—
17
How does it works?
—
18
—
18
—
18
The core idea_
—
19
The human in the loop_
—
20
Step 1
create a job_
—
21
—
21
Step 2 - run the loop_
* we define how many iterations we want to run
—
22
—
22
Step 2.1
create baseline data_
—
23
—
23
The baseline report_
—
24
—
24
Step 2.2 - running one iteration_
*The generated hypothesis is based �on MEMORY.md, other report files with failures, codebase investigation etc
—
25
—
25
Step 2.x - running every iteration_
—
26
—
26
Step 3 - generate a changelog and evaluate the results_
—
27
—
27
A real test on an already optimized agent_
Fixing bad performances on live data_
Bad performances on live data
—
29
—
29
How do we fix that?_
—
30
—
30
Step 1: The user tests the system_
—
31
—
31
We collect �tracing informations_
—
32
—
32
Step 2 (a): The user gives a feedback_
—
33
—
33
Step 2 (b): Subject Matter Expert annotates the trace_
—
34
—
34
Step 3: Collect all the traces with feedback locally_
npm run fetch-traces-with-feedback.ts --from 2026-03-30 --to 2026-04-03 --limit 200
—
35
—
35
Step 4: Run the analysis_
—
36
—
36
Report example (1/2)_
—
37
—
37
Report example (2/2)_
—
38
—
38
Step 5: Prioritize and act on the feedback_
—
39
—
39
Continuous improvement_
Failure modes found during this investigation step become part of the golden dataset, and the evals suite is updated to spot regressions.
This report gets generated at least once per sprint.
In multiple cases a coding agent has been able to fix an entire suite of issues zero shot.
Complex cases might require the usage of auto-agent
—
40
Harness Engineering
All this is possible, thanks to
—
41
https://martinfowler.com/articles/harness-engineering.html�https://openai.com/index/harness-engineering/
Harness Engineering refers to the idea of building the environment around AI coding agents so they can work reliably: constraints, tests, feedback loops, and governance.
—
42
Spec-Driven Development�
A methodology which allows us to create specs which define our intention, constraints, functional requirements and an implementation plan for the agent.
Quality gates�
Unit tests on the codebase to catch regressions early, a CI/CD pipeline, regression evals, linting, security scanning and much more - to catch issues soon!
Context engineering�
Every repeated workflow becomes a skill. Important things go in rules files or CLAUDE.md files. Creating context becomes the key to continuous improvement.
Observability�
If we don't know what happens when we ship in production, we're blind. Proper observability in place allows us to quickly catch issues and debug properly.
Thank you!_
© Copyright 2026 Nearform Ltd. All rights reserved.