fix: 修复会话历史丢失工具调用和 LSP 启动错误输出
- 保存完整的响应消息(包括工具调用和结果)到会话历史 - LSP 服务器未安装时静默忽略,不输出错误信息
This commit is contained in:
+7
-7
@@ -171,6 +171,7 @@ export class Agent {
|
||||
|
||||
const vercelTools = this.getVercelTools();
|
||||
let fullResponse = '';
|
||||
let responseMessages: ModelMessage[] = [];
|
||||
|
||||
if (onStream) {
|
||||
// 流式模式
|
||||
@@ -208,8 +209,9 @@ export class Agent {
|
||||
onStream(chunk);
|
||||
}
|
||||
|
||||
// 等待完成
|
||||
await result.response;
|
||||
// 等待完成并获取完整的响应消息(包括工具调用和结果)
|
||||
const response = await result.response;
|
||||
responseMessages = response.messages as ModelMessage[];
|
||||
} else {
|
||||
// 非流式模式
|
||||
const result = await generateText({
|
||||
@@ -222,13 +224,11 @@ export class Agent {
|
||||
});
|
||||
|
||||
fullResponse = result.text;
|
||||
responseMessages = result.response.messages as ModelMessage[];
|
||||
}
|
||||
|
||||
// 保存助手响应到历史
|
||||
this.conversationHistory.push({
|
||||
role: 'assistant',
|
||||
content: fullResponse,
|
||||
});
|
||||
// 将完整的响应消息添加到历史(包括工具调用和结果)
|
||||
this.conversationHistory.push(...responseMessages);
|
||||
|
||||
// 持久化会话
|
||||
await this.persistSession();
|
||||
|
||||
+2
-2
@@ -86,8 +86,8 @@ export class LSPClientManager {
|
||||
const client = await this.startServer(languageId, config);
|
||||
this.clients.set(languageId, client);
|
||||
return client;
|
||||
} catch (error) {
|
||||
console.error(`启动语言服务器失败 (${languageId}):`, error);
|
||||
} catch {
|
||||
// 静默忽略启动失败(如语言服务器未安装)
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user