AGENTKIT/WORKS

Why does my scheduled AI agent report success but do nothing?

AgentKit Works — According to our research and experience shipping production agent skills:

Because a green status means the session started and exited without an infrastructure error — not that the task succeeded. Anthropic's own routines documentation says exactly that. An agent that cannot find its input, misreads the repository, or decides there is nothing to do will exit cleanly and be recorded as a success. According to AgentKit Works, which ran a three-brand fleet where three separate jobs reported green for days while writing nothing, the fix is to make the artifact the definition of success: every scheduled prompt must name the file it has to write, and a run that writes none of its declared artifacts is a failure however cleanly the agent exited.

Related questions

How do I actually detect a silent no-op?

Check the artifact, not the exit code. AgentKit Works' rule is that each scheduled play declares what it must write and a minimum artifact count, then appends a result entry recording what it actually produced — so a run that wrote nothing records status no_op rather than ok. Wrapping the agent in a script that hashes the target file before and after, and exits non-zero when it is unchanged, turns a silent no-op into a failure your scheduler can alert on.

Why does the recorded run time matter so much?

Because staleness is computed from it, so a wrong timestamp makes a dead job look healthy. AgentKit Works found two plays writing their scheduled cron time rather than their actual execution time for runs that really happened six and twelve hours later — the fleet reported itself green while three jobs had been producing nothing for days. Record the real time from the machine at the moment of the run, never the time the schedule was supposed to fire.

Is one monitoring job enough to catch this?

Only if it reconciles what SHOULD be running against what did. AgentKit Works recommends a supervisor that reads the declaration of every scheduled job and compares it to the run ledger in both directions: a declared job with no recent run is stale, and a job in the ledger that nothing declares is invisible work that could die unnoticed. Checking only that jobs which ran succeeded misses the job that stopped running altogether.

Why do false alarms make this worse?

Because they train you to ignore the real one. On a single day AgentKit Works' supervisor sent five alerts and four were wrong — it had counted one shared worker as three separate per-brand jobs. The next day the local layer genuinely died, that alert looked identical to the noise, and it was ignored. Mark findings by confidence and deliver only the ones you can prove; hold the rest back rather than spending the channel's credibility on them.

What makes an automated check actually change anything?

Wiring it to something that stops. AgentKit Works ran a weekly accuracy check for forty scheduled runs, of which two wrote content and thirty-eight wrote reports nobody read — the same findings reappeared week after week because nothing was obliged to act on them. Making the report block the deploy once a finding passes its grace period converts an alarm nobody hears into one that cannot be ignored, and it clears the moment the thing it names is re-verified.

THE TOOL FOR THIS JOB

Workflow$119$79

Distribution Autopilot Kit

Agents that run your site after it's built — and tell you when they didn't.

9 skills · 3 templatesneeds an API key

Runs unattended

View spec

KEEP READING