mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-07-09 22:43:44 +08:00
feat(agent): 优化Agent流式输出与工具消息发送逻辑
- 新增 _should_stream() 方法,根据运行环境决定是否启用流式输出: 后台模式不启用;渠道支持编辑启用;啰嗦模式开启时也启用 - 非流式模式下使用非流式LLM + ainvoke,避免不必要的流式开销 - 非啰嗦模式下工具调用时不发送任何中间消息(agent文字和工具提示),直接清掉缓冲区
This commit is contained in:
@@ -72,22 +72,27 @@ class MoviePilotTool(BaseTool, metaclass=ABCMeta):
|
||||
# 非VERBOSE,重置缓冲区从头更新,保持消息编辑能力
|
||||
self._stream_handler.reset()
|
||||
else:
|
||||
# 后台模式(无渠道信息)不发送工具调用消息
|
||||
# 非流式模式(后台任务或渠道不支持消息编辑)
|
||||
if self._channel:
|
||||
# 非流式渠道:保持原有行为,取出 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)
|
||||
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()
|
||||
|
||||
logger.debug(f"Executing tool {self.name} with args: {kwargs}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user