fix(agent): 简化非流式模式下工具调用的消息处理逻辑

非流式模式下使用 ainvoke 执行,无流式 token 产出,
不需要操作 stream_handler 或发送中间消息
This commit is contained in:
jxxghp
2026-04-09 22:20:09 +08:00
parent 770065d9ed
commit d5ed9bc654

View File

@@ -72,27 +72,9 @@ class MoviePilotTool(BaseTool, metaclass=ABCMeta):
# 非VERBOSE重置缓冲区从头更新保持消息编辑能力
self._stream_handler.reset()
else:
# 非流式模式(后台任务或渠道不支持消息编辑)
if self._channel:
if settings.AI_AGENT_VERBOSE:
# 啰嗦模式:取出 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}")
if messages:
merged_message = "\n\n".join(messages)
await self.send_tool_message(merged_message)
else:
# 非啰嗦模式:不发送中间消息,清掉缓冲区
if self._stream_handler:
await self._stream_handler.take()
# 非流式模式(后台任务或渠道不支持消息编辑且啰嗦模式关闭
# 此时使用 ainvoke 执行,无流式 token 产出,不发送任何中间消息
pass
logger.debug(f"Executing tool {self.name} with args: {kwargs}")