Reasoning models
Model-specific reasoning request shapes and opaque continuation contracts for GPT-5, Claude, HCX-007, and Kimi.
Reasoning models perform internal work before answering difficult math, coding, and logic tasks. PleumRouter adapts the model-specific wire shape for OpenAI, Anthropic, Naver, and GMI while treating continuation values such as signatures and encrypted data as opaque data.
How it works#
OpenAI o-series plus gpt-5, gpt-5-mini, gpt-5-nano, gpt-5.1, and gpt-5.2 are sent without temperature, with max_tokens rewritten to max_completion_tokens. That rewrite applies only to these reasoning-payload models.
gpt-5, gpt-5-mini, and gpt-5-nano are forced-reasoning models: none is removed, while low/medium/highis forwarded. gpt-5.1, gpt-5.2, and GPT-5.6 (sol/terra/luna) are optional and accept minimal…max. GPT-5.6 also accepts reasoning_mode (standard|pro) and service_tier. Existing o-series behavior is unchanged.
Claude policy is selected from the actual upstream model ID. claude-fable-5always uses adaptive thinking and cannot be disabled with none. Opus 4.8/4.7/4.6 and Sonnet 5/4.6 are optional adaptive models: low/medium/high becomes adaptive effort and none becomes disabled. Opus 4.5, Sonnet 4.5, Haiku 4.5, and Claude 3.7 use manual budgets of 20%/50%/80% (minimum 1,024, maximum 32,000, always below max_tokens) and reject max_tokens of 1,024 or less with 400. Claude 3.5 families never receive a native thinking field.
{
"model": "gpt-5.6-sol",
"messages": [
{"role": "user", "content": "Prove that there are infinitely many primes."}
],
"max_completion_tokens": 4096,
"reasoning_effort": "xhigh",
"reasoning_mode": "pro",
"service_tier": "priority"
}Request#
HCX-007 accepts optional reasoning_efforton Naver's OpenAI-compatible complete-only route, with temperature capped at 1.0. moonshotai/Kimi-K2-Thinking is a forced-thinking GMI model, but not a GPT-5 payload model: it retains ordinary OpenAI-compatible max_tokens and temperature, rather than being rewritten to max_completion_tokens.
curl https://apirouter.pleum.ai/v1/chat/completions \
-H "Authorization: Bearer plm_..." \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-sol",
"messages": [
{"role": "user", "content": "Prove that there are infinitely many primes."}
],
"max_tokens": 4096,
"reasoning_effort": "xhigh",
"reasoning_mode": "pro",
"service_tier": "priority"
}'reasoning_details signature/data value; return it unchanged only in the same tool continuation. Anthropic plaintext thought is never returned. A reasoning-token breakdown is observational and is not added again to completion/total tokens or billing.