Weekend Project: Personal Research Assistant
Notebook: week1_foundations/project_research_agent.ipynb
Project Overview
Build a research assistant that can:
- 🔍 Search the web for information
- 📊 Synthesize findings from multiple sources
- 📝 Generate structured reports with citations
- 💾 Export to JSON and Markdown
Architecture
Output Schema
The agent generates structured reports using Pydantic:
class ResearchReport(BaseModel):
topic: str
summary: str
key_findings: List[str]
sources: List[Source]
generated_at: strProject Goals
Information Gathering
Use Tavily to search the web for relevant information on any topic.
Multi-Source Synthesis
Combine information from multiple sources into coherent findings.
Structured Output
Generate reports in a consistent, parseable format with full citations.
Export Capabilities
Save reports as both JSON (for programmatic use) and Markdown (for reading).
Example Usage
# Create agent
agent = ResearchAgent(model="gpt-4o-mini")
# Research a topic
report = agent.research("Latest developments in AI agents 2024")
# Display formatted report
print(agent.format_report(report))
# Save to files
save_report(report, "ai_agents_research")Sample Output
# Research Report: Latest developments in AI agents 2024
Generated: 2024-01-15T10:30:00
## Summary
AI agents have seen remarkable progress in 2024, with major
advances in multi-agent collaboration, tool use, and...
## Key Findings
1. Multi-agent systems are becoming standard for complex tasks
2. RAG integration significantly improves accuracy
3. Production deployment patterns are maturing
...
## Sources
- [AI Agents Survey 2024](https://example.com/survey)
> "The landscape of AI agents has transformed..."
- [LangChain Blog](https://blog.langchain.dev/)
> "New patterns for agent orchestration..."Skills Applied
This project combines everything from Week 1:
| Concept | Application |
|---|---|
| ReAct Pattern | Agent reasoning loop |
| Function Calling | Structured tool invocation |
| Pydantic | Report schema definition |
| Tavily | Real web search |
Challenges
Try extending the project with these challenges:
- Compare Topics - Research multiple topics and compare findings
- Add Caching - Don't re-search the same queries
- PDF Export - Generate PDF reports
- Interactive Mode - Allow follow-up questions
What's Next?
In Week 2, we'll enhance our agents with:
- RAG for better context
- Memory for conversation history
- LangGraph for complex workflows
Run the Project
conda activate sotaaz
jupyter notebook ../week1_foundations/project_research_agent.ipynb