diff --git a/README.md b/README.md index a0d29e38..5120fa7d 100644 --- a/README.md +++ b/README.md @@ -206,7 +206,7 @@ cow install-browser "agent_max_context_tokens": 50000, # Agent 模式下最大上下文 tokens,超出将自动智能压缩处理 "agent_max_context_turns": 20, # Agent 模式下最大上下文记忆轮次,一问一答为一轮,超出后智能压缩处理 "agent_max_steps": 20, # Agent 模式下单次任务的最大决策步数,超出后将停止继续调用工具 - "enable_thinking": true # 是否启用深度思考,开启后 Web 端展示模型推理过程,关闭后可加速响应 + "enable_thinking": false # 是否启用深度思考,开启后 Web 端展示模型推理过程,关闭后可加速响应 } ``` diff --git a/agent/protocol/agent_stream.py b/agent/protocol/agent_stream.py index 39a28c15..dd830457 100644 --- a/agent/protocol/agent_stream.py +++ b/agent/protocol/agent_stream.py @@ -81,20 +81,26 @@ class AgentStreamExecutor: def _is_thinking_enabled(self) -> bool: from config import conf channel_type = getattr(self.model, 'channel_type', '') or '' - return conf().get("enable_thinking", True) and channel_type == 'web' + return conf().get("enable_thinking", False) and channel_type == 'web' def _filter_think_tags(self, text: str) -> str: """ - Remove and tags but keep the content inside. - Some LLM providers (e.g., MiniMax) may return thinking process wrapped in tags. - We only remove the tags themselves, keeping the actual thinking content. + Handle ... blocks in content returned by some LLM providers + (e.g., MiniMax). + + - When thinking is enabled: remove the tags but keep the content inside. + - When thinking is disabled: remove both the tags and the content entirely. """ if not text: return text import re - # Remove only the and tags, keep the content - text = re.sub(r'', '', text) - text = re.sub(r'', '', text) + if self._is_thinking_enabled(): + text = re.sub(r'', '', text) + text = re.sub(r'', '', text) + else: + text = re.sub(r'[\s\S]*?', '', text) + # Also strip unclosed tag at the end (streaming partial) + text = re.sub(r'[\s\S]*$', '', text) return text def _hash_args(self, args: dict) -> str: diff --git a/bridge/agent_bridge.py b/bridge/agent_bridge.py index 4b178bee..8f6f6316 100644 --- a/bridge/agent_bridge.py +++ b/bridge/agent_bridge.py @@ -169,7 +169,7 @@ class AgentLLMModel(LLMModel): # Determine thinking: respect global config, then channel_type from config import conf - global_thinking = conf().get("enable_thinking", True) + global_thinking = conf().get("enable_thinking", False) if not global_thinking: kwargs['thinking'] = {"type": "disabled"} else: @@ -222,7 +222,7 @@ class AgentLLMModel(LLMModel): # Determine thinking: respect global config, then channel_type from config import conf - global_thinking = conf().get("enable_thinking", True) + global_thinking = conf().get("enable_thinking", False) if not global_thinking: kwargs['thinking'] = {"type": "disabled"} else: diff --git a/channel/web/chat.html b/channel/web/chat.html index 25065316..0326482d 100644 --- a/channel/web/chat.html +++ b/channel/web/chat.html @@ -552,7 +552,7 @@