A full-stack web application that conducts comprehensive research using multiple specialized AI agents to gather, analyze, and synthesize information from diverse sources into coherent reports.
This application combines a React-based frontend with a Python backend to provide an intelligent research assistant powered by AWS Bedrock. The system employs a multi-agent architecture with specialized agents for research, analysis, and report writing. It features real-time progress tracking, adaptive search strategies, and streaming report generation.
The application supports configurable research depth, multiple search engines, and generates comprehensive reports with source citations. It includes features like language detection, search summaries preservation, and a responsive UI that provides clear visibility into the research process.
.
├── backend/ # Python backend application
│ ├── src/agent/ # Core agent implementation
│ │ ├── tools/ # Specialized agent tools (search, language, research)
│ │ └── utils/ # Utility functions and language detection
│ └── run_backend.[sh|bat] # Platform-specific backend startup scripts
├── frontend/ # React frontend application
│ ├── src/ # Frontend source code
│ │ ├── components/ # React components including UI elements
│ │ ├── hooks/ # Custom React hooks for research agent
│ │ └── lib/ # Utility functions and helpers
│ └── public/ # Static assets
├── docs/ # Documentation and infrastructure diagrams
└── Dockerfile # Multi-stage build for containerization
- Python 3.11 or higher
- Node.js 20.x or higher
- AWS account with Bedrock access
- AWS credentials configured
- Docker (optional, for containerized deployment)
# Clone the repository
git clone https://github.com/superyhee/strands-deepsearch-agent
cd strands-deepsearch-agent
# macOS/Linux
cd backend
./run_backend.sh
# Windows
cd backend
run_backend.bat
cd frontend
npm install
npm run dev
docker build -t research-assistant .
docker run -p 8000:8000 research-assistant
- Access the application at
http://localhost:3000
- Enter your research query in the input field
- Choose search engine preference
- Submit and monitor research progress
- Backend Connection Failed
# Check if backend is running
curl http://localhost:8001/health
# Verify environment variables
cat backend/.env
- Search Results Not Appearing
- Verify AWS credentials are configured
- Check Tavily API key if using Tavily search
- Review backend logs for search errors
- Frontend Development Server Issues
# Clear npm cache
npm cache clean --force
npm install
The application implements a multi-stage research process with specialized agents handling different aspects of information gathering and processing.
[User Input] -> [Research Agent]
|
v
[Web Search] <-> [Data Collection]
|
v
[Analysis Agent] -> [Verification]
|
v
[Writer Agent] -> [Final Report]
Key Component Interactions:
- Research Agent initiates web searches and collects raw data
- Analysis Agent verifies and synthesizes collected information
- Writer Agent generates structured reports
- Frontend streams progress updates and results
- Backend manages agent coordination and data flow