Comparisons

    Agent routing or picking the model yourself

    Three job types where an agent's model choice predictably goes wrong, and how to pin a named model in the brief without giving up routing everywhere else.

    Versely Team9 min read

    Ask the agent for "a ten-second product shot, vertical, moody" and it will pick a model and give you a good clip. Ask it for the same shot again next month, when the first one is already running as an ad, and there is a decent chance you get a good clip that does not match. Nothing failed. The routing did what routing does: it chose a model that fits the description you gave. The description just didn't contain the thing that actually mattered.

    That is the whole shape of this decision. Routing is a search over the catalog against your brief. It can only weigh constraints you wrote down, and the constraints people forget to write down are the same three every time.

    What routing actually does

    On Versely the model choice is a real parameter, not a hidden one. The video generation tool takes a models argument and it is required, which means something always fills it: either you name a model, or the planner picks one. The agent's text-to-video capability states the behaviour plainly, and it is worth reading literally: it picks a video model from the catalog, or uses the one you name, matched to your ask. It also asks about duration, aspect ratio and resolution before generating rather than assuming defaults.

    Underneath that, the agent has a schema lookup it can call before dispatch, which returns the exact input fields, allowed values, defaults and bounds for a given model, one entry per provider route. That is why routed generations rarely fail with an invalid-parameter error. It is also why routing feels more capable than it is: the agent is very good at making a chosen model work, and much less good at knowing which model you meant.

    There are also hardcoded disambiguation rules for families where the names collide. Ask for "LTX" and the planner is instructed to emit the LTX 2.3 family names directly rather than the older LTXV2 ones. Useful, and a clue about the general problem: family names are ambiguous enough that they needed a rule.

    The three jobs routing gets wrong

    1. A look that already shipped. Your brand kit persists colours, fonts, tone, tagline, logo, product shots, caption style and default aspect ratio, and those get injected into context automatically. What it does not persist is model identity. Two models given identical prompt, identical palette and identical aspect ratio still produce different grain, different motion cadence, different skin rendering, different depth-of-field falloff. On a single clip nobody notices. In a six-clip sequence cut together, or a new variant dropped into a running ad set beside three older ones, it reads immediately as a mismatch.

    So the rule is: the first clip in a look can be routed. Every subsequent clip in that same look must name the model. If you have a house look you intend to keep, the model belongs in the brand brief next to the hex codes, and a lasting agent preference is the right place to record it so you are not retyping it.

    2. A hard duration ceiling. This is the failure that costs the most credits, because it does not error, it substitutes. Duration support in the catalog is not a continuous range, it is a published set of allowed values, and the sets differ wildly between families. Some examples straight from the catalog:

    Model Allowed durations
    Veo 3.1 4s, 6s, 8s
    Hailuo 2.3 Pro 6s, 10s
    Kling 3 Turbo 3s through 15s
    Seedance 2.0 4s through 15s
    LTX 2.3 Text to Video Fast 6s, 8s, 10s, 12s, 14s, 16s, 18s, 20s

    Brief a fifteen-second continuous shot without naming a model and you may get an eight-second clip, or an assembly of shorter clips that reads as a cut when you wanted a single take. If the shot is defined by its unbroken length, a held camera move, a single continuous action, a read that has to land in one breath, that constraint has to be in the brief as a hard requirement rather than a preference, or you have to name a model from the right column. The longest-duration shortlist is the fast way to find that column.

    Two related traps. Twenty-four of the catalog's video models publish no duration list at all, so the answer sometimes has to be settled by the schema lookup at dispatch. And the floor matters as much as the ceiling: a model whose shortest allowed duration is 5s will not give you a 3s beat.

    3. Output whose licence has to be checked. Provider terms differ, and they differ on exactly the axes that matter for paid media: whether commercial use is permitted, whether particular markets or territories are carved out, what attribution is expected, and what happens with likenesses. None of that is a quality judgement and none of it is something a router can infer from "make me an ad".

    If the output is going into paid placement, into a regulated category, or into a market with its own rules, the model is a legal decision before it is a creative one. Pin it, and check the provider's published terms for that specific model rather than the family. This is the same discipline as usage rights on creator content: silence in a licence is read narrowly, not generously.

    What routing is genuinely better at

    Three things, and they are not small.

    Exploration. When you do not yet know what the shot is, naming a model is a guess dressed up as a decision. Let it route, look at what comes back, then pin.

    Input-shape matching. Reference-to-video models, first-and-last-frame models and motion-control models all take different input sets, and picking the wrong one produces a rejection rather than a bad clip. The agent handles this well because the constraint is mechanical and it can read the schema. Handing it two photos and asking for a transition is a job it will route correctly more reliably than most people will.

    Fan-out. The models parameter takes a list, so one prompt can go to several named models in a single request. That is the fastest honest comparison you can run, because everything except the model is held constant. It is also the cheapest way to build the shortlist you will pin from later. Check the total first with the cost estimator, which returns per-item and total credits against your balance before anything dispatches, and note that there is no free allowance to absorb a mistake here. Every generation costs credits, so a fan-out across six models is six charges.

    Writing the pin into a brief

    The pattern that works is to separate the creative direction from the hard constraints, and to state the constraints as constraints.

    Weak:

    Make a 15-second vertical clip of the bottle on wet stone, moody, one continuous push-in.

    Better:

    Generate with Kling 3 Turbo. 15s, 9:16, one continuous push-in on the bottle on wet stone, moody low key. Do not substitute a shorter duration or split this into multiple clips.

    Three things changed. The model is named. The duration is stated as a requirement rather than a description. And the substitution the router would otherwise make is explicitly ruled out.

    For anything recurring, put the pin in the saved definition rather than the message. A recurring video series and a saved workflow both carry their settings between runs, which is what stops model drift creeping into a series over a quarter. A branded hook pack is the other end of the same idea: the model is fixed by the feature, so every hook in the pack matches by construction.

    The short version

    Route when the output is disposable, exploratory, or defined by its input shape. Pin when the output has to match something that already exists, has to be exactly one length, or has to survive a licence question. Pinning everything means you stop discovering models; pinning nothing means your brand look drifts one clip at a time.

    FAQ

    Does naming a model cost more than letting the agent choose?

    Not by itself. Credit cost is a property of the model, its duration and its resolution, and the catalog publishes it per model. Naming a more expensive model costs more; naming a cheaper one costs less. What routing changes is which of those you land on, which is exactly why an unpinned brief has an unpredictable bill as well as an unpredictable look. Run the estimate before a batch if the number matters.

    If I pin a model, does the agent still ask about duration and resolution?

    Yes. Pinning the model does not pin the other parameters. The capability explicitly asks about duration, aspect ratio and resolution rather than assuming defaults, so a fully deterministic brief names all four. Versely renders at 25 fps by default, which is the one you are least likely to think about and the one that causes the most trouble later if half your clips came in at something else.

    How do I compare candidates before pinning?

    Send one prompt to several named models in a single request with a fixed seed, then score the outputs on the axes you actually care about rather than overall impression. The quality-per-credit report plots the catalog's ELO scores, which are synced from Artificial Analysis, against Versely credit price. Good for building a shortlist; treat leaderboard position as a prior for what to test rather than a result.

    Is there a way to see what the agent picked after the fact?

    Yes, the model is recorded with the generation, and a reroll can be pointed at the same model or a different one deliberately. That makes an earlier generation the cheapest place to recover a look you liked but did not write down, which is worth knowing the first time this happens to you.