Kimi / Sep 22, 2026

Kimi K3 Web Search Billing: Feature Flags for Coding Agents

Put Kimi K3 web search behind an explicit feature flag with cache-aware budgets, output ceilings, dated AIWave prices, and coding-agent receipts.

Keyword report: 2026-09-21Tier 1/2 developer focusSources checked Sep 22, 2026

This guide uses source checks from Sep 22, 2026. Provider and gateway prices can change; preserve the checked date with every forecast.

Why This Topic Matters Now

Kimi K3 appeared in the Sep 21 keyword report as a long-context API topic for Tier 1 and Tier 2 developers. The sharper production question is not whether an agent can search. It is whether web search is an explicit, reviewable capability or an invisible multiplier inside a coding loop. Kimi's current API pricing guide lists web search as a separate per-invocation fee and describes context caching for repeated prompts and reference material. Those two facts belong in the route policy, not only in a billing FAQ.

This guide turns search into a feature flag with an acceptance set. A coding agent can run local review with search disabled, dependency research with search enabled, and incident investigation with a small call cap. Each mode should retain the model, cache fields, search count, output ceiling, retry count, and reviewer result. That lets engineering keep a stable OpenAI-compatible client while finance and procurement can see which features actually created the spend.

Source Facts Checked Today

AIWave /api/pricing was checked from production on Sep 22, 2026 and returned HTTP 200, success=true, 74 live route rows, pricing_version a42d372ccf0b5dd13ecf71203521f9d2, auto_groups=['default'], group_ratio default=1 and vip=0.9, and OpenAI-compatible endpoint types for the selected routes. The public /api/v1/pricing endpoint returned HTTP 200 with 56 dated USD rows, pricing_version 83f77abde81ee3a096a672ed959ccc096f5d37a45c177ae8e03229456b5415a5, checked=2026-09-10, and updated_at=2026-09-18. Keep live route availability separate from the dated public USD snapshot.

Kimi's API pricing guide checked on Sep 22, 2026 says billing is based on input and output tokens, with 1M defined as 1,000,000 tokens. It lists Web Search at $0.004 per invocation, independent of token consumption, and describes context caching for repeated system prompts and reference documents. It also says Kimi K3 uses a 1M-token context with flat pay-as-you-go pricing by token class.

The dated AIWave public row checked in this run lists `kimi-k3` at $4.5 input, $0.9 cache-hit input, and $22.5 output per 1M tokens, with effective_date 2026-08-27. The live AIWave route response also includes `kimi-k3` with an OpenAI-compatible endpoint type and live route ratios. Keep the Kimi provider feature fee separate from the AIWave gateway rate row.

Planning Matrix

A source-dated planning matrix keeps the page useful for engineers and procurement reviewers. It turns a search query into an auditable route decision instead of a loose model preference.

Agent modeSearch flagReceipt fields
Local code reviewOffmodel, tokens, finish reason
Dependency researchOn, cappedquery class, calls, citations
Incident debuggingOn, one bounded passincident ID, calls, stop reason
Repository preloadOff during baselinecontext size and cache share
Long patch draftOff unless approvedoutput cap and reviewer result
FallbackInherited only by policyattempt count and route ID

Implementation Pattern

The implementation pattern keeps credentials as placeholders, pins the AIWave base URL, records the model, and leaves room for route-specific controls. Production applications should move credentials into environment or secret storage.

from dataclasses import dataclass
from openai import OpenAI

client = OpenAI(api_key="YOUR_API_KEY_HERE", base_url="https://aiwave.live/v1")

@dataclass
class AgentMode:
    model: str
    web_search: bool
    max_search_calls: int
    max_tokens: int

mode = AgentMode(
    model="kimi-k3",
    web_search=False,
    max_search_calls=0,
    max_tokens=900,
)

response = client.chat.completions.create(
    model=mode.model,
    messages=[{"role": "user", "content": "Review this redacted change."}],
    temperature=0.1,
    max_tokens=mode.max_tokens,
)
print({"search_enabled": mode.web_search, "usage": response.usage})

Make the Search Intent Operational

For a Kimi K3 search feature flag, the useful artifact is a small operating policy: approved model IDs, source date, request shape, data class, output ceiling, tool allowance, retry ceiling, and owner. Put those fields in the release record before a trial begins so engineering, finance, and procurement review the same decision rather than three different interpretations of a model name.

Separate Live Routes From Dated Rates

AIWave's live pricing response answers which route rows and endpoint types are available now. The public pricing JSON answers which dated USD base-rate rows were published for forecasting. They are related evidence, not interchangeable tables. Store both URLs, versions, checked dates, model IDs, and the account-group context used by the forecast.

Build a Small Acceptance Set

A production canary should include a normal request, repeated context, a long input, a malformed request, and a stop-condition case. Capture request ID, model ID, status, input tokens, cached input when exposed, output tokens, tool calls, retries, finish reason, and reviewer outcome. This turns a blog recommendation into evidence that can survive a route or provider update.

Keep the Request Boundary Explicit

OpenAI compatibility reduces client changes; it does not decide what data may cross a route. Keep credentials server side, use an obvious placeholder in examples, redact test fixtures, and attach a data-class decision to the route policy. A model alias, feature flag, or billing mode should never silently widen the approved data boundary.

Use Bounded Recovery

Retry only errors that are safe to retry, and give every fallback an attempt ceiling. Preserve the original request ID and record the stop reason. For tool-using agents, distinguish a provider error, a validation failure, a policy rejection, and a budget stop. Silent loops make both reliability and cost impossible to explain.

Use AIWave's Evidence Layer

Use the Models docs, Chat Completions docs, live route pricing, and Trust. Recheck the live route table before rollout, the dated pricing JSON before a budget review, the status page before a launch window, and the trust page before procurement. Keep the checked dates visible in the internal decision record instead of presenting a volatile provider page as a permanent quote.

Release Gate

Promotion is ready when the official provider source is dated, the AIWave route is rechecked, the representative canary passes, the billing fields are understood, and a named owner can stop or reverse the change. If any of those fields are unknown, label the work as a trial rather than production.

Source Links

Related AIWave Links