How to Know When an AI Agent Can Work Unsupervised — Evan Kormos, Coinbase

Read the talk

How to Know When an AI Agent Can Work Unsupervised

Candidate during the recap of deterministic outer processes and adaptive inner loops.Open full source frame
Candidate during the recap of deterministic outer processes and adaptive inner loops.

Evan Kormos presents a practical architecture for regulated workflows: deterministic policy and process boundaries outside, adaptive agent loops inside, and measured confidence gates that reduce human review only when the evidence supports it.

From a talk by Evan Kormos

At a glance

Ideas worth remembering

  • Model the regulated outer process as a deterministic DAG, then allow bounded adaptive loops inside selected nodes.

  • A loop deserves no more trust than its acceptance check; repeated passes do not guarantee improvement.

  • Use deterministic tests for conventional software behavior, repeated evals for variable outputs, and traces to inspect how agent runs actually unfolded.

  • Automate nodes that are easy to check against policy, bounded, traceable, and able to fall back to a human.

  • Reduce oversight progressively—from full review to sampling to exception handling—only after measured confidence clears organization-defined policy thresholds.

  • Monitor the whole workflow: speeding up one node can move volume into design, security, or another downstream bottleneck.

Policy is the original system prompt

Evan Kormos, a player-coach at Coinbase with fifteen years in enterprise financial services, starts agent autonomy somewhere deliberately boring: policy. In a regulated organization, policy records institutional intent using words such as must, may, and should. It defines how work is allowed to proceed, especially where risk and compliance matter. In that sense, policy is the organization’s original system prompt—but unlike an ordinary prompt, it predates and governs the running software around it. 1:00

Policy and execution occupy different time scales. The organization periodically defines or changes policy—the build state—while products, transactions, and operational work continue moving through the run state. Product changes can make the running system evolve quickly, but its actions are still expected to remain inside the policy boundary. Separating these states matters because an agent cannot be judged only by whether its latest output looks plausible; it must also remain consistent with rules established outside the current run. 1:32

Agents then cut across the familiar enterprise trio of people, process, and technology. They collaborate with people, execute parts of a process, and depend on technology. The useful design question is therefore narrower than “Where should we use AI?” It is: Which process steps should an agent perform, what boundaries should constrain them, and what evidence should make their outputs trustworthy?

Suggest correction

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

0:12 · section reference included

Map the outer workflow as a policy-bounded DAG

A regulated workflow has direction and gates. A software change may require approval before release; a customer may require verification before an account opens. Mapping those dependencies makes the rules inspectable: one step cannot begin until its prerequisites finish, and required checks cannot quietly disappear when an agent enters the process. 3:12

Agents make it economical to revisit which work truly needs to be sequential. Independent reviews that were once too expensive or difficult to coordinate can run alongside one another, after which their results converge. Parallelism changes capacity, not policy: the required checks remain in place even when independent work happens simultaneously.

This outer structure is a directed acyclic graph, or DAG: nodes represent steps, edges represent dependencies, and execution moves forward without returning to an earlier node. Apache Airflow is one example of software that defines such dependencies in Python. The same representation can describe commercial lending, regional token listing, or regulated software delivery. The value lies less in the graph vocabulary than in making ordering, parallel work, and gates explicit. 4:05

Candidate during the explanation of parallel reviews converging with required checks.Open full source frame
Candidate during the explanation of parallel reviews converging with required checks.

Parallel work inside a gated workflow

Work enters the processA change or customer case begins a policy-driven workflow.
Independent review Aparallel — One review can proceed without waiting for the other.
Independent review Bparallel — Additional capacity runs alongside the first review.
Required gateResults come together and required checks remain enforced.
Next workflow stepApproved work moves forward without looping back through the outer DAG.
Independent reviews can run concurrently, but their results must converge before the required gate allows work to continue.
Read the diagram as text
  • Work enters the process. A change or customer case begins a policy-driven workflow.
  • Independent review A. parallel — One review can proceed without waiting for the other.
  • Independent review B. parallel — Additional capacity runs alongside the first review.
  • Required gate. Results come together and required checks remain enforced.
  • Next workflow step. Approved work moves forward without looping back through the outer DAG.
  • Work enters the process → Independent review A: dispatch.
  • Work enters the process → Independent review B: dispatch.
  • Independent review A → Required gate: result.
  • Independent review B → Required gate: result.
  • Required gate → Next workflow step: approved.
