Skip to content

Conversation

@Mogbeyi
Copy link
Contributor

@Mogbeyi Mogbeyi commented Nov 7, 2025

Multimodal Agent News Summarizer

An AI-powered news summarization system that aggregates news from multiple RSS feeds, creates concise summaries using GPT-4o-mini, and generates audio briefings using MiniMax TTS. Built with a modular agent-based architecture following OpenAI Agents SDK patterns.

🚀 Features

  • Multi-Source News Aggregation: Concurrently fetches news from multiple RSS feeds across different topics (tech, world, business, politics, sports)
  • AI-Powered Summarization: Uses GPT-4o-mini to create engaging 300-word summaries optimized for

🧠 Multimodal Agent News Summarizer

An AI-powered system that aggregates news, summarizes using GPT-4o-mini, and creates audio briefings with MiniMax TTS.
Built with the official OpenAI Agents SDK for real autonomous decision-making.


🚀 Features

  • 🗞️ Multi-Source Aggregation – Fetches and merges RSS feeds from multiple topics
  • 🧠 AI Summarization – GPT-4o-mini produces concise (≈300 words) audio-optimized briefs
  • 🔊 Text-to-Speech – MiniMax TTS converts summaries to high-quality MP3
  • 🤖 Autonomous Agents – Agents decide when and how to use tools
  • Async/Await – Fully asynchronous for speed and scalability
  • 🎨 Modern Gradio UI – Simple blue-themed interface

🧩 Architecture

User → Orchestrator → Autonomous Agents
                ↓
   [1] News Aggregator → [2] Summarizer → [3] Audio Generator

Each agent independently chooses its tool:

🧩 Agent 🧰 Tool 🎯 Purpose
Aggregator aggregate_news(topic) Fetch & merge articles
Summarizer summarize_articles(json) Create engaging briefings
Audio Generator synthesize_speech(text) Generate MP3 audio

Orchestrator

Coordinates the workflow between all agents, ensuring smooth data flow from aggregation → summarization → audio generation.

Screenshot 2025-11-07 at 5 14 28 AM Screenshot 2025-11-07 at 4 45 59 AM

@Mogbeyi Mogbeyi changed the title Multimodal Agent News Summarizer GenAI-Week2-Multimodal Agent News Summarizer Nov 7, 2025
@ed-donner
Copy link
Owner

Eh? I'm pretty confused by this, I have to admit, @Mogbeyi . It seems like you've loosely wrapped a simple LLM call to Gemini in what appears to be an invented Agent and function_tool decorator (that doesn't seem to serve any purpose - no LLM tools are used?) and you say it's following their patterns? What was your intention with this?

@Mogbeyi
Copy link
Contributor Author

Mogbeyi commented Nov 9, 2025

Eh? I'm pretty confused by this, I have to admit, @Mogbeyi . It seems like you've loosely wrapped a simple LLM call to Gemini in what appears to be an invented Agent and function_tool decorator (that doesn't seem to serve any purpose - no LLM tools are used?) and you say it's following their patterns? What was your intention with this?

Hi @ed-donner. I see the issue you've pointed out. Thank you for the detailed feedback! I misunderstood the requirement and went off track.
I've now refactored the project to use real autonomous agent behavior. The agents now use OpenAI's function calling API to reason about tasks and decide which tools to use.

What changed:

  • Using the OpenAI Agents SDK (openai-agents package) with Agent, Runner, and function_tool
  • Agents use OpenAI GPT-4o-mini with native function calling capabilities
  • Real agent loop: LLM reasoning → autonomous tool selection → tool execution → result processing
  • @function_tool decorator from the SDK generates proper tool schemas for the LLM
  • Runner.run() orchestrates agent execution following the official SDK patterns
  • Orchestrator delegates tasks to agents rather than calling tools directly

m-nalborczyk pushed a commit to m-nalborczyk/agents that referenced this pull request Nov 13, 2025
…ns-branch

Added my Company Brochure exercise using ollama to community contributions version 1.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants