Back to blog
AI

How I Decide Between a Scheduled Task and an Agent

Editorial illustration contrasting a clock-driven scheduled task pipeline with a guided human-and-agent workflow

One of the easier ways to waste time with modern automation is to pick the wrong shape.

You can now automate a surprising amount of work with a scheduled task, a script, an agent, an assistant workflow, or something in between. That sounds like freedom. In practice it often creates confusion.

People see a product like GitHub Copilot guiding Git decisions inside the workflow and start wondering whether every recurring task should become "agentic."

Usually, no.

A lot of the time, the right answer is still a boring scheduled task.

The useful question is not:

"Can AI do this?"

It is:

"Does this job need judgment, or does it just need reliability?"

That distinction clears up a lot.

A scheduled task is for work that should stop being interesting

The best scheduled tasks are almost aggressively unglamorous.

They run on a clock.
They do the same kind of thing every time.
They are supposed to be predictable.
If they become surprising, that is usually a bug.

Examples:

This kind of work benefits from:

You do not want a system improvising here.
You want a system that either works or fails clearly.

That is why cron jobs, timers, and small scheduled workflows are still so useful. They are boring in exactly the right way.

An agent is for work where the path is not fully known in advance

Agent-style automation is useful when the job cannot be fully reduced to "run the same steps again."

That usually means at least one of these is true:

This is closer to what GitHub Copilot is doing in the decision-guidance pattern I wrote about recently.

The interesting part is not that it can explain Git commands.
The interesting part is that it can intervene at points of uncertainty:

That is not just automation.
That is assisted judgment.

If the job is fundamentally about helping a human make a better decision while the work is in motion, an agent or agent-like assistant can be a very good fit.

My default rule

If I can describe the task as:

given X, at time Y, do Z

I probably want a scheduled task.

If I have to describe it as:

look at the situation, decide what matters, then pick the next step

I probably want an agent.

That rule is not perfect, but it catches a lot.

The weekly blog post example is a good boundary case

I have a weekly scheduled job that drafts a blog post for me based on recent work.

That job is a useful example because it contains both shapes at once.

The schedule itself is simple:

That is scheduled-task territory.

But inside that job, the actual writing is not deterministic.

The system has to:

That part is much closer to agentic work.

So the right design is not "cron or agent" as a pure binary.
It is:

That hybrid pattern is often the real answer.

The real decision variables

When I am deciding between a simple scheduled task and an agent, I usually ask five questions.

1. How repeatable is the work?

If the same steps should happen every time, prefer a scheduled task.

If the steps depend heavily on what the system discovers, prefer an agent.

2. How expensive is a wrong answer?

If mistakes are costly, I want less improvisation.

That usually means:

Agent freedom is most useful when the cost of exploration is lower than the cost of rigidity.

3. Is timing the point?

Some jobs mainly exist because they must happen at a specific time:

That is a strong hint that scheduling is part of the core design.

An agent can still participate, but it usually should not replace the scheduler.

4. Does the user need coaching or just execution?

This is where tools like Copilot stand out.

A lot of its value is not "I executed a thing for you."
It is "I helped you make the next decision with better judgment."

That is different from a timer-driven task.

If the product value lives in steering behavior inside a live workflow, an agent or assistant is often the better shape.

5. Do I need a receipt or a result?

Sometimes I mainly need the output.

Other times I need the trail:

The more I care about inspectable reasoning and intermediate states, the more likely I am to reach for an agent workflow with explicit artifacts.

A bad smell: using an agent to hide unclear process

One of the easiest traps is to use an agent because the workflow itself is still vague.

That can feel productive for a while because the agent appears flexible.

But sometimes what is really happening is that you have not yet defined:

An agent can help discover those things.
It should not become a permanent excuse not to define them.

If a recurring task is stable enough, I usually want to harden more of it over time.

That often means a maturity path like:

  1. do it manually
  2. let an agent help while I learn the shape
  3. capture the recurring parts
  4. schedule the boring core

That is healthier than calling everything an agent forever.

My practical bias

I am generally biased toward simpler automation first.

Not because agents are bad.
Because unattended complexity compounds faster than people admit.

A scheduled task is easier to reason about.
Easier to test.
Easier to trust.
Easier to repair when it fails at 3 AM.

An agent earns its keep when the work genuinely requires interpretation, synthesis, or guidance.

That is why I find the GitHub Copilot pattern interesting.
It is not interesting because it makes Git autonomous.
It is interesting because it adds judgment support at the right moments inside a human workflow.

That is a much better product instinct than forcing autonomy where none is needed.

The short version

If the job should become boring, schedule it.

If the job still needs judgment, context, or coaching, use an agent.

And if the workflow contains both, which many real ones do, split the system on purpose:

That is usually a better design than pretending every recurring task wants a robot personality.