← All AI Engineer talks

AI Engineer World's Fair 2026

The Agentic AI Engineer

Read the talk

The Agentic AI Engineer: From Specifications to Reviewed Fixes

An agent-building loop needs more than automated code changes: it needs explicit requirements, actionable evaluations, production diagnostics, and a path from discovered failures to reviewed fixes.

From a talk by Benedikt Sanftl and Burak Cemil Özafşar

Before you start: Familiarity with tool-using agents, execution traces, and basic software testing will help you follow the lifecycle.

When reviewing changes becomes the bottleneck

How do you keep improving agents when every change still needs someone to inspect the results? Building an agent already involves an offline loop: implement, test, evaluate, improve. Deployment adds an online loop: monitor production traces, diagnose failures, and feed those findings into the next version. Benedikt Sanftl and Burak Cemil Özafşar introduce this problem from their work at Mutagent, where they introduce themselves as CEO and co-founder, and CTO, respectively.

The familiar workflow starts with an issue. An engineer implements a change, perhaps with a coding agent, generates samples, and then reads the outputs and traces. Shipping and A/B testing may follow, but interpreting the feedback remains manual. When an organization plans to roll out hundreds of agents, that review work becomes a scaling constraint. Automating implementation alone leaves much of the development cycle untouched.

Slide showing implement change, generate samples, manual evaluation and hand tweaking around a loop, with a central clock and three limitation panels below.
Manual evaluation is the bottleneck in a slow development loop.

The opportunity is to fit more complete improvement cycles into the same time window. The proposed Agentic AI Engineer extends agentic work beyond writing code to the evaluation, diagnosis, and optimization that determine whether a change is worth keeping.

0:010:13
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

0:01 · section reference included

Give every stage an explicit job

The lifecycle begins by separating the responsibilities that a single coding session can otherwise blur together:

  1. Specify. Define the agent’s responsibilities, functions, and decisions under particular conditions.
  2. Build. Realize that specification in a harness or framework, including a coding environment such as Claude Code or Codex.
  3. Evaluate. Check whether the implementation meets functional requirements, much as unit tests check software behavior.
  4. Ship. Update the code, an agent platform, or agents running in a local harness.
  5. Monitor. Observe production executions and trigger diagnostics, for example after a volume of traces accumulates or on a daily or weekly schedule.
  6. Diagnose. Collect failures and categorize their root causes.
  7. Optimize. Make targeted changes for the identified failure modes, then evaluate again before redeploying.

There are two entry paths into this lifecycle:

Starting pointWhat already existsWhere work begins
Cold startAn intended capabilityConceptualization and specification
Existing featureA running agent with some level of accuracyImprovement of the existing implementation

An existing agent does not need to be rebuilt from scratch to benefit from the loop. Its current behavior supplies the starting point for optimization.

Flowchart connecting cold-start and existing-feature inputs to specification, build, evaluation, release, monitoring, diagnosis and optimization, with production outputs at right.
New features and existing issues enter an orchestrated agent development lifecycle.
3:093:34
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

3:09 · section reference included

Keep the specification independent of the runtime

A useful specification captures the requirements and success criteria of the process the agent will handle. Outside coding, those processes often differ substantially between companies. The agent needs the right context for its particular environment, rather than only a generic instruction to complete a task.

The specification should make four things explicit:

  • Context: What information must be available to complete the work?
  • Integrations and tools: Which systems and operations does the agent need?
  • Responsibilities: Which jobs does it own, and which jobs are outside its remit?
  • Constraints: What boundaries must it respect while making decisions?

Together, these become the blueprint against which future implementations are judged.

The coding agent then translates that blueprint into an implementation for the chosen platform. Keeping the specification separate from implementation details matters because the runtime may change while the business requirements remain. Changing frameworks a year later is one possible scenario; the specification should still explain what the replacement must accomplish.

Özafşar grounds this flexibility argument in the team’s experience building agents over three years. A framework may lack a required capability, or a bottleneck may leave the team waiting for an upstream fix. The practical aim is to choose a harness that fulfills the requirements without making those requirements dependent on that harness. Sanftl points to the movement toward agent-loop runtimes, naming Hermes and Deep Agents as examples.

7:157:38
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

7:15 · section reference included

Discover what good enough means

Once an initial implementation exists, evaluation-driven development supplies a stopping condition. An autonomous worker needs a way to determine whether the agent is good enough to move forward. The evaluation suite has two parts: the metrics or criteria used to judge behavior, and the dataset of cases the agent must satisfy.

