From ca8a68261fe898b9e482c820e527309bb9937496 Mon Sep 17 00:00:00 2001 From: hex2077 Date: Tue, 23 Dec 2025 15:21:37 +0800 Subject: [PATCH] =?UTF-8?q?fix(claude-kiro):=20=E7=A1=AE=E4=BF=9D=E5=8E=86?= =?UTF-8?q?=E5=8F=B2=E6=B6=88=E6=81=AF=E4=BB=A5assistantResponseMessage?= =?UTF-8?q?=E7=BB=93=E5=B0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 当历史消息最后一条是用户消息时,添加空的assistantResponseMessage以满足Kiro API要求 默认存在configs目录,用于docker挂载 --- configs/0 | 0 src/claude/claude-kiro.js | 15 +++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 configs/0 diff --git a/configs/0 b/configs/0 new file mode 100644 index 0000000..e69de29 diff --git a/src/claude/claude-kiro.js b/src/claude/claude-kiro.js index 1fb5070..33cf855 100644 --- a/src/claude/claude-kiro.js +++ b/src/claude/claude-kiro.js @@ -780,6 +780,21 @@ async initializeAuth(forceRefresh = false) { // 设置 currentContent 为 "Continue",因为我们需要一个 user 消息来触发 AI 继续 currentContent = 'Continue'; } else { + // 最后一条消息是 user,需要确保 history 最后一个元素是 assistantResponseMessage + // Kiro API 要求 history 必须以 assistantResponseMessage 结尾 + if (history.length > 0) { + const lastHistoryItem = history[history.length - 1]; + if (!lastHistoryItem.assistantResponseMessage) { + // 最后一个不是 assistantResponseMessage,需要补全一个空的 + console.log('[Kiro] History does not end with assistantResponseMessage, adding empty one'); + history.push({ + assistantResponseMessage: { + content: 'Continue' + } + }); + } + } + // 处理 user 消息 if (Array.isArray(currentMessage.content)) { for (const part of currentMessage.content) {