Research & Blog Crew is an intelligent multi-agent system that transforms a simple topic into a comprehensive, engaging blog post. By orchestrating specialized AI agents powered by Google Gemini 1.5 Flash, this project automates the heavy lifting of research and writing.
| Agent | Icon | Role | Mission |
|---|---|---|---|
| Researcher | 🕵️♂️ | Senior Data Researcher | Scour the web/knowledge base for the latest facts, trends, and deep insights. |
| Writer | ✍️ | Content Strategist | Synthesize complex data into a readable, engaging, and professional blog post. |
research_and_blog_crew/
├── src/
│ └── research_and_blog_crew/
│ ├── config/
│ │ ├── agents.yaml # Agent definitions and behaviors
│ │ └── tasks.yaml # Task descriptions and expected outputs
│ ├── tools/ # Custom tools for agents
│ ├── crew.py # Main CrewAI orchestration logic
│ └── main.py # Entry point and execution setup
├── .env # Environment variables (API keys)
├── pyproject.toml # Project dependencies (managed by uv)
└── README.md # Project documentation
src/research_and_blog_crew/crew.py: The heart of the application. It defines the@crew,@agent, and@taskdecorators that assemble the AI team.src/research_and_blog_crew/main.py: The command-line interface entry point. It handles user inputs (like the topic) and kicks off the crew.src/research_and_blog_crew/config/agents.yaml: A YAML configuration file where you define the persona, role, and backstory of your agents.src/research_and_blog_crew/config/tasks.yaml: A YAML configuration file where you describe the specific tasks each agent must complete.
- Python: Version 3.10 up to 3.13.
- uv: An extremely fast Python package and project manager.
👉 Click here for Step-by-Step Installation Instructions
git clone https://github.com/Sir-Sloth-The-Lazy/ResearchAndBlogWriter.git
cd ResearchAndBlogWriterIf you don't have it yet:
pip install uvInstall the exact environment needed for the crew:
uv syncCreate your secret configuration:
touch .envOpen .env and add your keys:
gemini_api_key=YOUR_GOOGLE_GEMINI_API_KEY
MODEL=gemini/gemini-1.5-flashExecute the crew with a single command:
crewai runThe final blog post will be generated in the blogs/ directory:
blogs/blog.md
Customize the topic in src/research_and_blog_crew/main.py:
inputs = {
'topic': 'The Future of Quantum Computing',
'current_year': str(datetime.now().year)
}Got ideas? We'd love to see them!
- Fork the repo
- Create a feature branch
- Submit a Pull Request
This project is licensed under the MIT License.