From 28105692ac7c8496c0d14b71eef932b7f2fa0db4 Mon Sep 17 00:00:00 2001 From: thzxx Date: Wed, 24 Jun 2026 22:54:58 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=A1=AC=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E9=80=9A=E7=94=A8=E5=8C=96=20=E2=80=94=20memory/session=5Fread?= =?UTF-8?q?/session=5Flist/spawn=5Ftask=E5=85=A8=E9=83=A8=E8=A6=86?= =?UTF-8?q?=E7=9B=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/services/agent-engine.ts | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/renderer/services/agent-engine.ts b/src/renderer/services/agent-engine.ts index 25708b9..46781e2 100644 --- a/src/renderer/services/agent-engine.ts +++ b/src/renderer/services/agent-engine.ts @@ -1420,14 +1420,17 @@ async function handleExecuting( role: 'tool', tool_name: record.name, content: formatToolResultForModel(record.name, record.result!) }); - // ── 关键工具结果加硬提示,防止模型忽略实际数据去用系统提示词编造 ── - if (record.name === 'memory' && record.status === 'success') { - const action = (record.result as any)?.action; - if (action === 'read_all' || action === 'search') { - ctx.messages.push({ - role: 'system', - content: `⚠️ 以上 tool 消息中的内容是 memory 工具返回的实际记忆数据。你必须严格基于这些数据回答用户,不要编造、不要忽略、不要把系统提示词里的 SOUL/AGENT 内容当成记忆列出来。如果上面显示"记忆为空"才说没有。`, - }); + // ── 读数据类工具结果加硬提示,防止模型忽略实际数据去用系统提示词编造 ── + if (record.status === 'success') { + const nudges: Record = { + memory: '以上 tool 消息是 memory 工具返回的实际记忆数据。严格基于这些数据回答,不要把系统提示词里的内容当成记忆列出来。', + session_read: '以上 tool 消息是 session_read 返回的实际历史会话内容。严格基于这些数据回答,不要编造。', + session_list: '以上 tool 消息是 session_list 返回的实际会话列表。严格基于这些数据回答,不要编造。', + spawn_task: '以上 tool 消息是 spawn_task 子代理返回的实际执行结果。严格基于这些数据回答,不要编造。', + }; + const nudge = nudges[record.name]; + if (nudge) { + ctx.messages.push({ role: 'system', content: `⚠️ ${nudge}` }); } } if (cacheKey) toolResultCache.set(cacheKey, { result: record.result!, timestamp: Date.now() });