NewsPulse AI is an autonomous, self-correcting multi-agent research and newsletter system. It profiles the user, retrieves fresh news, summarizes and verifies content, generates a beautiful HTML newsletter, evaluates quality with an LLM loop, learns from feedback, and continuously adapts over time.
Built using Google ADKβs LLM-powered multi-agent orchestration framework.
Project Name: NewsPulse AI Agent
Platform: Google ADK (LLM-powered multi-agent orchestrator)
Team:
Shuai Tan β Product Manager
Andy Zhang β Developer
Vivien Li β Developer
Adelie Yang β Developer
Executives and AI professionals are overwhelmed with information noise. They receive hundreds of generic alerts each day, yet:
-
Can't filter signal from noise
-
Lack personalized, domain-aware summaries
-
Face hallucination risks with most generative AI tools
-
Lose productivity searching for relevant insights
They need a personalized, accurate, and timely intelligence brief that is always verified.
Goal: Deliver the most relevant, timely, and trustworthy AI/ML news β with zero hallucinations.
Solution: NewsPulse is a multi-agent analyst with:
-
Sequential + loop agent patterns
-
Self-evaluation / self-correction
-
Personalized planning
-
Memory-enhanced learning
-
Fact verification
-
Email delivery with feedback adaptation
Value Proposition
β Personalized content β Fully citation-verified β AI-generated HTML newsletter β Learns from feedback β Low latency end-to-end
KPI Target
- Relevance β₯80% match to user interests
- Accuracy & Safety 100% citation-backed news
- Latency < 4 minutes total
- Satisfaction β₯80% positive feedback
Marketing Director: Wants daily competitor insights aligned with strategic focus.
CFO: Wants clear, factual regulatory & financial summaries.
Developer: Wants a personalized newsletter remembering their own keywords.
The system uses sequential and loop agent patterns.
Below merges both the PRD pipeline + your AI_Newsletter workflow.
Input: user self-description + email + request
Function: LLM interprets interests, technical level, preferred tone (casual vs technical), preferred length, detailed request for a newsletter
Output: user profile JSON
Slightly modify the user's requests to prevent stagnation and introduce related, novel concepts for current search.
Output: modified user profile JSON
Input: user profile + todayβs date
Decides:
- which topics to search
- which sources to pull from
- max number of articles
- newsletter outline
Function: Fetch new articles
Output: title, url, summary, published_time, uuid
- Fetch web page based on url from search agent
For each article:
- Extract key points
- Condense technical content into the correct level for this user
Input: user profile + summarized content Output: A fully drafted HTML newsletter:
- Title
- Section headers
- Summaries
- Tone adapted to user preferences
Checks the draft by comparing the summary against the related full text web page for:
- Tone correctness
- Accuracy of summaries
- If inaccurate, modified version
If bad β returns feedback + rewrite prompt β WriterAgent rewrites β Evaluator re-checks This forms a loop agent pattern.
Uses an email-sending API (OpenAPI tool) to send HTML newsletters. Logs:
- send time
- message_id
- delivery status
Parses user replies or click tracking:
- updates user profile preferences
- updates interest weights
This forms a continuous improvement loop driven by user behavior.
AI_Newsletter_Project/
βββ .DS_Store
βββ .gitignore
βββ Dockerfile
βββ pyproject.toml
βββ requirements.txt
βββ readme.md
βββ readme_deployment_gcp.md
βββ readme_setup_email_service.md
βββ AI_Newsletter/
βββ __init__.py
βββ agent.py
βββ logger_config.py
βββ newsletter_agents.py
βββ prompt.py
βββ schema.py
βββ utility.py
βββ vectors.py
-
Create virtual env uv venv --python 3.12 --seed source .venv/bin/activate
-
Install project uv pip install .
-
Add your API key to .env.
-
Run: uv run adk web
-
Open browser: http://localhost:8000
Select:
β AI_Newsletter (root agent) β Run full agent workflow interactively
-
Activate env: source .venv/bin/activate
-
Install (if not done): uv pip install .
-
Run FastAPI: uvicorn AI_Newsletter.main:app --reload
-
Open: β‘οΈ http://127.0.0.1:8000
Please find:
-
readme_setup_email_service.md
-
readme_deployment_gcp.md
-
Supports deployment to GCP Cloud Run.
{ "VerificationOutput": [ { "sentence": "The latest AI advancements are democratizing coding...", "uuid": "short_blurb", "accuracy_or_not": true, "modified_version": "The latest AI advancements...", "justification": "Statement accurately reflects referenced content..." } ] }
β Sequential agents
β Loop agent pattern (Writer β Verifier)
β Tools (Search, Crawler, Email Sender, Feedback Parser)
β Long-term memory (SQLite + ChromaDB)
β LLM Judge (VerificationAgent)
β Structured A2A messaging
A fully personalized AI/ML newsletter generator using sequential, parallel, and loop agents, retrieval tools, long-term memory, structured A2A messaging, and LLM-based evaluation to generate, verify, and deliver daily intelligence briefs.
