fix(run_agent): detect kimi models via model name for reasoning pad

previously only checked provider ID and
base URL. When kimi-k2.6 is served via ollama-cloud (or any third-party
provider), provider is not 'kimi-coding' and base URL is not
api.kimi.com — so reasoning_content pad was never injected. This caused
HTTP 400 from Ollama Cloud's Go backend: 'invalid message content type:
map[string]interface {}'.

Fix: add model-name detection ('kimi' in model.lower()) so any route
serving a kimi model gets the required reasoning_content echo-back.

Refs the 400/401 Telegram errors where kimi-k2.6 via ollama-cloud
consistently failed after tool-call turns.
This commit is contained in:
hermesagent26 2026-05-16 22:51:17 -07:00 committed by Teknium
parent 5f72dd817e
commit 9a9f8a6d99

View file

@ -10437,12 +10437,16 @@ class AIAgent:
Kimi ``/coding`` and Moonshot thinking mode both require
``reasoning_content`` on every assistant tool-call message; omitting
it causes the next replay to fail with HTTP 400.
Also detects Kimi models served through third-party providers (e.g.
ollama-cloud) by matching ``kimi`` in the model name.
"""
return (
self.provider in {"kimi-coding", "kimi-coding-cn"}
or base_url_host_matches(self.base_url, "api.kimi.com")
or base_url_host_matches(self.base_url, "moonshot.ai")
or base_url_host_matches(self.base_url, "moonshot.cn")
or "kimi" in (self.model or "").lower()
)
def _needs_deepseek_tool_reasoning(self) -> bool: