openclaw/extensions/kimi-coding/README.md
RileyJJY 5e30346432
fix(kimi): stop treating quota exhaustion as authentication failure (#142656)
Classify explicit Kimi weekly, seven-day, and quota-reset HTTP 403 responses at the provider owner. Keep genuine access restrictions, invalid credentials, and generic HTTP authentication handling unchanged.

Declare the existing kimi-code alias so lazy provider resolution reaches the same hook. Preserve the contributor repair and add regression coverage for the reused error type, aliases, and status boundaries.

Public Gateway proof with a synthetic key and loopback Kimi HTTP server reproduces the wrong auth guidance and blocked sibling request on pinned main, then verifies rate-limit guidance and successful sibling fallback after repair.

Closes #142524

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-09-09 08:16:50 +05:30

1.3 KiB

OpenClaw Kimi Coding Provider

Official OpenClaw provider plugin for Kimi Coding.

Install from OpenClaw:

openclaw plugins install @openclaw/kimi-provider
openclaw gateway restart

See https://docs.openclaw.ai/providers/moonshot for setup and configuration.

Quota errors

Kimi can return HTTP 403 when a weekly usage limit is exhausted. OpenClaw treats explicit weekly, seven-day, or quota-reset errors as rate limits. Wait for the provider's quota window to reset or use another configured provider; replacing a valid API key does not restore quota. Invalid keys and access restrictions keep their authentication error handling.

Catalog notes

Model rows live in openclaw.plugin.json under modelCatalog.providers.kimi.

  • k3 serves up to 1M context, tier-gated server-side; k3-256k is the cheaper 256K variant of the same weights. Both point at moonshot/kimi-k3 through upstreamModel, which keeps their compat capability tiers aligned with the moonshot catalog for the same model.
  • Legacy k3[1m] was retired upstream and normalizes to k3 for shipped configurations.
  • KIMI_K3_MODEL_IDS in provider-policy-api.ts must cover exactly the catalog rows that carry a K3 thinkingLevelMap; provider-catalog.test.ts asserts it.