From 7b1505343db725d955e9638351790e9888f066bb Mon Sep 17 00:00:00 2001 From: thzxx Date: Wed, 24 Jun 2026 22:27:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20dedup=E6=8B=A6=E6=88=AA=E5=90=8E?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E5=8D=A1=E7=89=87=E5=8D=A1=E5=9C=A8=E5=87=86?= =?UTF-8?q?=E5=A4=87=E4=B8=AD=20=E2=80=94=20=E8=A1=A5=E8=B0=83onToolCallEr?= =?UTF-8?q?ror=E6=B8=85=E7=90=86=E5=8D=A1=E7=89=87=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/services/agent-engine.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/renderer/services/agent-engine.ts b/src/renderer/services/agent-engine.ts index 3609b04..0d0ed40 100644 --- a/src/renderer/services/agent-engine.ts +++ b/src/renderer/services/agent-engine.ts @@ -1240,6 +1240,10 @@ async function handleExecuting( .some(r => r.status !== 'success'); if (!hasFailedInPrev) { logWarn('检测到连续两轮工具调用完全相同且全部成功,注入提醒而非终止'); + // ── 取消工具卡片:卡片已在 THINKING 阶段设为 pending,这里需要收尾 ── + for (const call of ctx.toolCalls) { + callbacks.onToolCallError(call.function.name, '系统跳过(与上一轮完全相同)', call); + } ctx.messages.push({ role: 'user', content: '⚠️ 检测到你连续调用了与上一轮完全相同的工具。请基于已有结果给出最终回答,或者调用不同的工具获取新信息。如果任务已完成,请给出最终回答。'