Langchain agent keyerror: 'agent'

46 views Asked by At

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)
0

There are 0 answers