diff --git a/backend/src/services/conversationService.ts b/backend/src/services/conversationService.ts index 0daa5862..0a0940eb 100644 --- a/backend/src/services/conversationService.ts +++ b/backend/src/services/conversationService.ts @@ -157,12 +157,27 @@ export class ConversationService { // 反转顺序(最早的在前) historyMessages.reverse(); - // 渲染用户Prompt模板 - const renderedUserPrompt = agentService.renderUserPrompt(agentId, { - projectBackground, - userInput, - knowledgeBaseContext, - }); + // 判断是否是第一条消息 + const isFirstMessage = historyMessages.length === 0; + + // 渲染用户Prompt + let userPromptContent: string; + + if (isFirstMessage) { + // 第一条消息:使用完整模板(包含项目背景) + userPromptContent = agentService.renderUserPrompt(agentId, { + projectBackground, + userInput, + knowledgeBaseContext, + }); + } else { + // 后续消息:只发送用户输入和知识库上下文(如果有) + if (knowledgeBaseContext) { + userPromptContent = `${userInput}\n\n## 参考文献(来自知识库)\n${knowledgeBaseContext}`; + } else { + userPromptContent = userInput; + } + } // 组装消息数组 const messages: Message[] = [ @@ -183,7 +198,7 @@ export class ConversationService { // 添加当前用户输入 messages.push({ role: 'user', - content: renderedUserPrompt, + content: userPromptContent, }); return messages;