async def arespond_to_query(self, query: str) -> str:
        """Respond to a query.

        This is the main method.

        Args:
            query: The query to respond to.
        """

        # Run the agents on the same input. These perform the same steps as this
        # app.

        for agent in self.agents:
            await agent.ainvoke(query)

        # Get rerankined, process chunks.
        chunks = await self.aget_context(query)

        # Do some remembering.
        await self.memory.aremember(query)

        # Do some generation.
        summary = await self.llm.agenerate(
            ",".join(filter(lambda c: len(c) < 128, chunks))
        )

        # Do some templating.
        answer_prompt = self.template.fill(question=query, context=summary)

        # Another llm call to "get the final answer".
        answer = await self.llm.agenerate(answer_prompt)

        # Do some more remembering.
        await self.memory.aremember(answer)

        return answer
Respond to a query.

        This is the main method.

        Args:
            query: The query to respond to.
        
examples/dev/dummy_app/app.py