缺陷 / 高 / LLM 适配器
electron/harness/adapters/agnes-ai.adapter.ts
Agnes Adapter 使用独立的 multimodalIndex 数组跟踪图片:
multimodalIndex
const multimodalIndex: number[] = []; messages.forEach((msg, i) => { if (msg.images && msg.images.length > 0) { multimodalIndex.push(i); // 处理图片... } });
但 Agnes API 要求 multimodal index 必须对应其在最终请求 messages 数组中的位置。 当存在 system 消息时:
[user(with image), assistant, user(with image)]
[system, user(image), assistant, user(image)]
[1, 3]
[0, 2]
const finalMessages: any[] = []; if (systemPrompt) { finalMessages.push({ role: 'system', content: systemPrompt }); } const multimodalIndices: number[] = []; messages.forEach((msg) => { const finalIndex = finalMessages.length; if (msg.images && msg.images.length > 0) { multimodalIndices.push(finalIndex); } finalMessages.push(buildMessage(msg)); }); // 使用 finalMessages.length 计算 index,确保正确
或使用 inline image_url 格式而非 index 引用。
文件: electron/harness/adapters/agnes-ai.adapter.ts
结论: 工单描述的问题不存在(误报)。
当前代码不使用工单描述的 multimodalIndex 数组,而是使用 inline image_url 格式(content 数组中的 image_url 对象),不存在 index 引用。索引映射 messages[i] → nonSystemMsgs[i-1](i 从 1 开始跳过 system)是正确的,不存在错位。
image_url
messages[i]
nonSystemMsgs[i-1]
No dependencies set.
The note is not visible to the blocked user.
问题类型
缺陷 / 高 / LLM 适配器
文件位置
electron/harness/adapters/agnes-ai.adapter.ts问题描述
Agnes Adapter 使用独立的
multimodalIndex数组跟踪图片:但 Agnes API 要求 multimodal index 必须对应其在最终请求 messages 数组中的位置。
当存在 system 消息时:
[user(with image), assistant, user(with image)][system, user(image), assistant, user(image)][1, 3],但代码计算为[0, 2]影响
建议修复
或使用 inline image_url 格式而非 index 引用。
修复说明
文件:
electron/harness/adapters/agnes-ai.adapter.ts结论: 工单描述的问题不存在(误报)。
当前代码不使用工单描述的
multimodalIndex数组,而是使用 inlineimage_url格式(content 数组中的image_url对象),不存在 index 引用。索引映射messages[i]→nonSystemMsgs[i-1](i 从 1 开始跳过 system)是正确的,不存在错位。