Cost
The architecture is shaped around one idea: pay for intelligence once, reuse it many times.
Never put a model in the high-volume path
| Work | Volume | Judgment | Implementation |
|---|---|---|---|
| Campaign planning | once per brief | high | agent |
| Strategy, extraction, reconciliation | ~once per client per quarter | high | agents |
| Rendering creatives | constant | none | code — no model |
The campaign orchestrator sits *above* the render pipeline, not inside it. One agent call produces a plan for thirty creatives; the thirty renders cost nothing.
This was originally stated as "no LLM anywhere near generation", which was wrong — the volume unit is the render, not the decision.
One scene, many creatives
A scene is bought once and composited into every format and placement that uses it. Twelve creatives from one purchase is the normal ratio, and the smoke test fails if it regresses.
scenes.dedupe_hash means an identical brief is never bought twice.
Prefer formats that need no image
Proof cards, offer cards and native-text posts render from nothing. Where a message works as type, it should be type — the creative is free and frequently stronger.
Never choose a scene format for variety. A bought image with no argument behind it is spend with nothing to show for it.
No headless browser
Rendering is satori + resvg + sharp: roughly 50ms and 30MB per creative. Puppeteer would be 1–2s and 500MB. At volume that is the difference between one small VPS and a fleet.
Measured, not estimated
- Higgsfield image: 2 credits at 1k, confirmed via the
get_costpreflight - Agent workers declare their own model — extraction does not need the top tier
- Every run logs what it spent; a budget ceiling is checked before dispatch, not discovered on the invoice