StepFun's new 600 billion parameter flagship leaves output length unbounded by default and renames its reasoning control depending on which endpoint you call. Both defaults are cheap to fix and expensive to discover in production.
StepFun launched Step 5 Preview this weekend, and the pricing is the reason everyone is looking at it: one dollar per million input tokens on a cache miss, five cents on a cache hit, and $2.70 per million output tokens, against a 1 million token context window and a 64k token maximum output. Teams running long horizon agent loops are already pointing traffic at it. Before you do, read two lines in StepFun's own documentation that behave differently from what your code probably assumes.
The first is max_tokens. On Step 5 Preview it defaults to INF. StepFun's documentation is explicit that when you leave it unset, no limit is applied and the model determines the output length automatically, up to the 64k ceiling. Most providers your code already talks to either require max_tokens or cap it low by default, so the habit across most SDK wrappers is to omit it. Omit it here and every call is authorized to generate up to 64,000 output tokens. At $2.70 per million that is roughly seventeen cents for a single runaway response, which is trivial once and material across a retry loop that fires a few thousand times overnight. The failure is not that the model misbehaves. It is that nothing stops it, and nothing in the response tells you it could have.
The second is the reasoning control, which has two names on the same model. If you call the OpenAI compatible chat completions endpoint, the parameter is reasoning_effort. If you call StepFun's Messages API, it is output_config.effort. Both accept low, medium and high. The problem is the failure mode: pass reasoning_effort to the Messages API, or nest output_config on the chat completions endpoint, and you do not get an error. The parameter is simply ignored, the model runs at whatever it would have run at anyway, and your benchmark comparing low against high produces two identical numbers that you then spend an afternoon explaining. Teams porting agent code between the two endpoints hit this constantly, because the port looks clean and the tests still pass.
Set both explicitly on every call, today, before the traffic scales. A hard max_tokens turns an unbounded cost into a budgeted one, and it does it without touching quality for any workload whose real outputs are under the cap. Naming the effort parameter correctly for the endpoint you are actually calling is the difference between a reasoning dial and a decorative one.
While you are in there, the cache hit price is worth an architectural minute. At five cents per million against a dollar on a miss, a stable prompt prefix is twenty times cheaper on repeat. Agent loops that rebuild their context from scratch each step have been quietly paying full freight. Putting the fixed instructions and retrieved documents at the front of the prompt, in a byte identical order every turn, is the whole trick, and on this model it is the single largest lever on the bill.
Try it today
- Set max_tokens explicitly on every Step 5 Preview call. The documented default is INF, which authorizes up to the 64k output ceiling on any request you leave unset.
- Pick a cap from your actual p99 output length, not from the model maximum, and alert when responses land within ten percent of it.
- Use reasoning_effort on the OpenAI compatible chat completions endpoint and output_config.effort on the Messages API. Both take low, medium and high, and both silently ignore the other endpoint's spelling.
- Add one assertion to your test suite that a high effort call and a low effort call return measurably different reasoning token counts. If they match, the parameter is not reaching the model.
- Order your prompt so the stable prefix comes first and is byte identical across turns, so repeat calls bill at the $0.05 cache hit rate rather than $1.00 on a miss.
- If you are evaluating self hosting ahead of the October 15 open weights release, budget roughly 1.2 TB in BF16 precision for the full 600 billion parameter model.