Run
Also known as: job, generation run, creative run
A run is one execution of a creative app — a single call with a brief, a brand kit, and parameters that produces one or more media assets. Every run has an id, a phase stream (queued → composing → rendering → done), and an evaluation score against the attached brand rubric.
Example
run_8H2K9 was created with brief "sage linen, north light, 16:9" and brand homestead. It moved through queued → composing → rendering → done in 12.4s, produced four assets, and scored 0.92 against the brand rubric.
Why runs are the right primitive for agents
An agent needs three things from a generation call: a stable handle to track it, a way to know when it's done, and a way to recover if its turn was interrupted. A run gives you all three. You can stream phases, fetch the run later by id, and pass the same idempotency key to safely retry a timed-out call without double-billing.
Related terms
Creative App
A creative app is a reusable, named generative-media workflow — productShoot, virtualTryOn, brandFilm — that bundles model routing, prompt scaffolding, brand context, and output formatting into a single callable unit. You call apps, not models, so the same call survives a model upgrade and produces consistent on-brand outputs.
Brief
A brief is the natural-language prompt plus structured parameters passed into a creative app. Briefs describe what to make ("linen tee on weathered teak, north light, 35mm") and how to constrain it (variants, ratios, models). Combined with a brand kit and a seed, the same brief produces a deterministic run.
Idempotent generation
Idempotent generation is the property that the same generative-media call — same brief, brand, seed, and idempotency key — returns the same result on retry instead of producing a new (and billed) output. It's a survival requirement for agents, which retry on timeout and would otherwise create duplicate runs.
Agent-callable API
An agent-callable API is one designed to be invoked by an autonomous LLM agent rather than a human developer. It exposes typed tool schemas, returns structured outputs an agent can parse, supports idempotency keys for safe retries, and handles long-running jobs through streaming or polling instead of blocking.