Closed KeenanFernandes2000 closed 5 months ago
The error you're encountering is due to the system expecting an input variable named agent_scratchpad
in your prompt template, but it was not found. The agent_scratchpad
variable is crucial within the LangChain JS framework, especially for the ChatAgent
class, as it serves as a placeholder for the agent's previous steps or work in a conversation. This inclusion helps provide context or a summary of the agent's previous interactions.
To resolve this issue, you should ensure that agent_scratchpad
is included as one of the input variables in your prompt template. Here's how you can adjust your ChatPromptTemplate
to include agent_scratchpad
:
const template = ChatPromptTemplate.fromMessages([
["system", "You are an AI assistant with access to an agent_scratchpad"],
new MessagesPlaceholder("agent_scratchpad"), // Ensure this placeholder is defined and included
["human", "What can you tell me today?"],
]);
// When formatting messages, include the 'agent_scratchpad' variable with its value
const messages = await template.formatMessages({
agent_scratchpad: [new SystemMessage("Here's what I found for you...")], // Example content for agent_scratchpad
});
In this example, agent_scratchpad
is explicitly included as a MessagesPlaceholder
in the ChatPromptTemplate
. When formatting messages with formatMessages
, it's essential to provide a value for agent_scratchpad
, ensuring it's in the expected format.
If you're using agent_scratchpad
in a different context within LangChain JS or if your implementation differs, the key is to ensure that agent_scratchpad
is correctly defined as an input variable and provided with the expected value when formatting messages.
Should you have any further questions or require additional clarification, feel free to ask.
Just patched this in @langchain/core@0.1.53
! Thank you
Checked other resources
Example Code
Error Message and Stack Trace (if applicable)
Error occurred: Error: Prompt must have an input variable named "agent_scratchpad". Found [] instead. at createOpenAIFunctionsAgent (file:///C:/Users/Keenan/Desktop/Work/PotentialLive/node_modules/langchain/dist/agents/openai_functions/index.js:219:15) at valid (file:///C:/Users/Keenan/Desktop/Work/PotentialLive/index.js:483:23) at file:///C:/Users/Keenan/Desktop/Work/PotentialLive/app/chat.js:82:37 at Layer.handle [as handle_request] (C:\Users\Keenan\Desktop\Work\PotentialLive\node_modules\express\lib\router\layer.js:95:5) at next (C:\Users\Keenan\Desktop\Work\PotentialLive\node_modules\express\lib\router\route.js:144:13) at Route.dispatch (C:\Users\Keenan\Desktop\Work\PotentialLive\node_modules\express\lib\router\route.js:114:3) at Layer.handle [as handle_request] (C:\Users\Keenan\Desktop\Work\PotentialLive\node_modules\express\lib\router\layer.js:95:5) at C:\Users\Keenan\Desktop\Work\PotentialLive\node_modules\express\lib\router\index.js:284:15 at Function.process_params (C:\Users\Keenan\Desktop\Work\PotentialLive\node_modules\express\lib\router\index.js:346:12) at next (C:\Users\Keenan\Desktop\Work\PotentialLive\node_modules\express\lib\router\index.js:280:10)
Description
The chatprompttemplate should work as I have copied the exact flow and code for creating an agent.
System Info
Node.js v18.18.0 platform windows