错误信息: error_during_execution: Process failed after 0 turns 堆栈信息: AI_ProviderSpec...
错误信息
错误名称: AI_ProviderSpecificError
错误信息: error_during_execution: Process failed after 0 turns
堆栈信息: AI_ProviderSpecificError: error_during_execution: Process failed after 0 turns
at AiSdkToChunkAdapter.convertAndEmitChunk (file:///C:/Users/ZhangEnfan/AppData/Local/Programs/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-DmY8nbl4.js:349460:64)
at AiSdkToChunkAdapter.readFullStream (file:///C:/Users/ZhangEnfan/AppData/Local/Programs/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-DmY8nbl4.js:349251:10)
at async AiSdkToChunkAdapter.processStream (file:///C:/Users/ZhangEnfan/AppData/Local/Programs/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-DmY8nbl4.js:349213:31)
at async fetchAndProcessAgentResponseImpl (file:///C:/Users/ZhangEnfan/AppData/Local/Programs/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-DmY8nbl4.js:168067:3)
at async file:///C:/Users/ZhangEnfan/AppData/Local/Programs/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-DmY8nbl4.js:168254:5
at async file:///C:/Users/ZhangEnfan/AppData/Local/Programs/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-DmY8nbl4.js:143162:21
错误原因: {
"message": "error_during_execution: Process failed after 0 turns"
}
AI 解决方案
##报错分析
1. 错误翻译
原文:error_during_execution: Process failed after 0 turns
译文:执行过程中出错:进程在0轮后失败
2.原因分析
AiSdkToChunkAdapter流转换链(convertAndEmitChunk→readFullStream→processStream),上下文为异步获取代理响应时的流读取失败。3.解决方案
// 修复思路:添加重试机制+错误捕获(适配原异步流场景)
async function safeFetchAIResponse(url, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
const res = await fetch(url);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
// 模拟原AiSdkToChunkAdapter的流处理(替换为实际逻辑)
const reader = res.body.getReader();
while (true) {
const { done, value } = await reader.read();
if (done) break;
// 此处插入原convertAndEmitChunk的chunk处理逻辑
}
return; // 成功则退出
} catch (err) {
if (i === maxRetries - 1) throw err; // 最后一次重试失败抛出
await new Promise(resolve => setTimeout(resolve, 1000 * 2 ** i)); // 指数退避
}
}
}
// 调用处替换原fetchAndProcessAgentResponseImpl的异步逻辑
try {
await safeFetchAIResponse('your-ai-provider-endpoint');
} catch (finalErr) {
console.error('AI响应最终失败:', finalErr);
}
4. 预防措施
AbortController设置10s超时)+指数退避重试(最多3次),应对瞬时故障。 axios(内置超时/重试配置)或p-retry(简化重试逻辑)替代原生fetch。