Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions agent/transports/chat_completions.py
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,7 @@ def build_kwargs(
anthropic_max_out = params.get("anthropic_max_output")
is_nvidia_nim = params.get("is_nvidia_nim", False)
is_kimi = params.get("is_kimi", False)
is_deepseek = params.get("is_deepseek", False)
is_tokenhub = params.get("is_tokenhub", False)
reasoning_config = params.get("reasoning_config")

Expand Down Expand Up @@ -333,6 +334,19 @@ def build_kwargs(
"type": "enabled" if _kimi_thinking_enabled else "disabled",
}

# DeepSeek extra_body.thinking (same format as Kimi)
if is_deepseek:
_ds_thinking_enabled = True
if reasoning_config and isinstance(reasoning_config, dict):
if reasoning_config.get("enabled") is False:
_ds_thinking_enabled = False
_ds_effort = (reasoning_config.get("effort") or "").strip().lower()
if _ds_effort == "none":
_ds_thinking_enabled = False
extra_body["thinking"] = {
"type": "enabled" if _ds_thinking_enabled else "disabled",
}

# Reasoning. LM Studio is handled above via top-level reasoning_effort,
# so skip emitting extra_body.reasoning for it.
if params.get("supports_reasoning", False) and not params.get("is_lmstudio", False):
Expand Down
6 changes: 6 additions & 0 deletions run_agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -8710,6 +8710,11 @@ def _build_api_kwargs(self, api_messages: list) -> dict:
or base_url_host_matches(self.base_url, "moonshot.cn")
)
_is_tokenhub = base_url_host_matches(self._base_url_lower, "tokenhub.tencentmaas.com")
_is_deepseek = (
self.provider == "deepseek"
or "deepseek" in (self.model or "").lower()
or base_url_host_matches(self.base_url, "api.deepseek.com")
)
_is_lmstudio = (self.provider or "").strip().lower() == "lmstudio"

# Temperature: _fixed_temperature_for_model may return OMIT_TEMPERATURE
Expand Down Expand Up @@ -8819,6 +8824,7 @@ def _build_api_kwargs(self, api_messages: list) -> dict:
is_github_models=_is_gh,
is_nvidia_nim=_is_nvidia,
is_kimi=_is_kimi,
is_deepseek=_is_deepseek,
is_tokenhub=_is_tokenhub,
is_lmstudio=_is_lmstudio,
is_custom_provider=self.provider == "custom",
Expand Down
Empty file added sessions.db
Empty file.