Earlier this week, I let an autonomous agent loose on my primary inbox. The starting tally was 3,848 unread messages, and by the time the script finished, the inbox was sitting at a much more manageable 150. Along the way, it archived thousands of older threads, kept every flagged conversation right where it belonged, and cut off dozens of unwanted mailing lists.

The seductive takeaway from a run like that is that software can simply sort out your email if you ask nicely.

It cannot.

Try telling an agent to "clean my inbox" without giving it boundaries, and you will see how quickly things unravel (warning: do not actually do this ⚠️). Language models do not possess taste, they do not understand the subtle dynamics of your client relationships, and they do not feel the cold sweat of accidentally trashing an urgent tax letter or a flight confirmation.

Like teaching an automated routine to make a bed, you cannot just tell it to pull up the sheets without giving it a way to check whether the bed is already made. If you point an agent at 4,000 emails with no rules, it will either loop until it runs out of tokens or guess what you meant and bin your mortgage statement.

The run worked because of the groundwork that came first: deciding the rules of the game.

What Delegation Looks Like

When people run into walls with task agents, they tend to blame the model's raw intelligence. They assume a future model with better reasoning will somehow magically intuit which newsletters you read and which ones you have ignored since 2021.

Delegation is an engineering problem, not an intelligence problem.

If you do not set hard boundaries, an agent has to guess, and statistical prediction engines will invent whatever finish line sounds plausible. To let code touch live data safely, you have to hand it three explicit verdicts.

  1. What to preserve: The active conversations and flagged items you cannot afford to lose.
  2. What to archive: The dormant weight that no longer needs your attention today.
  3. What to stop: The inbound spigots you want to switch off at the source.

Gemini_Generated_Image_q8rjvcq8rjvcq8rj.jpeg

Sorting Triage from Hygiene

The sorting pipeline ran on mechanical rules rather than vague interpretations:

  • Preservation: Anything flagged, starred, or sitting in the active working window was left alone. If an email carried a deliberate signal from a person, the script skipped past it.
  • Archival: Threads older than our cut-off date that were unflagged and finished moved into the archive. They were not deleted; they were simply cleared off the desk so they stopped demanding attention every time the mail app opened.
  • Termination: This was about turning off the tap. In my hello@ inbox, 1,357 messages carried standard RFC 8058 headers. I did not let the agent guess which senders to drop. I reviewed the manifest myself, picked the lists to drop, and told Claude Code to fire off one-click HTTP POST requests to their unsubscribe endpoints.

Fifty-one lists vanished on the spot without opening a single web browser.

Where Things Hit Friction

Gemini_Generated_Image_g2d0kug2d0kug2d0.jpeg

Autonomous execution may look awesome on a whiteboard, but production data is notoriously messy. Once the main sweep finished, the edge cases surfaced immediately.

  • Broken Endpoints: About 15 senders failed the handshake. Five servers threw back 500 errors, and ten did not support the one-click header at all, meaning they still needed a manual visit to an unsubscribe form or a transport rule.
  • Bad-Faith Senders: Three political senders accepted the unsubscribe request politely, but because I never opted into them in the first place, they kept finding ways back into the feed. A header request cannot fix a sender that ignores consent; those required an automated deletion filter at the server level.

The Real Leverage

Gemini_Generated_Image_h7i9yeh7i9yeh7i9.jpeg

The leverage with agents does not come from machines suddenly knowing what matters to you. It comes from the fact that once you take the time to formalise your own criteria, a machine can execute the heavy lifting in seconds.

The agent did not solve my inbox. It simply executed the triage policy I finally sat down and wrote.