KwaiKAT KAT-Coder Models
KwaiKAT (Kwaipilot / Kuaishou StreamLake) KAT-Coder models are agentic coding models built for multi-step software work inside real repositories. They are called with the kwaikat/... canonical model id over /v1/chat/completions.
| Model | Context | Input / Output / Cache Read ($/1M) | Note |
|---|---|---|---|
kwaikat/kat-coder-pro-v2.5 | 256K | 0.74 / 2.96 / 0.15 | Flagship; repository-scale agentic work. |
kwaikat/kat-coder-air-v2.5 | 256K | 0.15 / 0.60 / 0.03 | Cost-efficient; high-volume workflows. |
Both models support tool/function calling, base64 image input, and prompt-cache reads.
curl "$LLMTR_BASE_URL/v1/chat/completions" \ -H "Authorization: Bearer llmtr-your_key" \ -H "Content-Type: application/json" \ -d '{ "model": "kwaikat/kat-coder-pro-v2.5", "messages": [ { "role": "user", "content": "Run the tests in this repo and fix the failing one." } ], "max_tokens": 2048 }'Reasoning is always on
Section titled “Reasoning is always on”KAT-Coder models reason step by step on every request before answering; reasoning cannot be turned off and fields such as reasoning_effort are ignored. Reasoning tokens are returned inside completion_tokens and billed as output (not charged separately).
The practical consequence: if max_tokens is too low, the budget can be spent during reasoning and content comes back empty with finish_reason length. Keep max_tokens comfortable even for short answers (recommended: at least 1024). See Reasoning Effort for details.
Image input
Section titled “Image input”The models accept images only as base64 data URLs (data:image/...;base64,...). Remote http(s) image URLs are not supported and the gateway rejects them with 400 unsupported_input.
curl "$LLMTR_BASE_URL/v1/chat/completions" \ -H "Authorization: Bearer llmtr-your_key" \ -H "Content-Type: application/json" \ -d '{ "model": "kwaikat/kat-coder-air-v2.5", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Summarize the error message in this screenshot." }, { "type": "image_url", "image_url": { "url": "data:image/png;base64,<base64>" } } ] } ], "max_tokens": 1024 }'Tool calling
Section titled “Tool calling”Standard OpenAI tools / tool_choice fields are supported. When the model calls a tool, finish_reason is tool_calls and content stays empty. See Tool Calling for the general flow.
When you resend the same prompt prefix, prompt-cache read kicks in; usage.prompt_tokens_details.cached_tokens is populated and those tokens are billed at the cache-read price. The cache warms up after a few requests. There is no cache-write fee.