diff --git a/run_agent.py b/run_agent.py index f25c94f17a9..6e9877a1182 100644 --- a/run_agent.py +++ b/run_agent.py @@ -3601,15 +3601,17 @@ class AIAgent: ``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. + Detection is host-driven, not model-name-driven: aggregators like + OpenRouter that re-export Kimi/Moonshot models speak their own + protocol and reject ``reasoning_content`` echoes. We only enable the + kimi-reasoning replay when the request actually targets a + kimi/moonshot endpoint or the dedicated kimi-coding provider. """ 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: