MoonshotAI / MoonshotAI/kimi-code
ACP thought_level option ignores model support_efforts: kimi-code/k3 advertises only on, graded values silently dropped
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 7.5k
- Forks
- 1.2k
- Avg merge
- 11h 53m
- Merged PRs (30d)
- 350
Description
What feature would you like to see?
Expose model thinking-effort levels (support_efforts) through the ACP thought_level config option.
For managed kimi-code models that declare graded effort levels, the ACP adapter collapses the thinking config option to a single "on" value:
config.tomldeclareskimi-code/k3withsupport_efforts = ["low","high","max"]anddefault_effort = "high". The TUI/effortpicker correctly offers the graded levels for this model.- Over ACP (
kimi acp, 0.27.0),session/newreturns thethinkingconfig option (category: "thought_level") withoptions: ["on"]only — not evenoff. Same after switching models viasession/set_config_optionor the unstablesession/set_model, including the resultingconfig_option_updatenotification. - Sending a graded value (
low/high/max) viasession/set_config_optionis silently ignored:currentValuestays"on", no error is returned.
The capability itself works end-to-end outside ACP: sessions honor [thinking] effort from config.toml — an ACP-spawned session with K3 sends model requests carrying thinkingEffort: "max". Only the ACP surface cannot discover or change it.
Ask: advertise the active model's ordered support_efforts (plus off where applicable) as the thinking config-option options, updating on model change, and apply graded values passed to session/set_config_option live. Keeping on/off as accepted aliases (on = model default) would stay backward compatible with existing clients.
This would let ACP clients (Zed, JetBrains, and other IDE integrations) offer a per-session effort picker instead of requiring users to edit the global config.toml and respawn sessions.
Additional information
- Related: #1486 asks for graded reasoning-effort over
session/set_config_optiongenerically; this report adds the managed-kimi-code-model angle, where the adapter does not even advertiseoffand graded writes fail silently (no error), which makes client-side fallbacks impossible to detect. - Repro (0.27.0, Windows):
kimi acp→initialize→session/new→ inspectconfigOptions; thensession/set_config_option {configId:"model", value:"kimi-code/k3"}andsession/set_config_option {configId:"thinking", value:"high"}→currentValueremains"on". - Workaround currently required: set
[thinking] effortin~/.kimi-code/config.tomlglobally and start a new ACP session; verified effective via the session wire log ("thinkingEffort":"max").
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the kimi acp flow and reproduce the behavior through session/new, session/set_config_option, and the unstable session/set_model using the issue's K3 configuration. Trace how config.toml values such as support_efforts and default_effort become the ACP thinking option. Done means the active model advertises its ordered effort levels and applicable off value, model changes update them, and graded values apply live while on and off remain compatible aliases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, cli
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100