Domain experts can define the initial criteria, but they cannot anticipate the entire suite. Historical examples provide a starting dataset; synthesized cases based on known samples provide another. Over time, user feedback and production failures expose missing criteria, edge cases, and difficult inputs. The evaluation suite is a product of discovery. It becomes more useful as it captures the actual situations in which the agent fails.

Özafşar illustrates the review burden with a hypothetical dataset of 200 items. Without automated evaluations, someone has to inspect results in observability dashboards and logs. Repeating that work across many features or parallel experiments stretches the evaluation stage until the reviewer becomes the bottleneck. An evaluator agent can take on the trace-sifting work in the background, but the engineer still has to design a clear evaluation or termination gate.

11:1611:41
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

11:16 · section reference included

Evaluate the trajectory and make failures actionable

An agent receives a task or intent, then acts under a system prompt or decision structure. Evaluating that execution means inspecting the trajectory, not merely reading the final response. Was the necessary context available? Did each tool return usable information? An incorrect intermediate tool result can propagate into the final answer, even when later steps appear reasonable.

The harness also affects behavior, so it belongs inside the evaluation boundary and can itself become a target for optimization. Assessing only an isolated prompt or model misses the interactions that determine how the agent performs the task. For tasks that change external state, the resulting state also needs checking: a plausible trace alone does not establish successful completion.

Evaluation must then produce feedback that supports a change. A score from an LLM judge can be useful, but a poorly defined rubric leaves the engineer guessing what to fix. Özafşar prefers binary criteria when they identify a specific violation and a corresponding corrective action.

Evaluation formWhat makes it useful
ScoreA rubric that explains what each level means
Binary criterionA precise condition whose failure identifies a problem

The distinction is about the quality of the feedback. A pass/fail label still needs a meaningful criterion behind it.

Judge calibration is part of the experimental setup. Different judges can disagree, and the same judge can assess the same case differently across runs. That variance must be controlled well enough to compare versions; otherwise an apparent improvement may reflect scoring noise. Consistent judgments are necessary for a useful comparison, but consistency alone does not establish that a judge is correct.

15:2315:48
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

15:23 · section reference included

Turn recurring failures into cheaper checks

After deployment, executions supply evidence of recurring failure modes. Diagnostics groups those occurrences by root cause and origin: a problematic prompt section, a missing tool, or a malfunctioning tool, for example. Once the failures are categorized, the next step is to generate evaluations that detect them, followed by remedies intended to address them. Over time, the agent accumulates a history of failure modes against which later versions can be checked.

The first diagnosis may require deep reading of LLM traces. Once a failure is understood, however, it may have code-checkable indicators: particular content or a recognizable sequence of tool calls. Those indicators allow subsequent diagnostics to locate known problems without interpreting every trace from scratch.

Özafşar warns that, at millions of traces, reading every trace can cost more than executing the agent itself. The talk supplies no workload or cost measurement for that comparison. The proposed response is representative sampling: segment the trace population and use learned indicators to guide which traces receive deeper inspection. The accompanying diagram shows the aggregation step—clustering, categorizing, and ranking failing traces into a shorter list of causes.

A grid of failing traces leads to five horizontal bars for ranked causes, above panels labeled Cluster, Categorize and Rank.
Failing traces are clustered, categorized and ranked into a short list of causes.
18:5719:20
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

18:57 · section reference included

Connect experiments back to production

With an evaluation suite in place, an optimization agent can vary parts of a feature and run experiments toward target scores, including auto-research-style experimentation. The speakers envision automatic shipping once those targets are met and the evaluation suite is green. Production then supplies the outer loop: diagnostics discovers another issue, proposes a remedy, and sends it into the next round of optimization. This is the talk’s proposed autonomous release loop; current Helix documentation instead specifies approval before changes land.

The specialist agents performing these stages collectively form the Agentic AI Engineer. The offline loop improves performance against the current test dataset. The online loop brings in real user feedback and live traces, clusters failures, and derives new evaluation criteria. Those criteria feed back into both the specification and the agent, so the system’s definition of acceptable behavior grows with production experience. This is the mechanism behind the speakers’ expectation of continued improvement, rather than a demonstrated accuracy result.

Seven numbered lifecycle steps beside an agent diagram linking specification, an evaluation system, offline evaluation and optimization, and online deployment, monitoring and diagnosis.
The lifecycle joins offline evaluation and optimization with online monitoring and diagnosis.
22:1622:33
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

22:16 · section reference included

Run specialist agents inside the coding environment

