mirror of
https://github.com/AstrBotDevs/AstrBot
synced 2026-07-18 18:10:37 +08:00
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user