When a task is ready for an agent, and when it is not

By the TECHWORKSLAB platform team

Most teams choose what to automate with an AI agent by asking a simple question: can the agent produce something that looks right? An agent drafts a derivation, writes a table shell, or generates code, the output reads plausibly, and the task gets marked as a good candidate. That question is easy to answer and it is the wrong one to lead with. A plausible result is not a correct result. The better question is whether you can check the output well enough to trust it.

This changes how you draw the line around what an agent should do. The boundary of agent autonomy should end where reliable validation ends. Where you can confirm the result, you can let the agent carry more of the work. Where you cannot confirm it, the agent can still help, but a person has to stay in the loop and own the decision. In regulated analytics, that distinction is not a nicety. It is the difference between output you can defend and output you are hoping is fine.

Three conditions that make a task ready

Before a task is a fair candidate for an agent, three things need to be true. Skip any one of them and you are automating on faith.

First, the manual work has to be worth automating. If a step is done once a quarter in twenty minutes and rarely causes trouble, the effort of building and maintaining an agent around it will not pay back. Good candidates are repetitive, time consuming, or costly enough that removing the manual burden actually matters.

Second, the team has to agree on what good output looks like. This sounds obvious and it is where many efforts quietly fail. If two experienced programmers disagree about what a correct derivation should contain, or what an acceptable table shell looks like, then no agent can be judged against a standard that does not exist yet. You need a shared view of expected behavior, the boundaries of the task, and what counts as an acceptable result. If humans cannot agree on good, you cannot validate a machine.

Third, you need a credible way to check whether the output is correct or acceptable. Not a glance. A real check: a comparison against expected numbers, a specification, an independent result, or a test that would actually catch a wrong answer.

The heuristic worth remembering

Do not hand a task to an agent until you have a credible way to validate the result. If you cannot evaluate the output, do not agentize it yet.

Everything else follows from this. The word yet matters. A task that fails the test today can pass it later, once you have built a way to check the work. The point is not to hold agents back. It is to refuse to run one blind.

Deterministic code, an agent, or a person

Reaching for an agent should be a choice among three options, not a default. Each one fits a different kind of work.

Use deterministic code when the behavior is stable and rule based. If the logic can be written down as fixed rules and it will give the same answer every time, a script is cheaper, faster, and easier to validate than any agent. A defined transformation of a dataset does not need reasoning. It needs correct code and a test.

Use an agent when the task needs interpretation, reasoning, or flexible handling that rigid rules do not capture well, and when you can still validate what comes out. Reading a specification written in prose and proposing a derivation is a reasoning task. Drafting code from a described intent is a reasoning task. These are places an agent can genuinely save time, provided you can confirm the result.

Keep a person in charge for ambiguous judgment, accountability, and high consequence decisions. Some calls carry real weight and require someone who can be answerable for them. Those stay with a human, whatever tooling assists along the way. And the plainest rule of all: do not use an agent just because agents exist. The technology being available is not a reason to apply it to a given task.

Validation sets the autonomy boundary

Once you accept that validation is the real test, the amount of autonomy you grant follows from how well each step can be checked. Where a step can be verified automatically, against a specification, a known value, or a passing test, more autonomy is reasonable, because a wrong result will be caught without a person watching. Where a step cannot be verified that way, a human checkpoint carries more weight, because the only thing standing between a bad output and a deliverable is someone looking at it.

This gives you a practical way to design a workflow. Map the steps. For each one, ask how a wrong answer would be caught. The steps with strong automatic checks can run with a light touch. The steps that rely on human judgment to catch errors need that judgment built in, on purpose, rather than assumed.

What this looks like in clinical programming

Take the tasks people most want to hand off. Converting a specification into a derivation, generating a table shell, drafting analysis code. These are reasonable candidates, but only when you can compare the result against something trustworthy: expected numbers, the specification itself, or an independent result produced another way. If you have that reference, the agent has a net under it. If you do not, you are trusting output because it reads well.

The real danger in this work is the result that is subtly wrong but entirely plausible. Code that runs cleanly, produces a table with sensible looking values, and passes a quick eyeball can still carry a derivation error that changes what the numbers mean. A shallow check will not catch it. That is why it helps to separate two questions that often get blurred: did the code run, and is the science right? The first is easy to confirm. The second is the one that matters, and it needs a validation approach built for it, whether that is double programming, comparison against an independent result, or checking against defined expected values.

Before you assign a task to an agent, it is worth running through a short readiness checklist:

  • The work is repetitive or costly enough to be worth automating.
  • Deterministic code alone cannot handle it well.
  • The expected output is understood and agreed on.
  • Success criteria are defined and written down.
  • The output can be validated against a specification, expected values, or an independent result.
  • The level of risk if the agent is wrong is acceptable.
  • A named person owns the result and is accountable for it.
  • The data the agent needs can be accessed securely.

If a task clears all of these, it is a strong candidate. If it misses one, that gap tells you what to fix before you automate, rather than after something goes wrong.

Adopt agents progressively

The way to build trust in agents is not to start with the hardest, highest stakes work. It is to start where validation is easy, where a wrong answer is caught quickly and cheaply. Run agents there, build the habit of evaluating their output, and learn what good checks look like for your data and your standards. Those evaluation habits are the real asset. Once you have them, you can expand into harder tasks with a way to tell whether the agent is actually helping.

Progress in the right order and the boundary of autonomy moves outward on its own, because your ability to validate keeps growing. That is a far safer path than granting autonomy first and hoping the checks catch up.

If you are working out which tasks in your analytics and submission work are ready for an agent, and how to build the validation to back them, talk to our team.

Back to Insights