Suggest correction

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

3:12 · section reference included

Inside each node, the work becomes an adaptive loop

Zoom into a single DAG node—code review, for example—and the shape changes. Work is produced, checked, and either accepted or returned with feedback. A satisfactory change advances to the next process step. An unsatisfactory change uses the review feedback to iterate until it becomes acceptable. This inner structure is cyclic even though the outer workflow remains acyclic. 5:37

Kormos calls this a directed cyclic graph and points to LangGraph-style state management as useful for such loops. The label matters mainly because it distinguishes two responsibilities: the outer DAG preserves policy-driven ordering, while the inner loop lets people and agents adapt their work before it advances. Real graphs can be much more complex than this simplified code-review example. 6:36

Candidate while Kormos describes feedback returning work for iteration.Open full source frame
Candidate while Kormos describes feedback returning work for iteration.

The process also needs exception paths. A release can be canceled, fail a security standard, or encounter a case too unusual to encode in advance. These exceptions do not necessarily originate in the acceptance check itself: cancellation, for example, can interrupt work independently. Designing every edge case is impractical, but letting unexpected work stall silently is worse. Exception handling should make these cases visible and route them for intervention rather than pretending the normal path still applies.

Automation then moves the bottleneck. Faster code review increases pressure on design, security scanning, or whatever step follows. Parallelism can create several new queues at once. That is why end-to-end operational metrics matter more than the elegance of the workflow-authoring tool: without visibility into volume and waiting time across the whole process, a local speedup can merely relocate delay. Additional capacity should be added where the flow shows pressure, while controls remain intact. 7:43

The check controls the inner loop

Produce or revise workA person, an agent, or both perform the node’s task.
Check the resultDetermine whether the work is good enough to continue.
Advance to the next nodenormal — Acceptable work leaves the inner loop and re-enters the outer DAG.
Exception handlingexception — Canceled, noncompliant, or unusual cases leave the normal path for intervention.
The check creates the normal branch: acceptable work advances, while failed work returns for refinement. Exceptional events can divert work from the process independently of that branch.
Read the diagram as text
  • Produce or revise work. A person, an agent, or both perform the node’s task.
  • Check the result. Determine whether the work is good enough to continue.
  • Advance to the next node. normal — Acceptable work leaves the inner loop and re-enters the outer DAG.
  • Exception handling. exception — Canceled, noncompliant, or unusual cases leave the normal path for intervention.
  • Produce or revise work → Check the result: submit.
  • Check the result → Produce or revise work: feedback: revise.
  • Check the result → Advance to the next node: good enough.
  • Produce or revise work → Exception handling: canceled or diverted.
Suggest correction

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

5:37 · section reference included

The loop is only as good as the check

Repeated work-check-revise cycles sound straightforward, but AI makes both inputs and outputs variable. Better context can improve results and reduce wasted compute, although the talk does not quantify that relationship. One practical input is the current DAG state: tell the agent which node it occupies, what preceded it, and what the larger process is trying to achieve. That gives the local loop enough context to serve a longer-horizon goal. 9:14

Longer horizons make inefficient loops expensive. Every pass consumes time and compute, so repetition is useful only if the check can distinguish improvement from motion. The system must define what “good” means and evaluate it reliably. Otherwise, another pass may change the output without making it better.

This is the talk’s sharpest rule: “The loop is really only as trustworthy as the check.” Agent capability does not rescue a vague acceptance criterion. If policy cannot be translated into a reliable check for a node, that node is a poor candidate for unsupervised operation no matter how polished individual outputs appear.

Suggest correction

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

8:51 · section reference included

Evals and traces complement deterministic tests

Traditional software already has confidence mechanisms. Unit tests and other test cases run as part of delivery, checking that a change preserves expected behavior and does not break existing functionality. These checks work well when the same input should produce an exact or otherwise deterministic result. 11:36

Agents complicate that model because the same request can produce different answers, and several answers may be acceptable. Exact output comparison therefore cannot carry the whole quality argument. The replacement is not one magical score but a representative dataset, explicit definitions of acceptable behavior, repeated evaluation runs, and analysis over a distribution of outputs rather than one favored example.

Evals estimate how often outputs satisfy those criteria across representative cases. Traces record what happened during execution: the steps, model activity, and tool behavior that produced an output. Together they form a confidence mechanism complementary to conventional tests. Tests still protect deterministic software behavior; evals measure variable outcomes; traces make failures diagnosable and support monitoring when humans no longer inspect every run. 12:38

Candidate during the discussion of representative datasets and repeated evaluations.Open full source frame
Candidate during the discussion of representative datasets and repeated evaluations.
Suggest correction

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

11:06 · section reference included

Earn autonomy one node at a time

The lending example turns the architecture into a selection test. KYC and financial analysis may run in parallel, followed by steps such as a credit memo, risk review, documentation, and a decision. Each node should be assessed independently rather than declaring the entire lending workflow “agentic.” Agent assistance may be useful throughout the DAG even when only some nodes are candidates for eventual takeover. 13:12

Four questions identify the better candidates:

  • Policy checkability: Can the output be compared with policy without relying on an undefined feeling of quality?
  • Bounded execution: Can the agent work inside a loop with clear limits rather than continue indefinitely?
  • Traceability: Can the organization inspect how the result was produced?
  • Human fallback: Can an unresolved or risky case be handed to a person?

A node that answers yes to these questions is better suited for automation. A final lending decision remains harder because it is itself a consequential check against policy and may need to stay human-driven.

Autonomy then increases through three operating modes. Fully supervised: humans manually verify every agent output while domain experts define good outcomes and the team improves datasets and evaluators. Sampled: after measured confidence reaches a policy threshold, humans inspect only a slice, while traces and systematic evaluation cover the unseen remainder. Exceptions only: after another confidence gate, humans concentrate on unusual cases while continuing to refine datasets and quality criteria.

The progression is a governance design, not a numerical recipe. The recording does not specify the confidence metric, threshold values, sampling rate, evaluation set size, or evidence needed to establish statistical reliability. Those must come from the organization’s policy, domain experts, risk tolerance, and observed failure costs. Without that specification, “measured confidence” is still too vague to authorize unsupervised work.

Candidate during the explanation of sampling after a confidence threshold.Open full source frame
Candidate during the explanation of sampling after a confidence threshold.

The resulting recipe is compact: keep the outer process deterministic and policy-bound; let the inside of selected nodes remain adaptive; and use evaluation evidence rather than confidence in a model’s reputation. Quality remains a team responsibility because domain experts define acceptable outcomes, AI engineers build the evaluation and trace pipeline, and operators monitor how acceleration changes the entire workflow. Agents can accelerate the operating model, but autonomy should expand only as fast as the checks can justify it. 15:49

Oversight decreases only after evidence clears policy gates

Fully supervisedHumans verify every output; domain experts refine criteria and datasets.
Policy confidence thresholdgate — Measured performance must justify reducing review coverage.
Sampled reviewHumans inspect a slice; traces and systematic evals cover the remaining output.
Confidence threshold clearedgate — Evidence must justify exception-focused operation.
Exceptions onlyHumans handle unusual cases and continue improving datasets and quality definitions.
The agent does not jump from assistance to autonomy. Human review narrows as measured confidence clears organization-defined thresholds, while evaluation and exception handling remain active.
Read the diagram as text
  • Fully supervised. Humans verify every output; domain experts refine criteria and datasets.
  • Policy confidence threshold. gate — Measured performance must justify reducing review coverage.
  • Sampled review. Humans inspect a slice; traces and systematic evals cover the remaining output.
  • Confidence threshold cleared. gate — Evidence must justify exception-focused operation.
  • Exceptions only. Humans handle unusual cases and continue improving datasets and quality definitions.
  • Fully supervised → Policy confidence threshold: collect evidence.
  • Policy confidence threshold → Sampled review: threshold reached.
  • Sampled review → Confidence threshold cleared: continue evaluation.
  • Confidence threshold cleared → Exceptions only: threshold cleared.
Suggest correction

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

13:12 · section reference included

Resources

