似乎这样做并没有正确地为代理添加内存:
from langchain.prompts import MessagesPlaceholder
from langchain.memory import ConversationBufferMemory
llm = OpenAI(temperature=0)
agent_kwargs = {
"extra_prompt_messages": [MessagesPlaceholder(variable_name="memory")],
}
memory = ConversationBufferMemory(memory_key="memory", return_messages=True)
agent = initialize_agent(
tools=tools,
llm=llm,
agent=AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION, memory=memory, agent_kwargs=agent_kwargs, verbose=True
)
在我的第二个请求中,它正在执行完全不同的 gmail 查询。知道为什么吗?
我希望我的代理人至少有短期记忆
在 STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION 代理中添加内存的文档
from langchain.prompts import MessagesPlaceholder
from langchain.memory import ConversationBufferMemory
chat_history = MessagesPlaceholder(variable_name="chat_history")
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
agent_chain = initialize_agent(
tools,
llm,
agent=AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION,
verbose=True,
memory=memory,
agent_kwargs = {
"memory_prompts": [chat_history],
"input_variables": ["input", "agent_scratchpad", "chat_history"]
}
)
response = await agent_chain.arun(input="Hi I'm Erica.")
print(response)