fix: default reasoning effort to medium instead of high

This commit is contained in:
m4
2026-08-20 08:13:57 +08:00
parent 7605136189
commit 8764f2012f
4 changed files with 19 additions and 5 deletions
+1 -1
View File
@@ -1385,7 +1385,7 @@ def _parse_v3_config(
allowed=_REASONING_EFFORTS - {"disabled"},
)
default_reasoning_effort = str(
reasoning_policy.get("default_effort") or "high"
reasoning_policy.get("default_effort") or "medium"
)
if default_reasoning_effort not in allowed_reasoning_efforts:
raise EvoRuntimeError(
+1 -1
View File
@@ -593,7 +593,7 @@ def get_chat_model(
# passback (OpenRouter's `/responses` beta is stateless, store=false —
# "Item with id 'rs_...' not found"); the patch strips them on passback,
# so enabling `summary` is safe. See langchain-ai/langchain#37777.
kwargs.setdefault("reasoning", {"effort": "high", "summary": "auto"})
kwargs.setdefault("reasoning", {"effort": "medium", "summary": "auto"})
# App attribution (issue #339): identify EvoScientist to OpenRouter so
# usage is credited to the project (app rankings, model app tabs,
# analytics) rather than langchain-openrouter's LangChain-branded
+3 -3
View File
@@ -459,7 +459,7 @@ class TestThirdPartyRouting:
call_kwargs = mock_init.call_args[1]
assert call_kwargs["model_provider"] == "openrouter"
assert call_kwargs["api_key"] == "or-key-456"
assert call_kwargs["reasoning"] == {"effort": "high", "summary": "auto"}
assert call_kwargs["reasoning"] == {"effort": "medium", "summary": "auto"}
@patch("EvoScientist.llm.models.init_chat_model")
def test_openrouter_reasoning_user_override(self, mock_init, monkeypatch):
@@ -488,7 +488,7 @@ class TestThirdPartyRouting:
get_chat_model("x-ai/grok-4.3", provider="openrouter")
call_kwargs = mock_init.call_args[1]
assert call_kwargs["reasoning"] == {"effort": "high", "summary": "auto"}
assert call_kwargs["reasoning"] == {"effort": "medium", "summary": "auto"}
# --- OpenRouter app attribution (issue #339) ---
@@ -599,7 +599,7 @@ class TestThirdPartyRouting:
call_kwargs = mock_init.call_args[1]
# Existing behavior intact.
assert call_kwargs["reasoning"] == {"effort": "high", "summary": "auto"}
assert call_kwargs["reasoning"] == {"effort": "medium", "summary": "auto"}
assert call_kwargs["model_kwargs"]["cache_control"] == {"type": "ephemeral"}
# Attribution added alongside.
assert call_kwargs["app_url"] == "https://github.com/EvoScientist/EvoScientist"
+14
View File
@@ -802,6 +802,20 @@ def test_model_reasoning_policy_can_restrict_efforts_and_enable_max() -> None:
assert parsed.reasoning_enabled_params == {"reasoning": "high"}
def test_model_reasoning_policy_defaults_to_medium_without_explicit_effort() -> None:
payload = v3_payload()
provider = next(item for item in payload["providers"] if item["adapter_id"] == "openai")
model = provider["models"][0]
model["capabilities"]["thinking"] = True
# 不设置 reasoning_policy.default_effort → 兜底应为 medium
config = EvoModelConfig.parse(payload, require_evidence=False)
parsed = config.providers[provider["provider_id"]].models[model["model_key"]]
assert parsed.supports_reasoning is True
assert parsed.reasoning_enabled_params == {"reasoning": "medium"}
def test_generic_openai_compatible_adapter_supports_standard_model_discovery() -> None:
registration = get_adapter_registry().get(
"generic-openai-compatible", "generic-openai-compatible-v1"