Skip to content

Commit f5bd4f3

Browse files
authored
fix: preserve original completion_text in skills_like tool re-query (#8240)
Only overwrite tool-call-related fields from the re-query response, preserving the original completion_text and reasoning_content that were already sent to the user.
1 parent 1e48bab commit f5bd4f3

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

astrbot/core/agent/runners/tool_loop_agent_runner.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -816,8 +816,9 @@ async def step(self):
816816
# 如果有工具调用,还需处理工具调用
817817
if llm_resp.tools_call_name:
818818
if self.tool_schema_mode == "skills_like":
819-
llm_resp, _ = await self._resolve_tool_exec(llm_resp)
820-
if not llm_resp.tools_call_name:
819+
requery_resp, _ = await self._resolve_tool_exec(llm_resp)
820+
if not requery_resp.tools_call_name:
821+
llm_resp = requery_resp
821822
logger.warning(
822823
"skills_like tool re-query returned no tool calls; fallback to assistant response."
823824
)
@@ -845,6 +846,10 @@ async def step(self):
845846

846847
await self._complete_with_assistant_response(llm_resp)
847848
return
849+
else:
850+
llm_resp.tools_call_name = requery_resp.tools_call_name
851+
llm_resp.tools_call_args = requery_resp.tools_call_args
852+
llm_resp.tools_call_ids = requery_resp.tools_call_ids
848853

849854
tool_call_result_blocks = []
850855
cached_images = [] # Collect cached images for LLM visibility

0 commit comments

Comments
 (0)