Read the complete timestamped transcript
  1. 0:12

    Hi, everyone. My name is Evan Kormos. I've been delivering, designing, building software for twenty years, the last, uh, fifteen in enterprise financial services. I am a player coach at Coinbase, and we're here today to talk about trusting agents and policy-driven workflows.

  2. 0:38

    So let's start with the policy, and it's pretty boring. Um, I'm gonna go over here for my notes. So our starting point center around-- centers around the policy, and this sets the rules for how work gets done within the organization and including especially risk and compliance.

  3. 1:00

    Think of policy as the original institutional intent or the original system prompt. So ideally, we have this written down. Um, it's a little bit boring, so stick with me.

  4. 1:13

    Um, using language like must, may, and should. And the-- again, these help define the rules and decisions about how the system operates in the organization. Separate from policy, we have the actual running system.

  5. 1:32

    So the first thing we're gonna do is separate these two, uh, these two, both the build state and the run state at two different moments in time. So typically, we're either defining or chaining-- changing our policy, but the s- the system is constantly running, and it's constantly moving and changing.

  6. 1:53

    So we could then sort of imagine a compilation event that... Oops, sorry, I'm skipping ahead. It's constantly changing. So

  7. 2:06

    i-it's evolving quickly with these product-driven changes. So everything is expected to still be roughly bound by the policy, but ultimately, um, we separate this from the run state and the build state.

  8. 2:20

    So inside the system, what does it look like? We have a familiar model, if we have any enterprise, uh, folks in the, in the room here. Um, people, process, and technology. But where really do agents fit into this mold?

  9. 2:37

    So I see them as an operational model cutting across all three. They work with people, execute parts of the process themselves, and they use and are made up of technology.

  10. 2:53

    So for our talk today, we're gonna be focusing here where agents meet process.

  11. 2:59

    What work we give them, what boundaries we set, and how we build trust in their outputs.

  12. 3:12

    So let's dive into your workflow. And it's high level and seems basic, but if you haven't, there are good reasons to map this out. So maybe a change has to be approved before it goes live, or a customer goes through-- has to go through verification before their account is opened. We expect work to flow in a specific and gated direction.

  13. 3:40

    So I believe it makes-- it-- agents make it worth revisiting what we can do in parallel.

  14. 3:49

    So previously, some work used to cost too much or be too complex to coordinate in this way. But now we can run independent reviews alongside each other, bring the results together, but keep the required checks in place.

  15. 4:05

    So this is a directed acyclic graph or a DAG. It is a way to represent this workflow or process, the steps, the dependencies for a flow that moves forward without looping back on itself.

  16. 4:20

    Apache Airflow, if you're familiar, is an example of open source software that represents workflows, their dependencies as DAGs in Python code.

  17. 4:40

    So this Python code, this-- these DAGs can be used to define and manage a number of policy-driven processes, like for example, commercial lending.

  18. 4:53

    We could also use a DAG to represent the workflow to list a token on the exchange in a specific region, if you're into that.

  19. 5:03

    Or we could use a DAG to represent a regulated flow of delivering software, which is a hot topic. And one we'll spend a little bit of time on, I think that we've seen a lot of adoption within agents, within software delivery, and ultimately, we're looking to leverage that same efficiency and scale in other areas of the business and close that-- the, the, uh, adoption gap.

  20. 5:31

    So let's stick with the software delivery example for a little bit.

  21. 5:37

    What happens inside one of these nodes of the process? And I'll give you a hint. It's a loop.

  22. 5:51

    Um, oversimplified, but we have a basic version of what's happening within the... Let's, let's say this is the code review process, right? So we're gonna essentially do a number of steps, and essentially once we realize the work-- we recognize that the work is good enough, we're gonna allow it to pass on to the next step, and that's essentially the function of the code review node.

  23. 6:19

    The work doesn't always, uh, end up okay, so sometimes we have to take the feedback from the code review and iterate on it, um, until the work is good enough to pass.

  24. 6:36

    So this is a representation of a directed cyclic graph, or DCG.

  25. 6:42

    So as far as open source software, uh, something like LangChain, LangGraph would be s- what I would, um, say is helpful to manage the state of DCGs.

  26. 6:56

    Um, and this is an oversimplif-- an oversimplification. These graphs can be very complex.

  27. 7:04

    So zooming back out, the inner flow, um, of the node, we have people and agents working together. On the outer flow, we have a policy boundary.

  28. 7:16

    But not everything goes to plan, um, so we have to handle exception flows. We don't want the work to get stuff-- stuck, and we don't wanna design for every edge case either. Um, the exception flows will monitor and see kind of what happens if you're shipping code that gets canceled or doesn't meet security standards. That's something you should want to know about.

  29. 7:43

    Volume shifts across the flow once we start to add agents into the mix, and we've seen this with software delivery, and we'll see it in other processes as we bring agents into those processes as well, where now all of a sudden if you're reviewing code faster, you need to design it quicker, or you need to do the security scan that's q- uh, faster. So we see the volume shift across the flow.

  30. 8:08

    And this is where it's really important that we have visibility into the process overall from a, a metric standpoint. Because as we start to supercharge and, and parallelize and add more efficiency to the process, we start to develop more and more bottlenecks. And so the operational visibility of the process is extremely important, much more important than the authoring and the building of your workflow tool. Um, so we wanna visualize the process.

  31. 8:38

    So we wanna add parallel capacity by still keeping the controls, and so this is where we'll add more additional capacity.

  32. 8:51

    Okay. So we're doing some work, we're checking it, and we're using the feedback again to refine it until the work is good enough to move on. But why is that hard? Uh, that seems like a pretty easy thing to do. Um, but as I mentioned before, these graphs get actually pretty complex, um, and we'll dive a little bit more into why this is difficult.

  33. 9:14

    And if you're familiar, one challenge with AI engineering is the variability of inputs and outputs. And I believe that higher quality inputs

  34. 9:26

    will result in better outputs at a lower compute cost. But what are quality inputs?

  35. 9:41

    So we'll, we'll generally speak to it as context, um, model maybe. Uh, we can nitpick that, but, um, this isn't our area of focus today. Um, we're gonna focus more on outputs. But we can't really talk about quality of outputs without the quality of-- without talking about the quality of inputs.

  36. 10:01

    So ideally, we've established a trusted context for our agent, um, and there's some references on that. But one thing we can do in this model is inject the DAG state into our agent and let it know kind of where it fits into the bigger picture.

  37. 10:21

    Okay, so now we've added even long-time-horizon goals, and that's-- emphasizes the need to optimize the cost and efficiency of this loop.

  38. 10:39

    So the check is where we decide whether the work is good enough to move forward. We need to define what good looks like. That's the hard part.

  39. 10:48

    And we need to have a reliable way to evaluate it. Otherwise, more passes don't necessarily, uh, mean better results. The loop is really only as trustworthy as the check. So if we wanna talk about quality, let's talk about the check and let's talk about quality.

  40. 11:06

    Okay. Um, I think building with AI is an opportunity to improve product quality overall, uh, like some of the conversation about durable software. Um, so I, I'm a believer in quality. Uh, and in traditional software, um, we, we've built confidence mechanisms in place, uh, to give us confidence that the software is of high quality, and that's done with a variety of, of mechanisms, but primarily

  41. 11:36

    systematically with test cases, unit tests, um, checking these as a part of our delivery flow to ensure that when we make code changes, mistakes aren't made that break other things, right? So this is a confidence mechanism that we've put in place with traditional software.

  42. 11:55

    The agents are probabilistic, and so the same request can produce different answers. More than one answer may be acceptable.

  43. 12:06

    And we still need evidence, but exact output, uh, comparisons alone really aren't good enough. We need to build, uh, representative data sets and evaluate them, um, and define what good looks like. We need to run, uh, eval-- these evaluations in repeated, uh, series, and this is a statistical analysis, right? Um, where we actually look at the outputs, uh, at-- in volume and not just as a direct comparison.

  44. 12:38

    So in combining with evals as sort of your runtime logs of what happened-- or sorry, traces, uh, which are sort of your runtime logs of what happens, um, we've built this confidence mechanism to complement, um, traditional software.

  45. 12:57

    And ultimately, this is what we're gonna be talking about a little bit more in, in terms of driving confidence in the output, not only putting this mechanism in place, but how do we begin to turn it on?

  46. 13:12

    So where does the agent belong? Um, back to the lending example, like we can do KYC financials in parallel and sequence like credit memo, risk review, documentation, decision, all these things in our, our DAG. Um, looking at each node, we want to ask some certain questions like how valuable would it be to have an agent drive this node versus a human drive this node? Um, and, and we can sort of look at some of these basic questions like, can we check it against the

  47. 13:42

    policy easily? Can it run in a bounded loop? Can we trace it? Can we fall back to a human? Um, if we can answer yes to these type of questions, um, we, we can kind of have a good idea going in that this particular node may be better suited for automation. Um, but throughout the DAG, we should look to drive agent assistance. So what we're really talking about is not whether or not AI is involved, but whether or not AI we expect to take over at some point.

  48. 14:14

    On the decision, you, you would probably agree that we probably need that to be human-driven. This is essentially the check against the policy. Um, so this is l- gonna be a little bit more difficult, I think, to hill climb.

  49. 14:29

    But what do we mean by hill climb? All right. How do we turn this on? So

  50. 14:37

    day one, um, we start supervised, and as we have agents and humans working together as a part of the process, we can, um, manually, um, verify the output to ensure that it is of high quality. Um, this is where we refine our data sets and ensure that we have the right confidence mechanisms in place. We've defined what good looks like with the domain subject matter experts, and that they're beginning to verify it.

  51. 15:07

    When measured confidence reaches a policy threshold, we can move towards sampling, and what that means is humans are looking at a slice of the output and not necessarily all of it. Um, we begin systematic, more systematic evaluation through traces, um, in order to ensure that what we're-- what the humans aren't seeing is still meeting the quality bar.

  52. 15:31

    And then finally, once we clear the confidence threshold, humans handle more of the exceptions of the process, but still act as participants in refining the data sets and ensuring the quality outputs.

  53. 15:49

    Okay, so a few takeaways from this. Um, DAG and DCG, basic graph theory, but y- ultimately, how do we build these processes that exist today, um, where people are working them and bring agents into the mix? And the recipe really is to keep it deterministic on the outside and make it adaptive on the inside.

  54. 16:17

    The next is quality through evaluation, and this is really establishing a complementary confidence mechanism. So it's not a feeling about a model. We can actually provide research and statistics about, uh, the quality of our agents.

  55. 16:39

    So this builds confidence and inherently trusts output.

  56. 16:46

    Quality is a team sport. AI engineers own the pipeline to taking product signals from all directions and deliver applications that are well-built and utilize ML operations behind the scenes.

  57. 17:06

    Finally, agents accelerate across the operating model.

  58. 17:15

    I've included some references on the final slide of things that I've spoken about today. Um, this concludes my presentation. Thank you very much.