Skip to content

feat(cli): add kimi-k.3.0 to kimi-coding and related model catalogs - #64540

Closed
am423 wants to merge 1 commit into
NousResearch:mainfrom
am423:feat/add-kimi-k3.0-model-catalog
Closed

feat(cli): add kimi-k.3.0 to kimi-coding and related model catalogs#64540
am423 wants to merge 1 commit into
NousResearch:mainfrom
am423:feat/add-kimi-k3.0-model-catalog

Conversation

@am423

@am423 am423 commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds the pre-release Kimi K3.0 model id (kimi-k.3.0) to the Hermes model menus and provider catalogs ahead of its public release.

What changed

  • hermes_cli/models.py
    • Added moonshotai/kimi-k.3.0 to OPENROUTER_MODELS and _PROVIDER_MODELS["nous"] so it appears in the Nous portal/OpenRouter curated lists.
    • Added kimi-k.3.0 to _PROVIDER_MODELS for kimi-coding, kimi-coding-cn, moonshot, opencode-zen, opencode-go, alibaba.
    • Added moonshotai/kimi-k.3.0 to _PROVIDER_MODELS for nvidia and novita.
  • agent/model_metadata.py
    • Added explicit kimi-k.3.0 context length fallback of 262144.
  • plugins/model-providers/kimi-coding/__init__.py
    • Updated default_aux_model from kimi-k2-turbo-preview to kimi-k.3.0 for both the international and China profiles.
  • website/static/api/model-catalog.json
    • Regenerated with python3 scripts/build_model_catalog.py so the online manifest matches the in-repo curated lists.
  • website/docs/integrations/providers.md and its Chinese translation
    • Updated the quick-start examples to use kimi-k.3.0.
  • tests/plugins/model_providers/test_kimi_profile.py
    • Added drift-guard tests asserting kimi-k.3.0 is present in the kimi-coding catalog and accepted by validate_requested_model.

Testing

python3 -m pytest tests/hermes_cli/test_model_validation.py \
                 tests/hermes_cli/test_model_catalog.py \
                 tests/plugins/model_providers/test_kimi_profile.py \
                 tests/agent/test_model_metadata.py -q

Result: 260 passed.

Notes

  • OpenRouter has not publicly listed kimi-k.3.0 yet, so the OpenRouter/Nous/Novita/NVIDIA entries are staged for the slug moonshotai/kimi-k.3.0 and can be corrected via the live manifest once the model is released.
  • No new provider plugin was needed; this is purely a model catalog update.

Checklist

  • Branch cut from latest origin/main.
  • Conventional Commits message used.
  • In-repo manifest regenerated and matches models.py.
  • Targeted tests added and passing.
  • Provider docs and i18n docs updated.

@alt-glitch alt-glitch added type/feature New feature or request comp/cli CLI entry point, hermes_cli/, setup wizard P3 Low — cosmetic, nice to have labels Jul 14, 2026

@teknium1 teknium1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the catalog update. Current main does not yet contain this slug, but this version needs availability evidence and a smaller scope before it is safe to salvage.

Problems

  • plugins/model-providers/kimi-coding/__init__.py:65,76 makes this pre-release ID the automatic auxiliary model for both endpoints. agent/auxiliary_client.py:469-480,1958-2001 consumes that profile default for side-task requests, while the PR body provides no endpoint-level availability validation.
  • website/docs/integrations/providers.md:231,235 promotes the same pre-release ID to both public quick starts.
  • tests/plugins/model_providers/test_kimi_profile.py:52,58 are catalog snapshots. AGENTS.md:1321-1340 explicitly rejects exact model-membership change-detector tests.
  • agent/model_metadata.py:320 already provides the same 262144 fallback for the entire kimi family, so the new exact entry is redundant.

Suggested changes

  • Verify availability per endpoint before changing auxiliary defaults or docs; scope entries to confirmed providers.
  • Replace the exact-ID tests with a catalog/manifest invariant, and remove the redundant fallback.

Automated hermes-sweeper review.

default_max_tokens=32000,
default_headers={"User-Agent": "hermes-agent/1.0"},
default_aux_model="kimi-k2-turbo-preview",
default_aux_model="kimi-k.3.0",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This changes automatic auxiliary requests for kimi-coding, not only the picker: agent/auxiliary_client.py:469-480,1958-2001 selects default_aux_model from the profile. Please retain the existing default until the pre-release slug has been verified against this endpoint (and independently against the China endpoint below).

"""The pre-release K3.0 model id is available for selection."""
from hermes_cli.models import provider_model_ids

assert "kimi-k.3.0" in provider_model_ids("kimi-coding")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove this exact catalog-membership assertion (and the matching validation snapshot below). AGENTS.md:1321-1340 explicitly prohibits change-detector tests for mutable model catalogs; use a catalog/manifest consistency invariant instead.

Comment thread agent/model_metadata.py
"grok": 131072, # catch-all (grok-beta, unknown grok-*)
# Kimi
"kimi": 262144,
"kimi-k.3.0": 262144,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Current main already has the generic "kimi": 262144 fallback at agent/model_metadata.py:320, which covers this slug with the same value. This exact entry does not change resolution, so please keep the family mapping as the single source.


# Kimi / Moonshot AI (international: api.moonshot.ai)
hermes chat --provider kimi-coding --model kimi-for-coding
hermes chat --provider kimi-coding --model kimi-k.3.0

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR describes this as a pre-release staged ahead of public release. Please do not replace the public quick-start command until this exact slug is verified available on the advertised endpoint; otherwise keep the current known-working example.

@teknium1 teknium1 added sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform labels Jul 16, 2026
@amanning3390

Copy link
Copy Markdown
Contributor

Superseded by #65725. The replacement is rebased on current main and addresses this review with endpoint-level evidence and strict scope: canonical k3 is discovered dynamically only from https://api.kimi.com/coding/v1/models; legacy/China/custom endpoints filter it, the 1,048,576-token context is endpoint-scoped, and auxiliary defaults, docs, static catalogs, aggregators, and the manifest remain unchanged. 279 focused tests pass.

@teknium1

Copy link
Copy Markdown
Contributor

Thanks @am423 for flagging Kimi K3 ahead of release — appreciated. Closing this one now that the two halves it covered have landed or been superseded:

Credit to you as the first to submit K3 support.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/cli CLI entry point, hermes_cli/, setup wizard P3 Low — cosmetic, nice to have sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants