How abhipal76/autonomous_research_agent works
This is a single-file Streamlit research assistant. A user submits a question through the chat UI; the agent executor coordinates Gemini reasoning with live search and optional page scraping, then the UI cleans and displays the response while retaining chat messages in session state. The README also highlights source citations, which the prompt directs the agent to include. All implementation paths are main.py; the graph reflects the sampled source and documented capabilities.
Main entry points: main.py Streamlit chat UI
Components 14
Chat interface
- Streamlit chat UI
main.py - Chat history
main.py
Research workflow
- Agent executor
main.py - Tool-calling agent
main.py - Research prompt
main.py - Gemini model
main.py
Web sources
- Web search tool
main.py - DuckDuckGo
- Page scraper
main.py - WebBaseLoader
main.py - Web pages
Response handling
- Output cleaner
main.py - Cited report
main.py
Other components
- Research user
Connections 15
- Research user → Streamlit chat UI: submits query
- Streamlit chat UI → Agent executor: invokes research
- Streamlit chat UI → Chat history: reads and writes
- Agent executor → Tool-calling agent: runs agent
- Tool-calling agent → Research prompt: uses instructions
- Tool-calling agent → Gemini model: requests reasoning
- Agent executor → Web search tool: dispatches search
- Web search tool → DuckDuckGo: searches web
- Agent executor → Page scraper: dispatches scraping
- Page scraper → WebBaseLoader: loads page
- WebBaseLoader → Web pages: fetches content
- Agent executor → Streamlit chat UI: returns response
- Streamlit chat UI → Output cleaner: cleans output
- Output cleaner → Cited report: produces text
- Streamlit chat UI → Research user: displays report