In November of last year I was working on one of my first agentic projects: I had a music library where I was having trouble finding things. About 11,600 files were sitting on my media drive, many of them unsorted and without proper metadata / tags (the information inside a music file that says who the artist is, which album it's from and what the track is called etc). I knew there were non-AI tools that could sort this out. I just didn't know what they were.

So I asked an AI (ChatGPT's Codex, at the time) to find me those tools and to work with me to create a plan for using them. You can do this in a chat window or with an AI agent on your own computer: use the biggest model you have to plan the job and find the tool that already does it, and let something smaller do the 'donkey work': the heavy, laborious tasks nobody wants to do. It's a very meta idea: use the models to plan how to use the models.

Without asking AI to plan things out first, the alternative would likely have been asking Codex to open every one of those files and fix the tags itself, at a greater compute cost and effort. That's like hiring a $400-an-hour specialist golf instructor to come with you to the shop and bag your groceries. Sure, you can do it, but why would you?

The AI coding agent I was using found tools that already existed. mutagen is a Python library that reads the tags in MP3, FLAC, M4A, OGG and WAV files. MusicBrainz and Discogs are free music databases that supply the artist, album and track details missing from the tags. Discogs needed an API key, which I set up myself. We built a command line tool around them that does a dry run by default, listing every move it would make, and only touches files when you add --execute.

The reason to work this way is the one I gave a data team that I'm training this quarter: "if you've got it (the agent) calling Python and your computer's doing the Python work, that means that the agent's not doing it. So you're saving context and you're saving memory and you're saving compute power by using your local computer."

You can do the planning step in an ordinary chat window. Describe the task, then ask the model to plan it before it does anything. Here's an example prompt for a staff survey:

I have 400 open-text responses from our staff survey, and I need them grouped into themes with a count for each. Before you start, help me find the most efficient way of doing it. Is there an existing tool or built-in feature that already does this? Which parts need Opus, and which can Sonnet or Haiku handle? Ask me questions first, and tell me what you need from me. Once we've finished talking it through, give me the plan as a document I can follow step by step.

The staff survey planning prompt typed into Claude, with Opus 5.5 selected

When I ran it in Claude, Opus asked seven questions before planning anything, and it pushed back on part of the prompt. It said a model shouldn't do the counting: models are reliable at labelling each response but unreliable at tallying, so the count should come from "a spreadsheet pivot or a few lines of code." It also said that at 400 responses there's no point splitting the job between models, because that only pays off "at thousands of responses."

Claude's answer: the two mistakes to avoid when theming 400 survey responses

I gave ChatGPT the same prompt, with GPT-6 Astra selected and the model names swapped for Astra, Sol and Luna. It asked five questions first and reached the same conclusion on counting: "Counts should come from a spreadsheet or script operating on the coded responses." It also allowed that "the task may not need all three models."

ChatGPT's answer, with GPT-6 Astra selected: the provisional model split for the survey

In May 2026 I ran the music organizer tool again across the whole library, by then 12,489 files, this time in Claude Code. It chose the tool we'd already built, ran it, and reorganized 1,546 files. It also turned up two problems with the original build. The tool silently merged editions of the same album into one folder. The standard and deluxe versions of Amy Winehouse's *Frank* carried the same album name and year in their tags, so their tracks landed together; three other albums had the same problem. And because nothing cached the answers from MusicBrainz and Discogs, the tool looked up the same albums again on each of its three passes, which wasted about 90 minutes. I split those four albums by hand, and both permanent fixes are on a ten-item improvement plan that hasn't been built yet.

If you do use a coding agent, you can split the work between models too. As I often put it in my prompts explicitly: "I don't just want Opus doing all this work. I want Opus to plan it, but I want Sonnet and Haiku to do it." In Claude Code each subagent runs in its own context window, and you can set which model it uses. If you don't, it runs on the same model as your main conversation.

ChatGPT has the same kind of ladder. In its Work mode you can pick GPT-6 Astra, Sol or Luna. The cheap end of that ladder goes a long way. In a Cloudflare Developers talk on building durable agents, the speaker's live demo had the audience fill in 89 expense reports with agents running on Luna, at a total cost of 19 cents. He put that down to the task being small enough for Luna.

The model picker in ChatGPT's Work mode, listing GPT-6.1 Sol, GPT-6 Astra, GPT-6 Sol and GPT-6 Luna

So think twice before you bring a $400-an-hour golf instructor along to bag your groceries. Use the big model to help you make a plan with everything at your disposal: tell it the tools you have, tell it the outcome you want, and ask it to write the prompts and set up the agents that will make your job easier.