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

·
·
Moonshot's Kimi Code Now Routes Subagents to Cheaper Models, Cutting AI Costs
Read3 min
TypeNews
  • 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.toml or 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 upgrade or 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 version 0.29.1 ships with one genuinely interesting idea: routing different subagents to different models. The update also adds environment-variable configuration for web search and fetch, global MCP timeout controls, and a bug fix for vLLM users who've been losing reasoning output.

Route subagents to cheaper models

Kimi Code runs a multi-agent architecture where a main orchestrator spawns three specialized subagents: a coder for writing and editing files, an explore agent for read-only codebase search, and a plan agent for architecture work. Until now, every agent in that hierarchy shared the same model.

Version 0.29.1 introduces experimental secondary-model bindings, letting you assign a separate model specifically to subagents. The practical payoff:

  • Run a powerful, expensive model on the orchestrator that plans and delegates
  • Route subagents to a faster, cheaper model for file reads, grep, and code edits
  • Override the model per agent type when a specific subagent needs something different

Configuration lives in config.toml under a new [secondary_model] section. The secondary model uses the same alias system as the primary: define the model in the [models] table, reference it by name.

# main agent uses k3, subagents use a lighter model
default_model = "kimi-code/k3"
[secondary_model]
default_model = "kimi-code/kimi-for-coding-highspeed"

The feature is marked experimental, so the API surface may shift. The underlying idea, that not every agent in a swarm needs the same compute, is a practical step toward cost management in multi-agent pipelines.

Web search without OAuth

Previously, Kimi Code's built-in web search and fetch tools required an OAuth login flow. That's a problem in CI pipelines, Docker containers, and headless environments where browser-based auth isn't available.

0.29.1 adds environment variables to configure both services directly, bypassing OAuth entirely:

export KIMI_SEARCH_BASE_URL="https://api.moonshot.cn/v1/search"
export KIMI_SEARCH_API_KEY="sk-xxx"
export KIMI_FETCH_BASE_URL="https://api.moonshot.cn/v1/fetch"
export KIMI_FETCH_API_KEY="sk-xxx"

This also lets you point search and fetch at a self-hosted backend rather than Moonshot's default endpoints.

Global MCP timeouts

MCP (Model Context Protocol) servers are external processes that extend the agent's tool set: GitHub integrations, database connectors, custom APIs. If one hangs, it stalls the entire agent loop.

0.29.1 adds a global default timeout for MCP server calls, configurable in config.toml or via environment variables. Set a ceiling once and it applies to every MCP server, with no per-server configuration required.

vLLM reasoning content fix

When using OpenAI-compatible endpoints like vLLM, reasoning models return their chain-of-thought under a field name that varies by server version. Newer vLLM releases changed that field name, causing Kimi Code to silently drop all thinking output. The model's internal reasoning never reached the context window.

0.29.1 fixes field name detection so reasoning content is preserved regardless of which name the endpoint uses. If you've been running a local reasoning model through vLLM and watching the thinking steps disappear, this is the fix.

Where this fits

A recent Kimi Code release expanded the coder subagent's tool set to include background tasks, todo lists, plan mode, skill invocation, and nested agents, bringing it close to parity with the main agent. Secondary model routing builds directly on that: now that subagents are fully capable, it makes sense to let them run on different models.

Multi-agent coding tools are beginning to treat model selection as a routing problem rather than a global setting. Different tasks carry different cost and latency profiles, and the tooling is catching up. The official docs have the full configuration reference for secondary model bindings.

Version 0.29.1 is available now. Install or update via the official installer or run kimi upgrade if you already have the CLI.

Comments

avatar