Live multi-step research agent: plans sub-queries, searches the web with Tavily, writes cited answers, critiques its own drafts, recalls past reports via semantic memory, and waits for human approval. 100 tests in CI.
Single-shot LLM answers to research questions are often shallow, uncited, and miss parts of the question. They also forget earlier work and give people no chance to check results before they are final. The goal was an agent that breaks a question down, gathers live sources, cites them, finds and fills its own gaps, reuses relevant past research, and keeps a human in control.
Built and deployed a multi-step agentic RAG system with LangGraph and Gemini. - Planning: splits each question into focused sub-queries. - Retrieval: live web search with Tavily for every sub-query. - Generation: writes a synthesised answer with citations to the retrieved sources. - Self-critique: a bounded critique loop finds gaps in the draft and triggers further searches, with a hard limit so it cannot loop forever. - Semantic memory: past reports are embedded with gemini-embedding-001 (3072-dim) into a SQLite vector store; the top 3 matches above a 0.80 cosine cutoff feed the planner. - Control: checkpointing for pause and resume, plus human approval before any report is finalised. - Quality: 100 automated tests in CI; live demo with a Streamlit interface.
- Every answer is grounded in cited, live web sources rather than model memory alone. - The bounded self-critique loop automatically finds and fills gaps before a human sees the draft. - Memory cutoff set from measurement rather than guesswork: unrelated questions scored about 0.70 cosine similarity, so a 0.80 cutoff recalls genuinely related past reports without pulling in noise. - Human approval and checkpointing keep a person in control of every final report. - 100 automated tests run in CI; the agent is live and publicly accessible.
100 automated tests in CI; memory recall threshold calibrated from measured similarity (unrelated questions ~0.70 vs 0.80 cutoff); every final report requires human approval before release; every answer source-cited.