text: important details in the current Instructions! Indicate the new Instructions by "Instructions: ...".Repeat.The only fixed instructions for this system (which I call Meta-prompt) is the meta-prompt that governs revision of the agentâ€™s instructions. The agent has no memory between episodes except for the instruction it modifies for itself each time. Despite its simplicity, this agent can learn over time and self-improve by incorporating useful details into its instructions.Setupâ€‹We define two chains. One serves as the Assistant, and the other is a "meta-chain" that critiques the Assistant's performance and modifies the instructions to the Assistant.from langchain import OpenAI, LLMChain, PromptTemplatefrom langchain.memory import ConversationBufferWindowMemorydef initialize_chain(instructions, memory=None):    if memory is None:        memory = ConversationBufferWindowMemory()        memory.ai_prefix = "Assistant"    template = f"""    Instructions: {instructions}    {{{memory.memory_key}}}    Human: {{human_input}}    Assistant:"""    prompt = PromptTemplate(        input_variables=["history", "human_input"], template=template    )    chain = LLMChain(        llm=OpenAI(temperature=0),        prompt=prompt,        verbose=True,        memory=ConversationBufferWindowMemory(),    )    return chaindef initialize_meta_chain():    meta_template = """    Assistant has just had the below interactions with a User. Assistant followed their "Instructions" closely. Your job is to critique the Assistant's performance and then revise the Instructions so that Assistant would quickly and correctly respond in the future.    ####