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

33 lines
1.3 KiB
Markdown

# OpenClaw Kimi Coding Provider
Official OpenClaw provider plugin for Kimi Coding.
Install from OpenClaw:
```bash
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.