diff --git a/astrbot/core/agent/runners/tool_loop_agent_runner.py b/astrbot/core/agent/runners/tool_loop_agent_runner.py index 1b9f5a5929..2da36fda2b 100644 --- a/astrbot/core/agent/runners/tool_loop_agent_runner.py +++ b/astrbot/core/agent/runners/tool_loop_agent_runner.py @@ -816,8 +816,9 @@ async def step(self): # 如果有工具调用,还需处理工具调用 if llm_resp.tools_call_name: if self.tool_schema_mode == "skills_like": - llm_resp, _ = await self._resolve_tool_exec(llm_resp) - if not llm_resp.tools_call_name: + requery_resp, _ = await self._resolve_tool_exec(llm_resp) + if not requery_resp.tools_call_name: + llm_resp = requery_resp logger.warning( "skills_like tool re-query returned no tool calls; fallback to assistant response." ) @@ -845,6 +846,10 @@ async def step(self): await self._complete_with_assistant_response(llm_resp) return + else: + llm_resp.tools_call_name = requery_resp.tools_call_name + llm_resp.tools_call_args = requery_resp.tools_call_args + llm_resp.tools_call_ids = requery_resp.tools_call_ids tool_call_result_blocks = [] cached_images = [] # Collect cached images for LLM visibility