How Microsoft's AI VP Automates Everything with 5 Micro-Agent Workflows
I sit down with Marco Casalaina, Microsoft's VP of Core AI Products, who reveals five practical workflows using Warp, M365 Copilot, and ChatGPT to automate tedious admin tasks like Azure management, document scanning, and video compression.
Claire Vo
Full episode
Watch or listen
Workflows from this episode
- How to Create an Automated Meeting Scheduler with Microsoft 365 Copilot
- How to Scan and Merge Two-Sided Documents into a Single PDF with AI
- How to Automate Azure User Role Management with AI in the Terminal
Episode outline
Marco Casalaina, Microsoft's VP of Core AI Products, does not use agents only for grand coding projects. He uses them to clear the tiny technical obstacles that steal an hour here, ten minutes there, and all of the energy before the interesting work begins.
His name for these one-off helpers is ad hoc agents: unnamed, disposable agents created for the job in front of him. Assign Azure permissions. Wake up a scanner. Interleave two PDFs. Fix a bloated video. Schedule a meeting. Check for a new podcast tomorrow.
In this episode of How I AI, Marco speed-runs five examples across Warp, Microsoft 365 Copilot, and ChatGPT. The common pattern is not a sophisticated prompt. It is a general-purpose agent with access to the right command line, API, or trigger.
The best micro-agents attack the work around the work
DevOps, identity management, file manipulation, and scheduling are rarely the reason somebody opened the computer. They are the setup steps standing between a person and the thing they wanted to accomplish.
Marco looks for tasks with a programmatic surface. If a CLI, API, or operating-system command can perform the action, an agent can usually translate a plain-language request into that interface, observe the error, and try again.
The automation does not have to become a product. If the same friction returns, Marco may issue the request again with a newer model. He only saves the durable piece when the agent repeatedly needs the same missing fact.
Use the terminal as the interface to Azure
Marco needed to give a colleague several Azure roles: Azure AI User, Azure AI Project Manager, and Contributor across the subscription. The portal path required finding and assigning each role separately. He estimated the manual job would take about an hour.
In Warp he names the colleague, roles, and subscription in ordinary language. Warp generates Azure CLI commands, runs them, notices when one command fails, corrects the approach, and continues until the assignments are complete.

The Azure role-management workflow preserves the important checks: confirm the tenant, subscription, user, scope, and exact role definitions before execution, then list the resulting assignments.
Warp works well here because Azure already exposes the az CLI. The agent is not clicking through a complicated graphical interface. It is converting intent into a mature programmatic API and handling the feedback loop in one place.
Give the agent authoritative documentation
Marco sometimes knows the role names. Other times he only knows the outcome: give this person whatever permission is required to use Azure Document Intelligence. For those cases, he connects Warp to Microsoft's documentation MCP server so the role decision comes from current first-party guidance.
He also stores small rules. Before a resource-group assignment, remind him to activate owner access. Always use the CLI. Never commit a .env file. These are not elaborate prompt frameworks. They are two or three instructions extracted from real failures.

A rule earns permanence when the ad hoc agent makes the same mistake twice. The rest can stay ephemeral.
The scanner only needed a command line
Marco's daughter had a two-sided math practice test. He wanted to scan it so ChatGPT could generate similar inequality problems. His scanner has a document feeder, but the native workflow for a double-sided document is painfully manual.
He placed the pages in the feeder and told Warp to scan them to a named PDF. Warp invoked NAPS2, and the physical scanner woke up. Marco flipped the stack, pressed the up arrow to reuse the previous terminal command, changed odd to even, and created the second PDF.

Then he said: combine the odd and even pages into the math practice test. Warp installed PyPDF2, wrote a temporary Python script, interleaved the pages, ran the script, and removed it.

The exact setup is in the two-sided scanning workflow. NAPS2 is the load-bearing tool. Windows did not provide the command-line control Marco needed, so he installed an open-source scanner CLI and taught Warp its path and feeder switch.
That preparation turned future scans into a sentence. The directory, filename, and format can change; the agent already knows how to operate the device.
Files are an underused agent surface
The third example begins with a ten-minute Xbox Game Bar recording that somehow became a 1.7 GB file. Marco asked Warp why it was so large and told it to use FFmpeg to preserve 1080p while producing a normal file size.
Warp inspected the resolution and bitrate, chose the FFmpeg options, and re-encoded the video to 13 MB. The prompt preserved the actual requirement, 1080p, instead of blindly asking for compression and accepting a blurry result.

Marco uses the same pattern for smaller edits. When a coworker's video went quiet from seven to 17 seconds, he asked FFmpeg to raise that segment to 300 percent volume. The agent knew the technical syntax; Marco only had to describe the visible problem and desired result.
This is why file manipulation deserves more attention. A file contains metadata, structure, and often enough evidence to diagnose its own problem. Give an agent the file plus a capable CLI and it can inspect before acting.
A general-purpose agent can build another agent
The Microsoft 365 Copilot demo shifts from one-off terminal jobs to a triggered workflow. Marco tells the Workflows agent: when Claire emails requesting a meeting at a specific time, check my calendar; if I am free, send her a 30-minute invitation.
Copilot builds the steps: detect the sender and request, extract the time into the format Outlook expects, check availability, and create the invite. Saving the result turns it into an agent attached to Marco's mailbox.

The automated meeting-scheduler workflow is useful because it removes Marco from the critical path between an asynchronous request and a routine response. The sender, intent, duration, working hours, time zone, and conflict behavior should all be explicit before activation.
This is the blurred line between consuming and building. Marco asks one agent for a business outcome, and that agent assembles a second agent with a persistent trigger.
Recurring agents can be even smaller
Marco creates the fifth agent in ChatGPT: every day, check whether Claire Vo has published a new podcast and notify me. He does not specify a time, so ChatGPT chooses 9:00 AM and offers desktop notifications.

It is effectively a cron job created through conversation. The task is tiny, but it demonstrates that recurring monitoring no longer requires a custom application or a hand-written scheduler.
Rules, approvals, and observability still matter
Marco is a tinkerer. If something fails today, he tries again tomorrow because the models and tools keep changing. That mindset helps discover what is newly possible, but it is not a reason to skip controls.
Role assignments need scope checks and least privilege. File operations need an original copy and an output check. A scheduling agent needs narrow triggers and calendar rules. Recurring tasks need a useful notification condition so they do not become noise.
The best proof is observable. List the assigned Azure roles. Count and inspect the PDF pages. Compare the video's resolution, duration, and size. Open the calendar invite. A micro-agent should finish with evidence, not merely say it is done.
Build fewer products. Solve more moments
Marco's workflows save minutes rather than transform an org chart. The value comes from repetition and timing. While Warp scanned the math test, he worked through a problem with his daughter. The scanner task disappeared from the critical path.
The lesson is to look sideways at the annoying task in front of you. Ask whether the computer already has a command for it. Let the agent discover or operate that command. Save one rule if the failure is likely to recur. Then throw the rest away.
The micro-agent does not need a name, a dashboard, or a roadmap. It needs the right tool, a clear boundary, and a result you can check.
Watch or listen
Sponsors
Thanks for supporting How I AI
Build your next product with ChatPRD
Turn an idea into a PRD, user stories, and a plan.


