From bfea0174dd23ebe33c0e1eda9e758a473f8dfb19 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sat, 28 Mar 2026 22:38:20 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E6=B6=88=E6=81=AF=E5=8F=91=E9=80=81=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/agent/tools/base.py | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/app/agent/tools/base.py b/app/agent/tools/base.py index 791b33b6..3cee990c 100644 --- a/app/agent/tools/base.py +++ b/app/agent/tools/base.py @@ -44,8 +44,6 @@ class MoviePilotTool(BaseTool, metaclass=ABCMeta): 3. 调用具体工具逻辑(子类实现的 execute 方法) 4. 持久化工具结果到会话记忆 """ - # 判断是否为后台任务模式(无渠道信息,如定时唤醒) - is_background = not self._channel and not self._source # 获取工具执行提示消息 tool_message = self.get_tool_message(**kwargs) @@ -54,27 +52,30 @@ class MoviePilotTool(BaseTool, metaclass=ABCMeta): if explanation: tool_message = explanation - if not is_background and settings.AI_AGENT_VERBOSE: - # 非后台模式:发送工具执行过程消息 - if self._stream_handler and self._stream_handler.is_streaming: - # 流式渠道:工具消息直接追加到 buffer 中,与 Agent 文字合并为同一条流式消息 + # 发送工具执行过程消息 + if self._stream_handler and self._stream_handler.is_streaming: + if settings.AI_AGENT_VERBOSE: + # VERBOSE:工具消息直接追加到 buffer 中,与 Agent 文字合并为同一条流式消息 if tool_message: self._stream_handler.emit(f"\n\n⚙️ => {tool_message}\n\n") else: - # 非流式渠道:保持原有行为,取出 Agent 文字 + 工具消息合并独立发送 - agent_message = ( - await self._stream_handler.take() if self._stream_handler else "" - ) + # 非VERBOSE,不输出最后结果前的消息 + self._stream_handler.clear() + else: + # 非流式渠道:保持原有行为,取出 Agent 文字 + 工具消息合并独立发送 + agent_message = ( + await self._stream_handler.take() if self._stream_handler else "" + ) - messages = [] - if agent_message: - messages.append(agent_message) - if tool_message: - messages.append(f"⚙️ => {tool_message}") + messages = [] + if agent_message: + messages.append(agent_message) + if tool_message: + messages.append(f"⚙️ => {tool_message}") - if messages: - merged_message = "\n\n".join(messages) - await self.send_tool_message(merged_message) + if messages: + merged_message = "\n\n".join(messages) + await self.send_tool_message(merged_message) logger.debug(f"Executing tool {self.name} with args: {kwargs}")