implementing agentic rag using langchain