AISTools in practice

Scheduled agents fail quietly. Silence isn't success.

Anthropic's guide to agent automations is a practical playbook for runs nobody watches. Here's where a failed run looks exactly like a quiet day, and the fixes.

The short version
  • When an agent runs on a schedule, "nothing new" and "something broke" can look identical.
  • Anthropic's Oct 8 guide: name what it couldn't read, count a send only when confirmed, cap spend at 3-5x a normal run, keep preferences read-only, set permissions before the run.
  • Two of my scheduled tasks hit usage limits and stopped with no alert. Another waited for an approval nobody was there to give.
Diagram: schedule, permissions, agent runs, spend cap, send, output, ending in two boxes: I couldn't read it is not the same as nothing happened today
The image from the LinkedIn post (tap to open full size)
Fig 1 · One unattended run, start to finish

Memory + guardrails
01

Schedule

Tap any box to see what it does. Switch to "Where it goes quiet" to see the four weak spots.

Four ways a run goes quiet

  1. A source fails. If an MCP server is down or its token has expired, the run still starts, just without that server's tools. The session logs an error, but the agent sees nothing from that source and reports "nothing new."
  2. The spend cap hits. In the guide's setup, a run that hits its cap pauses instead of failing, so a cap set too low looks like a brief that went quiet.
  3. An approval is needed. MCP tools ask for approval by default, and nobody is there to give it.
  4. The send can't be confirmed. Guess "sent" and those items never get reported; guess "not sent" and readers get the brief twice. The guide marks the run "maybe posted" and changes nothing else.
The point "I couldn't read it" is a different result than "nothing happened today." Make the agent say which one it is.

The six parts of an automation

PartIn the guide's templateWhat to get right
SourcesSlack channels and GitHub pull requests, read from a bookmarkName any source it couldn't read
DestinationOne Slack channel, a dated post each runCount a post only when it's confirmed
AgentThe model, tools and run steps in agent.mdRe-check items before posting
ScheduleCron, set in deployment.mdWork out dates in the reader's time zone
MemoryPreferences (read-only) and state (read-write)Read preferences fresh every run
GuardrailsLimits on what it can do and spendSet the cap from real runs

Count a send only when it's confirmed

Both ways of getting this wrong hurt. Record a post that never landed, and the bookmarks move on, so those items are never reported. Post again because you aren't sure, and readers get the same brief twice.

The guide's rule: a post counts as sent only if Slack returns "ok": true and a message timestamp. The ledger and bookmarks update only after that. If the result is unclear, the run is marked "maybe posted" and nothing else changes, so nothing is lost.

Preferences the agent can't edit

The guide splits memory in two. Preferences are yours and read-only to the agent: which channels and repos to read, what to leave out, the length cap, the destination. State is the agent's: the bookmarks, the ledger, a record per run and notes on how each source behaves.

One trap to avoid: a copy of the preferences baked into the prompt keeps applying rules you've already changed. Have the agent read the file fresh every run, and if it can't, stop and say so instead of running on defaults.

Guardrails for runs nobody watches

  • Read-only access wherever the agent only reads. In the example, the GitHub token and the preferences store are read-only.
  • A spend cap: start at three to five times the cost of a normal run, then tighten it as you see real numbers.
  • An allowlist of hosts the environment can reach.
  • Caps on turns, time and spend, and a heartbeat someone actually watches.
  • Approvals decided up front. Claude Code's own guide does the same for batch runs: pre-approve the tools the job needs, and use dontAsk mode to deny anything else that would need approval.

The payoff, in the guide's words: a planted instruction can still change what the brief says, including through the notes the agent keeps between runs, but it can't write to GitHub or edit your rules.

What happened to mine

My personal AI setup showed this recently. Two scheduled tasks hit usage limits and stopped. No alert. The output simply wasn't there. Another reached a step that needed my approval and waited for someone who wasn't there.

That task now has the step allowed ahead of time, with a guard that only lets it message me. There's no alert yet, so I check the output myself.

The rule I'm taking from it Every run should end by writing one status line: OK, or which source it couldn't read. A run that hits its cap or stalls on an approval never gets there, so a missing line is the alarm, and silence stops looking like success. It's the same lesson as "The agent said done. The database said no." A clean exit still needs proof.

Quiet isn't the same as fine. If an agent runs while you sleep, how do you find out it didn't? Tell me on LinkedIn.

Sources and further reading

The playbook details come from Anthropic's guide. The scheduled-task story is my own.

  1. Building effective agent automations Lance Martin, CJ Avilla · claude.dev blog (Anthropic) · Oct 8, 2026 · the six parts, quiet failures, confirmed sends, spend caps, read-only preferences
  2. Best practices for Claude Code Anthropic · Claude Code docs · pre-approved tools and dontAsk mode for unattended batch runs
AIS

← All breakdowns

Detailed breakdowns of AI and data architecture, diagrams included.

Next breakdown

BI-ready vs AI-ready: does your architecture have a way back?

Back to the first breakdown: same data, different architecture.