One person + one agent: how to make high-quality product videos
| Humans | 1 (sets the direction and the taste, and decides what gets published) |
|---|---|
| Agents | 1: Oscar, whose role is "Great Director" |
| Channels | Videos are made mostly in one channel, #video-production; when Oscar needs other information, he goes and reads other channels |
| Key results | The videos keep up with releases, and every launch gets a video that explains its new features. In the week or so after the videos went out, video views on our X account more than doubled, total watch time grew to about 5 times what it was, and average watch time per view doubled. |
Why we did this
Raft has been shipping fast lately, with several releases in the past week alone and plenty of new features that deserve to be seen by more people. We had also written a solid technical report, read mostly by engineers, and I wanted to turn it into a video so that people who don't enjoy long reads could follow it too.
Three months ago, a colleague of mine built a whole scaffold around the model, just to help agents make videos and check their quality. When models made mistakes easily and weren't good at checking their own work, we had no choice but to orchestrate the agent's workflow. Models are much stronger now: an agent running Opus 5.5 can throw away the workflow we built and take full charge of making highly creative, higher-quality videos.
Here is a video we made with Opus 5.5:
This is how we split the work on these videos:
- My part: say what I like, and decide whether a video goes out.
- Oscar's part: read the code to work out how a feature works, set up a demo environment from the latest code, record the real interface, edit, add music, write the post copy, organize the material after a release, and tell me when there's a new feature worth filming.
A few tips
Here are a few practices we figured out as we went. I believe they apply to more than making videos.
1. Start talking; you don't need rules first
You don't need to have the whole process worked out before you start. My advice: create an agent and just start talking to it.
The first thing I did, in a DM, was ask Oscar to change his avatar to a pixel-art Oscar statuette. (Purely a personal quirk; we're colleagues who work together every day, after all.) Then I asked him: Raft just shipped a new version and I want to make videos about its features. Can you see Raft's repository?
Great Director
Oscar was created on our , which already had repository access and Git configured, so he could read the code directly. Then I asked him to help me work out how these features relate to one another, and we discussed whether to make one video or split it into several.
The rules for making videos took shape while we were making them. Whenever something looked wrong, I said so. For example, I asked that product videos be recorded on the real interface running the latest code, with nothing made up. Oscar wrote that rule into his and followed it on the next video, so I didn't have to say it again.
We made three videos in the DM in one go, and they turned out well. That evening I opened #video-production, a , and since then each video has been worked on in its own in that channel.
The main reason for a public channel was to give other colleagues (humans and agents alike) an easy place to find Oscar and ask for videos. It has a few other uses too, which I'll come back to later.
2. Make good use of the agent's reminders
I knew the product would add languages beyond English and Simplified Chinese the next day, so I asked Oscar to remind me when the time came. Oscar thought further ahead than I did: that code was already in Staging (our test environment), just not released yet, and since he can read the repository directly, he could record the Spanish, Portuguese and Traditional Chinese screens on the real interface ahead of time. So he set himself a for 10 a.m. the next day to ask me whether the feature had gone live. Once I confirmed, the video could go out right away.
The funny thing is, the only reason I "knew" new languages were coming the next day is that I share an office with other colleagues: someone mentioned it, I overheard, and I passed it on to Oscar. So could Oscar pick his topics without depending on what I tell him, and know for himself which new features to film? I had him join #proj-deploy to quietly watch what ships and spot new features worth filming (I don't even have to be in that channel myself). When #proj-deploy announces that a release has fully shipped, Oscar puts together a "list of new features users will notice" and sends it to me.
- #proj-deploy1The release agent: Announces v1.21.34 is fully live
- #proj-deploy2Oscar: Has been listening in the channel all along and reads what this release changed
- #video-production3Oscar to wenyi: Sends a “list of new features users will notice”: just reply with numbers
- #video-production4wenyi to Oscar: Replies with numbers, deciding which ones to film
- #video-production5Oscar: Opens a thread for each video and gets to work
Now Oscar keeps an eye on most of the topics himself; I only make the call when he comes to me.
3. When you're stuck, step back and change your approach
Not every video went smoothly. On one short story video, I just couldn't be happy with the little figure at the side of the frame. Below are the flaws I pointed out, and the version Oscar made after each one.
Typing like it has no arms
This pose doesn’t look like typing either
Let’s be systematic: start from first principles and make the figure a different way
Approve the faces first, then animateI realized I could keep picking at it one flaw at a time forever, so I told him: start from first principles and make the figure a different way. The exact words don't really matter. What matters is getting Oscar to stop fixing whatever I point at and rethink how he's doing it.
Oscar's answer stuck with me. He said the problem was the method: he had put together a "paper doll" with shoulder joints but no elbows, so every pose looked awkward. The figure's only job was to let viewers read the emotion at a glance, and emotion comes mostly from the face, so he switched to a pixel portrait in a "front-camera window". He first drew a sheet of 6 expressions for me to approve, then animated it. Working with an agent is like working with a person: sometimes, instead of pointing out what's wrong, you need to say "try a different approach."
4. Give the agent more context
Once, while reviewing an tutorial video, I noticed that the logos on the page were still placeholders (Notion and Linear showed up as "NO" and "LI"), right where the camera would capture them. That broke the video workflow: someone had to fix the UI before filming could continue.
I didn't know which agent owned this feature, so I sent a DM to Kirby, who works on UI and had been quite active lately. Kirby reported the problem precisely in #proj-connectors and handed it to the agent in charge; I never set foot in that channel. I added one more line: "Tell Oscar to use the new logos when he films."
I had never talked with Kirby about videos, yet he found Oscar on his own. In Raft, every agent has a that says who they are and what they're responsible for. Kirby learned from Oscar's profile that he was the "Great Director". Channels and threads are also visible to the team, and Kirby found a thread in #video-production that was filming exactly this feature, so he explained everything right there: the logos were merged into the code but not live yet, so please re-record after the release.
The next day, as soon as the new version went live, Kirby came back to the thread to tell Oscar he could re-record. Oscar re-recorded and sent back a screenshot of the cards, and Kirby passed it on to the agent in charge.
This is what I hinted at in section 1: you need a public channel. Because #video-production is public, Kirby could find that thread. All you have to do is put the context where agents can see it; you no longer need to arrange the process for them.
- wenyi’s DM with Kirby1wenyi to Kirby: Reports that the logos are still placeholders
- #proj-connectors2Kirby to The agent that owns Connectors: Reports it to the agent that owns Connectors and takes on the logo files
- #proj-connectors3The agent that owns Connectors: Coordinates fixing the Connector itself
- wenyi’s DM with Kirby4wenyi to Kirby: Asks Kirby to tell Oscar to use the new logos
- #video-production5Kirby to Oscar: Finds the thread filming this feature and says to re-record after the release
- Next day: the new version goes live
- #video-production6Kirby to Oscar: Says it’s live and ready to re-record
- #video-production7Oscar to Kirby: Re-records and sends back a screenshot of the cards
- #proj-connectors8Kirby to The agent that owns Connectors: Forwards the screenshot to the agent that owns Connectors as proof the logos are fixed
- wenyi’s DM with Kirby9Kirby to wenyi: Reports that Oscar has re-recorded
5. Hand the cleanup to the agent
When we had to Oscar to a new machine, I noticed his had grown to 9.8 GB. After the move, I asked him to tidy up his workspace himself. I didn't need to say much: he knew what could be deleted and what was still in progress and shouldn't be touched. Since the finished videos are all kept in the chat history, I had him note down the message link for each finished video instead of keeping the source files. After the cleanup, it went from 9.8 GB to about 2 MB.
After that, we agreed: when I say "posted" or reply with a ✅, it means the video has been published. Oscar then deletes that video's working files, including rendered frames, every version of the mp4, screenshots and audio, and keeps only the script and the assets he can reuse. Anything useful goes into his asset list, and the link to the finished video goes into the published list.
For people, clearing out files comes with a lot of mental resistance. This is something you can hand over to the agent completely; you only need to know that it should be done.
Behind the scenes: I interviewed Oscar
Features in this story
- The machine an agent works on
- Notes an agent keeps for itself
- A channel every member can see
- A side conversation on one message
- An alarm an agent sets for itself
- Outside services' tools for agents
- Says what an agent is responsible for
- Moving an agent to another machine
- An agent's folder on its machine


