Moonshot's Kimi Code Now Routes Subagents to Cheaper Models, Cutting AI Costs
Kimi Code CLI 0.29.1 adds per-subagent model routing, OAuth-free web services, and a fix for vLLM reasoning content loss

- Secondary model bindings (experimental): Route subagents to a different model than the main orchestrator, with per-agent-type overrides.
- OAuth-free web services: Configure web search and web fetch via environment variables, no browser login required.
- Global MCP timeouts: Set a default timeout for all MCP server calls in
config.tomlor env vars. - vLLM reasoning fix: Reasoning content no longer silently drops when using newer vLLM or non-standard OpenAI-compatible endpoints.
- Available now: Update with
kimi upgradeor via the official repo; free to use with a Kimi API key. - Docs: Full secondary model config reference at the official Kimi Code docs.
Kimi Code CLI just shipped version 0.29.1, a focused update that quietly introduces one of the more interesting ideas in agentic coding tools: the ability to route different subagents to different models. Alongside that, it adds environment-variable-based configuration for web search and fetch, global MCP timeout controls, and a bug fix that matters a lot if you're running vLLM locally.
The subagent model routing story
Kimi Code already supports a multi-agent architecture where a main orchestrator spawns specialized subagents -- a coder for writing and editing files, an explore agent for read-only codebase search, and a plan agent for architecture work.
These subagents handle focused, parallel work and run in isolated contexts, keeping the main conversation clean.
The new feature in 0.29.1 is experimental secondary-model bindings. It lets you configure a separate model specifically for subagents, rather than having every agent in the hierarchy share the same model. This opens up a cost/quality tradeoff that's genuinely useful in practice:
- Use a powerful, expensive model for the main orchestrator that plans and delegates
- Route subagents to a faster, cheaper model for grunt work like file reads, grep, and code edits
- Override the model on a per-agent-type basis when you want a specific subagent to use something different