I'm encountering a KeyError: 'agent' when initializing an AgentExecutor object in my Python script. Here's the traceback:, is there any way i could fix this:
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
File c:\Users\WORK\OneDrive\Documents\drug_order_chatbot\drug_bot.py:1
----> 1 agent_executor = AgentExecutor(agent=agents,
2 tools=image,
3 memory=memory,
4 verbose=True)
File c:\Users\WORK\OneDrive\Documents\drug_order_chatbot\venv\lib\site- packages\langchain\load\serializable.py:97, in Serializable.__init__(self, **kwargs)
96 def __init__(self, **kwargs: Any) -> None:
---> 97 super().__init__(**kwargs)
98 self._lc_kwargs = kwargs
File c:\Users\WORK\OneDrive\Documents\drug_order_chatbot\venv\lib\site-packages\pydantic\main.py:339, in pydantic.main.BaseModel.__init__()
File c:\Users\WORK\OneDrive\Documents\drug_order_chatbot\venv\lib\site-packages\pydantic\main.py:1102, in pydantic.main.validate_model()
File c:\Users\WORK\OneDrive\Documents\drug_order_chatbot\venv\lib\site-packages\langchain\agents\agent.py:881, in AgentExecutor.validate_tools(cls, values)
878 @root_validator()
879 def validate_tools(cls, values: Dict) -> Dict:
880 """Validate that tools are compatible with agent."""
--> 881 agent = values["agent"]
882 tools = values["tools"]
883 allowed_tools = agent.get_allowed_tools()
KeyError: 'agent'
see part of my code here:
llm = ChatVertexAI(model_name='gemini-pro')
memory= ConversationBufferMemory(
memory_key='chat_history',output_key='output',return_messages=True)
# /// chat prompt
chat_prompt = ChatPromptTemplate(input_variables=['agent_scratchpad','chat_history','message'],
messages=[
HumanMessagePromptTemplate(
prompt=PromptTemplate(
input_variables=[],
template= (
'''You are a powerful and convincing salesperson '''),
),
),
MessagesPlaceholder(variable_name='chat_history'),
HumanMessagePromptTemplate(
prompt=PromptTemplate(
input_variables=['message'],
template='{message}'
),
),
MessagesPlaceholder(variable_name='agent_scratchpad')
],)
# /// Building converstional agent
chat_bot_with_tools = llm.bind(functions=[image])
agents = (
{
'message': lambda x : x['message'],
'chat_history': lambda x:x['chat_history'],
'agent_scratchpad': lambda x: format_to_openai_function_messages(x['intermediate_steps'])
}
| chat_prompt
| chat_bot_with_tools
| PydanticFunctionsOutputParser(pydantic_schema={
image.name: image.args_schema
})
)
agent_executor = AgentExecutor(agent=agents,
tools=image,
memory=memory,
verbose=True)