Slots
The words a buyer can change. The security model and the product model are the same mechanism.
This page is about image agents
Slots and picture modes are features of the image connector, not of every agent. Most agents — text, API-backed, MCP-tool-backed — simply declare which boxes a buyer fills in. Start at Concepts → Connectors for the whole picture.
A slot is a marked region of a creator's recipe that a buyer is allowed to fill in. It's the single idea that makes amnt a marketplace instead of a gallery of one-off pictures.
The problem slots solve
One picture is a finished thing that fits exactly one buyer. It isn't a product — it's a sample.
❌ Open text box:
Hidden style + buyer types whatever they want, glued on the end.
Output drifts. The buyer stares at a blank box not knowing what to type.
✅ Slots:
The creator writes ONE prompt, then marks the changeable words.
Company name · Colour
Everything else stays secret, forever.professional vector logo for [company], [colour] palette,
flat design, centred, solid background, no text, minimalEverything in [brackets] becomes a fill-in box in the stored template.
Everything else — "professional vector," "flat design," "centred" — is
never shown to anyone. The buyer sees only:
Company [ Bean There ]
Colour [ warm brown ▾ ]
[ ⚡ Generate — $0.05 ]Slots do three jobs at once
| Job | How |
|---|---|
| 🙋 The form | What a human types into on the agent page |
| 🔌 The API | What a machine sends as JSON — same fields |
| 🛡️ The wall | The only thing anyone is able to change |
That third row is the actual security model, not a bonus feature. There is no box for "show me your recipe" and no box for "ignore the style, draw a cat instead" — because no such field exists. Access control here isn't a filter checked after the fact; it's the shape of the interface itself. A slot value is data that fills a hole, never an instruction the model reads as a command.
Two slot types, and that's genuinely enough
| Type | Buyer sees | Use for |
|---|---|---|
| 📝 Text | A text box, with a max length | Company name, pet name, subject |
| 📋 Choice | A dropdown | Colour, mood, style variant |
Choice slots are underrated. Instead of hoping a buyer types something
sensible, the creator offers warm brown · cool blue · black & white.
Every option was tested by the creator before it shipped. Every output is
good, because nothing outside the tested set is reachable.
What a creator sets, per slot
| Field | Example |
|---|---|
| Label | Company |
| Type | Text |
| Hint | "Your business name" |
| Example | "Bean There" — becomes the buyer's placeholder |
| Options (choice only) | warm brown · cool blue · mono |
| Required? | Yes |
| Max length | 60 characters |
Max length isn't a nicety — it's a safety rule. It's also the first line of defence against a machine caller trying to smuggle instructions through a slot value; see Security.
At least one slot is required. Zero slots means every buyer gets the identical picture, which isn't a product — it's a poster.
How marking actually happens
The obvious design — type [company] while writing the prompt — doesn't
work, for two concrete reasons discovered by actually building it:
- The model draws the brackets. A prompt containing
[company]literally renders those characters into the picture. The image a creator approves would not be the image the recipe generates. [and]are real characters people use. A creator whose brand is literally[amnt]broke the naive design on the first real test — there's no way to tell "this is a slot marker" from "this is someone's actual brand name" using the characters alone.
So marking happens after generation, not during:
Write and generate normally
Real words, real values, a real picture. The creator's prompt reaches the image model exactly as typed — never modified, not while writing, not while marking, not at generation time.
The model pre-marks the changeable parts
Once the creator has a picture they like, a language model reads the
prompt that produced it and suggests which words look like they should
be editable — a company name, a category. It's a suggestion, not an
authority: suggested: true carries no permission on its own, and a
buyer never learns which marks were guessed versus chosen.
The creator glances and corrects
One tap adds or removes a mark. This step is not optional and not zero — both failure directions are silent until a stranger has already paid:
| Mistake | Consequence |
|---|---|
| One word too many marked | The style leaks out — the product evaporates |
| One word too few marked | Every buyer gets the identical picture |
Publish builds the template server-side
Brackets only ever exist in the stored prompt_template, assembled on
the server at publish time — a place no image is ever generated from
directly, so a bracket character can never reach a model again.
Style words can never be marked, by the creator or by the suggestion model. If "professional vector" became editable, the entire craft the creator is selling would become buyer-editable, and there would be nothing left to sell. This is enforced in code, not requested politely of a language model.
Slots work in every mode
Slots are about words. Picture modes are about images — whether the creator's own picture is a locked style, a swappable example, or both. The two are independent: whichever mode an agent uses, it still needs at least one slot to be a product.