缺陷 / 高 / 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 引用。
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 引用。