diff --git a/api/app/langchain/ChatAgent.js b/api/app/langchain/ChatAgent.js index b17c55ae7e..d784106256 100644 --- a/api/app/langchain/ChatAgent.js +++ b/api/app/langchain/ChatAgent.js @@ -53,7 +53,7 @@ class ChatAgent { if (actions[0]?.action && this.functionsAgent) { actions = actions.map((step) => ({ - log: `Action: ${step.action?.tool || ''}\nInput: ${step.action?.toolInput?.input || ''}\nObservation: ${step.observation}` + log: `Action: ${step.action?.tool || ''}\nInput: ${JSON.stringify(step.action?.toolInput) || ''}\nObservation: ${step.observation}` })); } else if (actions[0]?.action) { actions = actions.map((step) => ({ @@ -494,7 +494,7 @@ Only respond with your conversational reply to the following User Message: }; // initialize agent - const initializer = this.options.agentOptions?.agent === 'functions' ? initializeFunctionsAgent : initializeCustomAgent; + const initializer = this.functionsAgent ? initializeFunctionsAgent : initializeCustomAgent; this.executor = await initializer({ model, signal, diff --git a/api/server/routes/ask/handlers.js b/api/server/routes/ask/handlers.js index 925807e665..f415ac0d06 100644 --- a/api/server/routes/ask/handlers.js +++ b/api/server/routes/ask/handlers.js @@ -99,14 +99,14 @@ function formatSteps(steps) { for (let i = 0; i < steps.length; i++) { const step = steps[i]; - const actionInput = step.action.toolInput; + const actionInput = getString(step.action.toolInput); const observation = step.observation; if (actionInput === 'N/A' || observation?.trim()?.length === 0) { continue; } - output += `Input: ${actionInput?.input || actionInput}\nOutput: ${getString(observation)}`; + output += `Input: ${actionInput}\nOutput: ${getString(observation)}`; if (steps.length > 1 && i !== steps.length - 1) { output += '\n---\n'; @@ -131,7 +131,7 @@ function formatAction(action) { const formattedAction = { plugin: capitalizeWords(action.tool) || action.tool, - input: action.toolInput?.input || action.toolInput, + input: getString(action.toolInput), thought: action.log.includes('Thought: ') ? action.log.split('\n')[0].replace('Thought: ', '') : action.log.split('\n')[0]