AGENTS / GITHUB / AI-Agents.News_Reader_Agent
githubinferredactive

AI-Agents.News_Reader_Agent

provenance:github:Ugee0810/AI-Agents.News_Reader_Agent
WHAT THIS AGENT DOES

This AI agent automatically gathers news articles about topics you specify. It searches the web for relevant information, then distills those articles into concise summaries at different levels of detail – from quick headlines to more in-depth reports. This solves the problem of information overload, saving time and effort for busy professionals who need to stay informed. Business leaders, researchers, or anyone needing a regular briefing on a particular subject would find this agent valuable. What sets it apart is its ability to combine web searching, content extraction, and sophisticated summarization into a single, automated process.

View Source ↗First seen 6mo agoNot yet hireable
README
# 📰 News Reader AI Agent 🚀

[![Python 3.13+](https://img.shields.io/badge/python-3.13+-blue.svg)](https://www.python.org/downloads/)
[![CrewAI](https://img.shields.io/badge/Framework-CrewAI-red.svg)](https://www.crewai.com/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

A powerful multi-agent system built with **CrewAI** that automates the process of discovering, summarizing, and curating daily news reports on specific topics.

---

## 🔄 Workflow

The system employs a sequential multi-agent orchestration to transform a simple topic into a professional news briefing.

```mermaid
graph TD
    %% Styling Definitions
    classDef agent node font-weight:bold
    classDef hunter fill:#f9f,stroke:#333,stroke-width:2px,color:#000
    classDef summarizer fill:#bbf,stroke:#333,stroke-width:2px,color:#000
    classDef curator fill:#dfd,stroke:#333,stroke-width:2px,color:#000
    classDef file fill:#fff,stroke:#333,stroke-dasharray: 5 5,color:#000

    Start((Input: Topic)) --> Hunter

    subgraph "Phase 1: Discovery"
        Hunter[news_hunter_agent]:::hunter -->|SerperDev & Scrape| ContentHarvest[(content_harvest.md)]:::file
    end

    ContentHarvest --> Summarizer

    subgraph "Phase 2: Analysis"
        Summarizer[summarizer_agent]:::summarizer -->|Multi-tier Summarization| Summary[(summary.md)]:::file
    end

    Summary --> Curator

    subgraph "Phase 3: Editorial"
        Curator[curator_agent]:::curator -->|Final Assembly| FinalReport[(final_report.md)]:::file
    end

    FinalReport --> End((Final News Briefing))

    %% Additional styling
    style Start fill:#f5f5f5,stroke:#333
    style End fill:#f5f5f5,stroke:#333
```

---

## 🌟 Key Features

- **Multi-Agent Orchestration**: Specialized agents for high-quality news delivery.
- **Automated Web Search**: Uses **SerperDev** to find the most relevant and credible news articles.
- **Intelligent Web Scraping**: High-performance scraping using **Playwright** and **BeautifulSoup** to extract clean content from article pages.
- **Hierarchical Summarization**: Generates multi-tier summaries (Headline, Executive, and Comprehensive) for different reader needs.
- **Publication-Ready Reports**: Assembles a professional final report in Markdown format.

---

## 🏗️ Architecture

### 🤖 Agents

1.  **Senior News Intelligence Specialist (`news_hunter_agent`)**:
    *   **Goal**: Discover and collect relevant, credible news articles.
    *   **Tools**: `SerperDevTool`, `scrape_tool`.
2.  **Expert News Analyst (`summarizer_agent`)**:
    *   **Goal**: Transform raw articles into clear, multi-level summaries.
    *   **Tools**: `scrape_tool`.
3.  **Senior News Editor (`curator_agent`)**:
    *   **Goal**: Curate summaries into a cohesive, professional narrative.

### 📋 Tasks

- **Content Harvesting**: Searching for articles, filtering by credibility/relevance, and extracting full text.
- **Multi-Tier Summarization**: Creating tweet-style headlines, executive summaries, and detailed analysis.
- **Final Report Assembly**: Combining all work into a premium daily briefing.

---

## 📁 Project Structure

```text
.
├── config/
│   ├── agents.yaml      # Agent roles and backstories
│   └── tasks.yaml       # Task definitions and process flow
├── output/              # Generated markdown reports
├── .env                 # Environment variables (API Keys)
├── main.py              # Entry point & CrewAI orchestration
├── tools.py             # Custom scraping & search tools
└── pyproject.toml       # Project dependencies & metadata
```

---

## 🛠️ Setup & Installation

### Prerequisites

- **Python**: 3.13 or higher.
- **uv**: A fast Python package manager (recommended).
- **Playwright**: For web scraping (will be installed automatically via dependencies).

### 1. Clone the repository

```bash
git clone <repository-url>
cd AI-Agents.News_Reader_Agent
```

### 2. Install dependencies

Using `uv`:

```bash
uv sync
```

### 3. Environment variables

Copy the example environment file and fill in your API keys:

```bash
cp .env.example .env
```

Fill in the following:

- `OPENAI_API_KEY`: Your OpenAI API key (for models like `o4-mini-2025-04-16`).
- `SERPER_API_KEY`: Your Serper.dev API key for web search.

### 4. Install Playwright browsers

```bash
uv run playwright install chromium
```

---

## 🚀 Usage

Run the agent simply by executing:

```bash
uv run python main.py
```

By default, the agent searches for **"Trends of Korea-Japan couples"**. You can modify the input topic in `main.py`:

```python
result = NewsReaderAgent().crew().kickoff(inputs={"topic": "Your Topic Here"})
```

---

## 📈 Output

Generated reports are saved in the `output/` directory:

- `content_harvest.md`: Raw collected articles and metadata.
- `summary.md`: Multi-tier summaries for each article.
- `final_report.md`: The curated, publication-ready news briefing.

---

## 🧰 Tech Stack

- **Framework**: [CrewAI](https://www.crewai.com/)
- **LLM**: OpenAI (o4-mini-2025-04-16)
- **Search**: [Serper.dev](https://serper.dev/)
- **Scraping**: [Playwright](https://playwright.dev/python/), [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/)
- **Project Management**: [uv](https://github.com/astral-sh/uv)

---

PUBLIC HISTORY

First discoveredMar 21, 2026

IDENTITY

inferred

Identity inferred from code signals. No PROVENANCE.yml found.

Is this yours? Claim it →

METADATA

platformgithub
first seenOct 15, 2025
last updatedMar 18, 2026
last crawled13 days ago
version

README BADGE

Add to your README:

![Provenance](https://getprovenance.dev/api/badge?id=provenance:github:Ugee0810/AI-Agents.News_Reader_Agent)