From 5ab2d63de8b066a6ca09df2d23f3aae502f40e42 Mon Sep 17 00:00:00 2001 From: Henry Date: Fri, 29 Dec 2023 13:29:24 +0000 Subject: [PATCH 1/2] only submitting tool outputs when requiresaction --- .../components/nodes/agents/OpenAIAssistant/OpenAIAssistant.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/components/nodes/agents/OpenAIAssistant/OpenAIAssistant.ts b/packages/components/nodes/agents/OpenAIAssistant/OpenAIAssistant.ts index 1f9d4eab1..85d35ea9b 100644 --- a/packages/components/nodes/agents/OpenAIAssistant/OpenAIAssistant.ts +++ b/packages/components/nodes/agents/OpenAIAssistant/OpenAIAssistant.ts @@ -324,7 +324,7 @@ class OpenAIAssistant_Agents implements INode { const newRun = await openai.beta.threads.runs.retrieve(threadId, runId) const newStatus = newRun?.status - if (submitToolOutputs.length && newStatus !== 'in_progress') { + if (submitToolOutputs.length && newStatus === 'requires_action') { await openai.beta.threads.runs.submitToolOutputs(threadId, runId, { tool_outputs: submitToolOutputs }) From 8eabd8f0c26e060c7651b02c3166a52fd2ed6f66 Mon Sep 17 00:00:00 2001 From: Henry Date: Fri, 29 Dec 2023 13:50:33 +0000 Subject: [PATCH 2/2] wrap in a try catch block --- .../agents/OpenAIAssistant/OpenAIAssistant.ts | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/packages/components/nodes/agents/OpenAIAssistant/OpenAIAssistant.ts b/packages/components/nodes/agents/OpenAIAssistant/OpenAIAssistant.ts index 85d35ea9b..cf69022ba 100644 --- a/packages/components/nodes/agents/OpenAIAssistant/OpenAIAssistant.ts +++ b/packages/components/nodes/agents/OpenAIAssistant/OpenAIAssistant.ts @@ -324,14 +324,19 @@ class OpenAIAssistant_Agents implements INode { const newRun = await openai.beta.threads.runs.retrieve(threadId, runId) const newStatus = newRun?.status - if (submitToolOutputs.length && newStatus === 'requires_action') { - await openai.beta.threads.runs.submitToolOutputs(threadId, runId, { - tool_outputs: submitToolOutputs - }) - resolve(state) - } else { - await openai.beta.threads.runs.cancel(threadId, runId) - resolve('requires_action_retry') + try { + if (submitToolOutputs.length && newStatus === 'requires_action') { + await openai.beta.threads.runs.submitToolOutputs(threadId, runId, { + tool_outputs: submitToolOutputs + }) + resolve(state) + } else { + await openai.beta.threads.runs.cancel(threadId, runId) + resolve('requires_action_retry') + } + } catch (e) { + clearInterval(timeout) + reject(new Error(`Error submitting tool outputs: ${state}, Thread ID: ${threadId}, Run ID: ${runId}`)) } } } else if (state === 'cancelled' || state === 'expired' || state === 'failed') {