In the product configuration described during the talk, Mutagent runs in the customer’s environment, locally or in the cloud; a managed service is presented as future work. Two agents are in research preview:

  • Evaluator agent: Helps build evaluation sets and datasets that support the optimization loop.
  • Diagnostics agent: Analyzes existing production traces, reducing the time engineers spend reading them manually.

An orchestrator connects these agents inside the coding environment.

Source connectors bring in traces and incident reports. Those sources can include trace stores, ticketing systems, and Slack messages where users report failures. The output can target several engineering surfaces: a GitHub pull request, edits to agent Markdown files, framework-specific changes, or deployment to managed services. The orchestrator dispatches the specialist work while those connectors connect it to the systems the team already uses.

25:0625:23
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

25:06 · section reference included

Start with a scoped diagnostic request

The demonstration uses Claude Code as the harness. On startup, the orchestrator shows a dashboard of lifecycle stages, agents found in the codebase, and prior configurations. Slash commands trigger individual workflows; choosing diagnose starts root-cause analysis. The request can target an entire agent or all invocations of a particular skill.

Diagnostics retrieves traces from the configured source, which may be Langfuse, local Claude transcripts, or a JSONL export from an observability platform. Because the diagnostic run takes time, Özafşar switches to a pregenerated result to demonstrate the output. The report walkthrough therefore shows the review workflow, rather than a diagnostic run completing live.

27:0527:26
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

27:05 · section reference included

Inspect the evidence behind the diagnosis

The result is an HTML report that identifies the agent and its tools. When code access is available, it can also identify the harness or framework. The report surfaces primary signals or failure modes according to how frequently they occur in the sampled traces.

The diagnostic process uses multiple tiers of filtering or segmentation to select a representative sample. An LLM first reads a portion of the traces for obvious problems; those findings guide which signals receive further attention. The displayed report places a signal census alongside coverage cards and a timeline heatmap, making the scope of the inspected evidence visible with the findings.

Dark report showing a signal census table, coverage cards with 1,946 traces and a 102-trace representative sample, and a colored timeline heatmap.
The diagnostic report presents failure signals alongside scan and sample coverage.

A diagnostic request can also start with a known issue. If a user has reported a particular problem, the engineer can supply it when launching the workflow. The agent then performs a guided search for related incidents, rather than relying entirely on open-ended discovery to decide what matters.

29:1329:24
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

29:13 · section reference included

Review assumptions before handing off fixes

The overview shows the detected issues and their frequency within the selected timeframe. Each failure-mode tab explains the problem and follows a recursive why chain toward its origin, then offers possible remedies. This turns a list of symptoms into a proposed account of what caused them and what could change.

An assumptions block makes that account reviewable. Traces do not always include the code needed to establish why an agent behaved as it did, so the diagnostics agent may infer details incorrectly. The reviewer can inspect and correct those assumptions before selecting fixes. Remedy selection supports both the recommended choice and multiple remedies when several are needed.

After reviewing the individual problems, the user reaches a decisions page with a general feedback field. Özafşar mentions Wispr Flow as a way to dictate that feedback into text. The final output is a Markdown task definition that carries the reviewed decisions back to the coding agent in the terminal. A compact handoff can keep the proposed work and its verification together:

markdown

# Approved Remedies

## Failure mode
Describe the recurring problem and the evidence supporting it.

## Reviewed assumptions
Record corrected assumptions and any remaining unknowns.

## Selected remedies
List the changes approved for implementation.

## Verification
Add a regression case for the diagnosed failure.
Run the evaluation suite before proposing a release.

The demonstration ends with this handoff. The selected remedies are ready for the coding agent to apply; the report itself has not established that those changes were implemented or deployed. The engineer’s work is concentrated on reviewing the diagnosis and deciding what should change, while the agents handle the repeated inspection and preparation.

Decisions page with a general feedback field, a live Markdown preview headed Approved Remedies, and a Copy decisions as markdown button.
Reviewed remedies appear in a Markdown handoff on the decisions page.
31:3931:56
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

31:39 · section reference included

Resources

From the talk

  • Nous Research's agent with persistent knowledge and a loop for creating and improving reusable skills.

  • Practical guidance on agent trajectories, outcomes, grader calibration, repeated trials and regression suites.

Updates since the talk

