From 2dadf2e42bb4652c549e01c6a2d01c6a6def5ce0 Mon Sep 17 00:00:00 2001 From: Henry Heng Date: Fri, 26 Jul 2024 00:46:54 +0100 Subject: [PATCH] Bugfix/undefined returned by agent for lowercase (#2885) fix undefined returned by agent for lowercase --- packages/components/src/agents.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/components/src/agents.ts b/packages/components/src/agents.ts index c09e03c66..f464a6742 100644 --- a/packages/components/src/agents.ts +++ b/packages/components/src/agents.ts @@ -339,7 +339,7 @@ export class AgentExecutor extends BaseChain { } async _call(inputs: ChainValues, runManager?: CallbackManagerForChainRun): Promise { - const toolsByName = Object.fromEntries(this.tools.map((t) => [t.name.toLowerCase(), t])) + const toolsByName = Object.fromEntries(this.tools.map((t) => [t.name?.toLowerCase(), t])) const steps: AgentStep[] = [] let iterations = 0 @@ -608,7 +608,7 @@ export class AgentExecutor extends BaseChain { async _getToolReturn(nextStepOutput: AgentStep): Promise { const { action, observation } = nextStepOutput - const nameToolMap = Object.fromEntries(this.tools.map((t) => [t.name.toLowerCase(), t])) + const nameToolMap = Object.fromEntries(this.tools.map((t) => [t.name?.toLowerCase(), t])) const [returnValueKey = 'output'] = this.agent.returnValues // Invalid tools won't be in the map, so we return False. if (action.tool in nameToolMap) {