diff --git a/src/core/agent.ts b/src/core/agent.ts index 9535217..c2b236e 100644 --- a/src/core/agent.ts +++ b/src/core/agent.ts @@ -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(); diff --git a/src/lsp/client.ts b/src/lsp/client.ts index e1d2fb9..2bfdbdc 100644 --- a/src/lsp/client.ts +++ b/src/lsp/client.ts @@ -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; } }