Read the complete timestamped transcript
  1. 0:01

    Oh. Hi, everybody. Uh, welcome to our talk, The Agentic AI Engineer. I'm Bene, CEO and co-founder of, uh, Mutagent, and I'm here with my colleague.

  2. 0:13

    Hi, I'm Burak. I'm the CTO of Mutagent, and today we're basically gonna talk about loops and how the Agentic AI Engineer works.

  3. 0:28

    So as you're all aware of now, loops is the hot topic, how you build software, uh, in an agentic loop. And, uh, we apply the same loop to the building of AI agents.

  4. 0:40

    And as you're all aware, there's, uh, two concepts here. One is the offline loop, where while you build, you iterate, um, on your agent, you test it, you evaluate it, you improve it, and you go on.

  5. 0:54

    And then you have a second loop, which is-- we call the online loop, where once your agent is deployed to production, you monitor its traces, you diagnose this, and then you feed it back into your optimization loop, uh, yeah, to iterate and have multiple versions of your agents.

  6. 1:13

    Yeah. Up to until now, um, what we u- did was, uh, this l- doing this loop manually. It's quite slow. Um, the life cycle is basically, um, you have an issue, um, you wanna change something to your agent.

  7. 1:28

    Um, yeah, you implement the change. Um, you maybe VIP implement the change if you use coding agents for it. Um, yeah, you generate some samples for this new feature or issue to test it.

  8. 1:39

    Um, yeah, then you look at the result, you look through the traces, how does the outcome look like. Then you maybe ship it, you do A/B testing, and all your feedback is kind of manually.

  9. 1:50

    It takes very long. Um, yeah, and, uh, the, the bottleneck basically becomes the human, uh, review and the human, yeah, building time. And, uh, yeah, that you can't scale, especially if in your organization you're now planning to roll out hundreds of agents, uh, et cetera.

  10. 2:13

    Yeah, and, uh, yeah, this is why we think the Agentic AI Engineer is the natural next step to build agents. And I'll have, uh, Burak deep dive into how we improve timing and, uh, the road to production reliability with the Agentic AI Engineer.

  11. 2:33

    Uh, so yeah. The key thing here is basically once you reach a certain number of agents or AI-based features, the human performing this loop, again, cannot really scale in enough time.

  12. 2:49

    So this is why doing this agentically is the key to increasing the throughput, because then you can fit many more cycles into the same time window. And now how that loop works is basically we have a few stages.

  13. 3:09

    So this is when you are starting from scratch. Uh, like the current software development practices, you first create a spec for your agent or your skill in this case, and here you need to define all the responsibilities and the functions that agents needs to handle, the decisions that it has to make on

  14. 3:34

    certain conditions. And here, again, this is only the definition stage. Once you defined your agent's requirements, then you can finally go on to the build, and build is where you then realize that spec in a specific harness or, uh, agent framework or in these days, you could even build it as a Claude code or

  15. 3:59

    a Codex agent. Then comes the next step. This is where you define clear evaluations to evaluate your agent's performance, because these are the key metrics then where you can say, "Hey, my agent is functional or not."

  16. 4:17

    Uh, can think of essentially equivalent to unit tests for coding. This is how you verify, uh, your agent works. Then, uh, after evaluation, if everything looks fine, you usually have the ship, uh, basically where you deploy this agent to production.

  17. 4:37

    Uh, again, this can be a code update, this can be a direct update on, uh, any agent platform or again, your local, uh, harness agents. Then comes the online part.

  18. 4:51

    This is where then the agent is continuously monitored for issues and based on certain trigger conditions, then you can start automatic diagnostics. Again, this can be based on the volume of traces that your agent generates or, you know, weekly or daily jobs.

  19. 5:10

    Uh, then we go into diagnosis stage. This is where you collect all the failures for your agents and do structured root cause analysis to then understand where the failures are coming from.

  20. 5:25

    Once you understand and categorize the failures, then you can finally go on to the optimization stage. This is where then you create, let's say, very specific changes or mutations for your agents, uh, to deal with the found failure modes.

  21. 5:43

    And then the whole cycle repeats again. You evaluate, and if everything looks good, then you can deploy again. Now, we will maybe do a deep dive on each stage, what that entails, uh, then-

  22. 6:01

    So, uh, before we continue, Burak, um, we have two paths here. Um, like, uh, one is the cold start path and one is basically existing features. Um, should we dive deeper for like a half a minute on what the difference is here, what, uh, we see and why this is important?

  23. 6:17

    Uh, yeah.

  24. 6:19

    Yeah. So today, if you again sit down to build an agent, there are, you know, two options. Either you already have an agent, it's built, it's already running somewhere with, um, you know, certain accuracy.

  25. 6:36

    Uh, however, um, the other option is, again, you are creating from scratch. So when you create from scratch, obviously you design with the spec and the conceptualization stage. If you have an existing feature, the most likely, again, the agent is there, but then you are optimizing over something that already exists.

  26. 7:01

    Okay, cool. And, uh, yeah, let's dive deeper into each phase. I mean, uh, you just mentioned the speccing of new building agent, so this seems to be an important artifact, so let's dive into it.

  27. 7:15

    Right. Uh, so with the spec-driven development, also prevalent for building software, uh, artifacts these days or any kind of coding agent workflows, basically the goal is to capture the requirements for the agent and especially the success criteria.

  28. 7:38

    Uh, the reason being, apart from coding agents, the agents in other domains, uh, they handle specific processes and this, uh, differs from company to company, so it's very specialized to the environment where the agent is in.

  29. 7:59

    And then the key point here is to clearly define which context requirements that the agent, uh, has, uh, again, which integrations and tools it then needs to have, what are the jobs to be done or the responsibilities that the agent will handle and what it will not, and then finally, again, the

  30. 8:24

    constraints, uh, and in general, the boundaries for the agent. Um-

  31. 8:32

    Okay

  32. 8:32

    ... now, once we can define a clear spec, as I said, it becomes like a blueprint for any future development, which then the implementation is held against.

  33. 8:46

    Uh-

  34. 8:46

    Okay. Then let's dive into how we would then build an agent from the spec, right?

  35. 8:53

    Right. So basically then the spec tells your coding agent, uh, what to build, and then here the target platform choice is entirely yours 'cause as, uh, I mentioned, the agent space is very...

  36. 9:16

    changing very rapidly these days. So the framework you are using today, you might wanna change, you know, in a year or so. So essentially because of that, uh, spec is, um, isolated from the implementation detail.

  37. 9:35

    So once you decide to build, you can pick any target. Here then your coding agent of your choice will take that spec and give you a, you know, initial version of that agent, uh, which is then basically customized to run on any platform that you see fit.

  38. 9:55

    And-

  39. 9:55

    Why would I want to change the platform, uh, in a year down the line? So what, what, what did we learn out of experience here? Um-

  40. 10:05

    Uh, again, building agents for the last three years, sometimes the agent framework or the harness does not always have the capabilities or-

  41. 10:18

    Mm-hmm

  42. 10:19

    ... occasionally you hit, um, like a bottleneck or a roadblock, and then you have to rely on the underlying framework to kind of get rid of that, and this can sometimes take a while.

  43. 10:34

    The key here is to be flexible because, yeah, essentially again, it-- you wanna pick the best harness or the framework that can, you know, fulfill your requirements.

  44. 10:50

    Uh-

  45. 10:50

    Mm-hmm. I mean, we've all seen it in the, in the last months, uh, we [chuckles] how new harnesses shipped and, uh, yeah, how everything went from like, uh, agents built in code towards, uh, yeah, defined as like an agent loop runtime.

  46. 11:05

    I mean, we've seen Hermes coming up, uh, deep agents and all of these frameworks, right?

  47. 11:10

    Yeah.

  48. 11:12

    Okay, let's continue. Uh, what happens after build?

  49. 11:16

    Now, after you build for agents, uh, you essentially go into the eval-driven development loop, which I would call, and this is kind of equivalent to test-driven development for building software with agents because then the agent needs a termination condition, right?

  50. 11:41

    So when is an AI feature or an agent is good enough? So here again, there are two ways to kind of create your eval suite, which is composed of the evals, uh, like the metrics and the criteria you evaluate, and the data sets themselves, which usually contain the cases you have to satisfy.

  51. 12:07

    Now, in the beginning, the original option is that you can sit with your domain experts, uh, and then try to write down

  52. 12:21

    eval metrics and criteria that would cover the feature or the agent you want to build. But most teams working on that will already know that this is a bit difficult, as in you cannot pre-guess the entire evaluation suite from the beginning.

  53. 12:41

    And secondly, you can always start with historical data or synthesized data from a known, uh, you know, sample of the data that you would like the agent to be tested on.

  54. 12:57

    But essentially, the real and the complete eval suite is a product of discovery. What that means is over time, from user feedback, from production failures, you collect the metrics and criteria plus the additional dataset cases, uh, which is often representative for edge cases

  55. 13:22

    or, you know, hard cases that the agent needs to deal with. And with that, then you finally have an evaluation suite where you can run the agent against and exactly know where it fails, uh.

  56. 13:39

    Okay. Before we continue, why does the agentic AI engineer help us here so much? So, um, obviously we're talking about the evaluator agent, so

  57. 13:49

    why is it so, why is it so good to use this kind of concept or thought process in the building?

  58. 13:56

    Uh, I mean, one issue is, again, imagine you have a dataset item of 200. Uh, here without automated evals, running this and evaluating by like human eyes takes quite a while.

  59. 14:15

    Uh, you would have to, again, scroll through an observability dashboard and logs, uh, and this in turn increases your loop time per eval state. So as soon as you have a lot of features that you need to evaluate and experiment on, then it suddenly becomes impossible to, you know, do this quickly or in

  60. 14:40

    parallel. Then the human essentially becomes the bottleneck. Uh-

  61. 14:45

    Okay. So we just have an agent do this work in, uh, sifting through traces.

  62. 14:50

    Yes. As the current era says a bit, you know, the... You design loops for your agent, so then they can autonomously work as many of these things in the background.

  63. 15:04

    Uh, and then your job becomes designing these loops with a clear eval or termination gate.

  64. 15:12

    Okay. Understood. So let's look at the how a good eval, uh, supposed to be constructed and what it kind of evaluates.

  65. 15:23

    Right. So in the context of agents, uh, in general, the mainly the trajectory is important because, uh, agents receive input or let's say intent or tasks, and then they have a specific system prompt or like a decision tree that they kind of operate

  66. 15:48

    over. And when doing agent evaluations, again, in general, we check, hey, was the context complete? As in, did the agent have all the required context, uh, to perform the task end to end?

  67. 16:03

    Then this includes also chain, uh, checking every, you know, tool output in the trajectory because every wrong tool output in, um, session can in the end lead to a wrong output as the final output.

  68. 16:22

    Uh, and apart from that, again, there are different things you can evaluate on. So these days also the harness that the agent is op-operating on, uh, has, uh, quite drastic effects on the agent behavior.

  69. 16:40

    And this is again another vector of optimization. But in the end, when you evaluate an agent, you would like to evaluate all of these things and not something in just isolation.

  70. 16:55

    Mm-hmm.

  71. 16:58

    Right. And in general here, what makes an eval useful? So you can always have, uh, you know, metrics or evals that are working in a LLM as a judge fashion and give you some score.

  72. 17:19

    But here, in order to make an eval, you know, useful, it has to provide actionable feedback. Uh, as in, uh,

  73. 17:31

    when you use score-based evals, unless your rubric is very well defined, then this does not exactly tell you what to fix. Uh, in such cases, using, uh, binary type of evals or criteria, uh, is preferred because there you have a kind of a call to action.

  74. 17:55

    If an eval or a criteria fails, then you know exactly what happened and how to kind of deal with that problem. Then, uh, another point is your LLM as a judge solution should be calibrated so that you don't have the scoring noise between judges because- Since LLM

  75. 18:20

    are, LLMs are undeterministic, what you will mostly encounter is the same judge can, uh, evaluate a problem different ways on each run. And then here you have to make sure your LLM-as-a-judge solution deals with this variance problem.

  76. 18:40

    Otherwise, it's, uh, hard to run experiments and conclusively say, "Hey, my initial or my improved version is better than my initial version of my agent."

  77. 18:54

    Mm-hmm.

  78. 18:57

    Right. Uh, after then evaluation, basically we go live, and this is where then, uh, collecting, let's say, learned failures, failure modes, or primary signals, uh, from the executions takes place.

  79. 19:20

    Um, here the idea is, again, when an agent encounters a problem over time, there will most likely be multiple occurrences of this. So it starts by identifying what failure mode, uh, that the agent has encountered, and then grouping essentially these failure

  80. 19:45

    modes by the root causes and where they originate from. Again, this could be a section in the agent prompt. This could be missing tools or, let's say, malfunctioning tools.

  81. 20:01

    But after your diagnostics results are categorized, then you can finally generate new evaluations, first to detect these problems, and then second, you can generate improvements and remedies based on these problems.

  82. 20:24

    And yeah, with that, over time you have, um, a buildup of these learned failure modes. So then every agent over time, uh, gathers, uh, these historical data that it can always check against.

  83. 20:44

    When you, uh, start diagnosing, there's a bit of a upfront cost in the beginning because you often need to deep read the LLM traces to find out what's going on.

  84. 20:59

    Over time, you can, uh, collect code- unchecked able indicators, uh, per failure mode. What that means is there are maybe specific pieces of content or there's a specific tool call sequence where you know that the agent will encounter an issue, and then this later on helps you to diagnose problems in your traces without

  85. 21:24

    actually having to read through all your traces. Now, why is that a problem? Because if you have, uh, let's say, millions of agent traces,

  86. 21:37

    trying to read all of these, uh, it actually costs more than the execution itself. So it's not the most efficient way of diagnosing

  87. 21:49

    the problems. Uh, what you want to aim for is, again, try to, uh, pick a representative sample, uh, from your, uh, whole traces, uh, by, you know, um, intelligent segmentation strategies and using, again, as I said, the learned indicators.

  88. 22:13

    Okay. Cool. And-

  89. 22:16

    And then with that, you can finally start building the autonomous optimization loop, because here then given that you have a eval suite, you can, you know,

  90. 22:33

    vary your feature. Again, update certain sections or even run auto-research style experiments to see that whether you can reach the desired or the target scores for your evals. As long as you can reach that, then it's automatically shipped to production.

  91. 22:52

    Then, uh, from production, you have your outer loop. Uh, again, every issue that's found then on diagnostics gives you a improvement or a remedy, which then you can optimize on, and then as long as the eval suite is green, then this again gets deployed to production.

  92. 23:16

    Let's continue now with the whole life cycle. Um, yeah. As we learned now, the details of each, everything starts with a spec. Um, you def-define and design it. Uh, you build your agent and all of this can be done obviously agentic.

  93. 23:32

    So you define agents that do this work, and then they all together become, uh, the Agentic AI Engineer. Um, you go through the offline loop where once you build your evaluation system, uh, yeah, you evaluate, you optimize, you test, you improve your accuracy on your test data set.

  94. 23:51

    Once you feel ready, you deploy it to production, and that's when the online loop starts. Here you get real feedback from users. Um, yeah, uh, real test cases. You continuously monitor them.

  95. 24:04

    You look at your live traces. You diagnose them, as we learned before with the diagnose agent. You can do re-root cause analysis. You can cluster your failure modes. Uh, you'll derive new eval criterias from it.

  96. 24:16

    They become part of the spec. Uh, they become co-part of the agent. So they, they continuously grow with you while you use your agent in production. And, uh, yeah, this becomes the online loop, and the more use cases you collect, the more use production data you see, the better your agent becomes, and the better scoring your agent

  97. 24:37

    becomes. And this all together now, um, becomes one end-to-end loop that you can run agentic and, uh, yeah. From here on, uh, yeah, you can now see the combination to software-driven development with coding agents.

  98. 24:54

    You can transport these concepts also for AI engineering and building AI agents. And, uh, now as we at Mutagent work on this, we're gonna show you now how this l- looks like as a product.

  99. 25:06

    Um, this is kind of how it looks like. Um, for now, everything runs in your environment and we-- in, as cloud and local. Um, we'll offer managed service down the line.

  100. 25:23

    Um, so it's a set of, uh, agents. We have two in research preview, the ones we talk deep about this in our talk. First one is the evaluator agent that helps you build an eval set, a good data set, because this is the core of the optimization, the eval-driven development loop.

  101. 25:39

    The second one we have is the diagnose, the diagnostics agent. It does you-- It helps you diagnose your traces you already have in productions because we learn from our users that reading through these traces took them a lot of time and having kind of an agent they can just spin off from their coding environment to analyze the

  102. 25:59

    traces is, uh, very helpful to them. And, uh, as you can see here, um, both of these agents, um, are connected through an orchestrator, which runs in your coding environment.

  103. 26:12

    And what you need basically is connectors to sources where you basically have all your traces, where you get your incidents from. This could also be like a ticketing system, um, Slack, where people report failures of your agents.

  104. 26:27

    Then you connect them and then obviously, as we mentioned before, there's different target platforms. Um, this could become a PR that automatically gets raised in GitHub. Um, this could be just the adjustment of your agents in, uh, yeah, in MD files.

  105. 26:44

    Uh, yeah, different frameworks we target and, uh, or being deployed to managed services. Um, yeah, kind of this is how our platform works. Um, we spin up different agents.

  106. 26:54

    They're all connected to an orchestrator and, uh, I guess Burak, let's show, uh, our first agent in research preview, uh, to the audience.

  107. 27:05

    Uh, you can practice. Uh, as I said, you have, um, orchestrator, which kind of handles the dispatch for all the other sub-agents or the stages we have. Then, then you can use it in any coding, um, harness or agent you want.

  108. 27:26

    In this case, I'm using Cloud Code. But then what it will do is when you first boot up, it will show you kind of like a dashboard of which stages you have and also kind of the existing things in, uh, let's say your code base, your agents, and the prior configurations.

  109. 27:46

    Now, here I have some star commands. These are basically, let's say, trigger commands for the workflows or specific stages. And if I type diagnose here, this will basically start the diagnostic stage for the root cause analysis.

  110. 28:07

    And here, again, you can point the diagnostics into a specific scope. This can be an agent, this can be a skill as well, so you could basically diagnose all invocations of a particular skill.

  111. 28:24

    Here, uh, o- one-- when you start the diagnostics, it will, uh, retrieve traces from your configured source platform. In this case, again, it can be something like Langfuse, it can be your local cloud transcripts or, or another, you know, like a JSONL format that's, like,

  112. 28:49

    exported from one of the observability platforms. Now, uh, the diagnostics run itself takes quite a while to finish, so I will show you instead a pre-generated, uh, kind of version of what it does and how that looks like in the end.

  113. 29:08

    Okay, so what do we see here now?

  114. 29:13

    So basically, once you run the diagnostics agent, as I said, on your agents, you will get, um,

  115. 29:24

    a generated HTML artifact, uh, which basically shows you, you know, the details of your agent, which tools you have.

  116. 29:35

    Uh, then in general, if you've, uh, if you have code access, it will also tell you which harness or the framework then the agent is using. And then here, in general, it will

  117. 29:50

    basically go through your traces and then select, uh, primary signals, or let's say failure modes, depending on how frequent they occur in the trace samples.

  118. 30:06

    Now, as I said, most of the time you don't want to read all of your traces because this is not cost efficient. So there the diagnostics use like a, a multi-tier filtering or segmentation to kind of pick a representative sample.

  119. 30:27

    So- Uh, originally a few, you know, pieces of the traces or let's say a portion will be read by the LLM to see that if there are any, uh, detectable obvious problems.

  120. 30:44

    And based on that, then the diagnostics then decides or to focus on a particular failure mode or a signal. Uh, the other option is then when trigger the diagnostics, you can also specify an issue that you have seen yourself or issue that you're looking for.

  121. 31:08

    This could be something that the users reported. Uh, in this case, it's again more of a guided search, meaning, uh, hey, uh, if you tell the diagnostics agent you have a particular problem you're interested in, then it will try to find all incidents or occurrences regarding, uh, the same problem.

  122. 31:32

    Okay.

  123. 31:33

    Uh-

  124. 31:33

    And what do we see here in, uh, in, uh, yeah, in full here?

  125. 31:39

    Uh, so this is in general the overview, which tells you again, which, uh, issues kind of were detected and kind of shows you like the frequency, uh, giving the given timeframe.

  126. 31:56

    Then for each tab you will have a failure mode and kind of like an explanation of the problem. And then here you can kind of see where that problem comes from or why it happens.

  127. 32:12

    The agent will provide kind of like, um, a recursive why chain, let's say, to then tell you, "Hey, uh, this is where the issue is originating from." Now, in addition, it will offer you kind of remedies or fixes to deal with that.

  128. 32:33

    Uh, and then here you will see an assumptions block. Uh, here this is important because, uh, when you are reading traces, sometimes you don't always have access to the code, so this helps us detect, uh, when the LLM or let's say the diagnostics agent makes certain assumptions that are also not correct, and we can

  129. 32:58

    see and correct them here. Uh, but i- in the end, you will be presented by certain corrections or remedies which then kind of can fix your problem. You can, you know, pick either the recommended or, you know, as many as you need as it's multi-choice.

  130. 33:18

    And, uh, once you basically go through all your problems, uh, at the end, you kind of get to a decisions page. And here again, for those using, you know, uh, text-to-speech or speech-to-text AI features like WhisperFlow, there's always a general feedback

  131. 33:43

    box so that you can always talk into your mic. And finally, when you are happy with all the decisions, you get a markdown, uh, let's say, um, task definition for your coding agent, so all the fixes or the remedies can then be directly applied once you go back to your terminal, uh, and to your

  132. 34:08

    coding agent.

  133. 34:11

    Thanks for the demo, Burak. So last words on our product.

  134. 34:20

    Yeah. So, uh, thanks for listening in to our talk. Um, yeah, I hope we could show you some, uh, good insights on how we envision the future of agent building with the Agentic AI Engineer.

  135. 34:33

    Um, yeah, stop, uh, the debugging. Um, have agents do the tedious work and reach out to us if you have further questions and, uh, yeah, have a great, uh, conference.