Browse Source

fix(chat-engine): strengthen memory instruction to prevent redundant tool calls

LLM was still calling document read/list despite memory being in context.
Use explicit prohibition: '禁止调用 document 工具的 read 或 list 操作来读取这些记忆'
and clarify that memory is always current, only use tool for create/modify.

Co-authored-by: CodeFree <codefree@chinatelcom.cn>
feat/agent-independence
npmrun 2 months ago
parent
commit
10688bee3b
  1. 2
      server/service/agent/chat-engine.ts

2
server/service/agent/chat-engine.ts

@ -252,7 +252,7 @@ export async function executeChat(params: ChatEngineParams): Promise<ChatEngineR
const memoryContext = await getMemoryContext(user.id);
if (memoryContext) {
const memoryInstruction =
"\n\n以下 <memory> 标签内是你的持久记忆,已注入上下文。回答问题时优先参考这些记忆,不要重复调用 document 工具读取已有记忆。";
"\n\n# 持久记忆(已注入上下文)\n以下 <memory> 标签内的信息是你的持久记忆,每次对话开始时自动加载,始终是最新的。\n**禁止调用 document 工具的 read 或 list 操作来读取这些记忆** — 它们已经在你的上下文中了。\n直接使用 <memory> 中的内容回答用户问题即可。\n只有需要创建新记忆或修改已有记忆时,才使用 document 工具。";
systemPrompt = systemPrompt
? `${systemPrompt}${memoryInstruction}\n${memoryContext}`
: `${memoryInstruction}\n${memoryContext}`;

Loading…
Cancel
Save