diff --git a/docs/latest/changelog/roadmap.md b/docs/latest/changelog/roadmap.md index 3b305cf3..f9f8d28b 100644 --- a/docs/latest/changelog/roadmap.md +++ b/docs/latest/changelog/roadmap.md @@ -17,7 +17,6 @@ ### Bugs - 部分异常状态下,智能体的模型名称出现重叠[#279](https://github.com/xerrors/Yuxi-Know/issues/279) - DeepSeek 官方接口适配会出现问题 -- 当前版本如果调用结果为空的时候,工具调用状态会一直处于调用状态,尽管调用是成功的 - 目前的知识库的图片存在公开访问风险 ### 新增 @@ -33,6 +32,7 @@ ### 修复 - 修复重排序模型实际未生效的问题 - 修复消息中断后消息消失的问题,并改善异常效果 +- 修复当前版本如果调用结果为空的时候,工具调用状态会一直处于调用状态,尽管调用是成功的 ## v0.3 diff --git a/server/routers/chat_router.py b/server/routers/chat_router.py index 7759f51b..24ecc964 100644 --- a/server/routers/chat_router.py +++ b/server/routers/chat_router.py @@ -863,10 +863,11 @@ async def get_agent_history( { "id": str(tc.id), "name": tc.tool_name, - "function": {"name": tc.tool_name}, # Frontend compatibility + "function": {"name": tc.tool_name}, "args": tc.tool_input or {}, - "tool_call_result": {"content": tc.tool_output} if tc.tool_output else None, + "tool_call_result": {"content": (tc.tool_output or "")} if tc.status == "success" else None, "status": tc.status, + "error_message": tc.error_message, } for tc in msg.tool_calls ] diff --git a/web/src/components/AgentMessageComponent.vue b/web/src/components/AgentMessageComponent.vue index d046323b..42adc209 100644 --- a/web/src/components/AgentMessageComponent.vue +++ b/web/src/components/AgentMessageComponent.vue @@ -43,14 +43,18 @@
- + +   工具 {{ getToolNameByToolCall(toolCall) }} 执行完成 + + +   工具 {{ getToolNameByToolCall(toolCall) }} 执行失败 + ({{ toolCall.error_message }}) + +   正在调用工具: {{ getToolNameByToolCall(toolCall) }} - -   工具 {{ getToolNameByToolCall(toolCall) }} 执行完成 -
diff --git a/web/src/utils/chatExporter.js b/web/src/utils/chatExporter.js index b1574183..20e2d1cd 100644 --- a/web/src/utils/chatExporter.js +++ b/web/src/utils/chatExporter.js @@ -242,7 +242,7 @@ export class ChatExporter { const argsSource = toolCall?.args ?? toolCall?.function?.arguments; const args = this.stringifyToolArgs(argsSource); const result = this.normalizeToolResult(toolCall?.tool_call_result?.content); - const isFinished = Boolean(toolCall?.tool_call_result); + const isFinished = toolCall?.status === 'success'; const stateClass = isFinished ? 'done' : 'pending'; const stateLabel = isFinished ? '已完成' : '执行中';