Agents and media
TL;DR
A media actor turns a brief into a reviewed video by filling an existing template and rendering it. It picks a template, drafts the slot values, validates them, renders, and the result waits for a human yes. It never authors templates, never calls an image or video generation model, and never publishes on its own.
Rules
- Video is always a template render. No text-to-video, no image models.
- Actors do not create or edit templates. When no template fits the brief, the actor writes one "asset blocked" note (what the brief needed, which templates it checked) and stops.
- Every render and every post goes to review. Actors never publish directly and never change a channel without an approved review.
- Pick files, do not generate them. Image and clip slots take files that already exist in Files.
From a brief to a reviewed video
- Find a template with
data.video.template.list. Prefer templates by key (for exampleacme/product-update) over names. Read its slots, sizes and looks withdata.video.template.get. - Draft the slot values from the brief, only for slots the template has.
- Validate with
video.render.validate(gates: "error"for agents). Fix every error and try again; after two attempts, write an "asset blocked" note with the errors. - Render with
video.render.video(template, version, values, size, look). The MP4 and poster land in Files and the video waits in the review inbox. - Report the template key and version, size, look, values and the video's id.
For posting, the actor uses publisher.post.create-with-approval with a look and the rendered file; the post waits for the reviewer like any other.
What actors fill
| Slot type | Value |
|---|---|
| Text | Plain words, within the length limit |
| Text with highlights | Words; [[word]] is highlighted |
| Link | A link without spaces; one of the brand kit's allowed links when it has some |
| Image / video | The id of a file in Files (from data.storage.object.search) |
| List | A list of short lines |
Copy rules are errors for agents: no en or em dashes, no retired positioning. People see the same findings as warnings.
When something stops the actor
| Refusal | What the actor does |
|---|---|
| The month's renders are used up, or too many are running | Stops and reports; it does not retry in a loop |
| Validation errors after two drafts | Writes an "asset blocked" note with the errors |
| No template fits | Writes an "asset blocked" note |
See also Staff and agents and Media actors.
Templates as code
Keep video templates in a repository, review them in pull requests and load them into your organization from CI with plan and apply
Reference
The workflows behind the media studio, grouped by what they do, and the limits that apply. Full inputs and outputs are on reference.orkestia.dev
