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.
This commit is contained in:
EmilyCheoh
2026-05-22 20:32:29 +08:00
committed by GitHub
parent 1e48bab514
commit f5bd4f30e5

View File

@@ -816,8 +816,9 @@ class ToolLoopAgentRunner(BaseAgentRunner[TContext]):
# 如果有工具调用,还需处理工具调用
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 @@ class ToolLoopAgentRunner(BaseAgentRunner[TContext]):
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