๐ง DevPulseAI โ Multi-Agent Signal Intelligence โ
A reference implementation demonstrating how to build a multi-agent pipeline that aggregates technical signals from multiple sources, scores them for relevance, assesses risks, and synthesizes an actionable intelligence digest.
Design Philosophy: Agents are used only where reasoning is required. Deterministic operations (collection, normalization, deduplication) are implemented as plain utilities โ not agents.
Architecture โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ DATA SOURCES โ
โ GitHub ยท ArXiv ยท HackerNews ยท Medium ยท HuggingFace โ
โโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ raw signals
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SignalCollector (UTILITY โ no LLM) โ
โ โข Normalizes to unified schema โ
โ โข Deduplicates via source:id composite key โ
โ โข Filters incomplete signals โ
โโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ normalized signals
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ RelevanceAgent (AGENT โ gpt-4.1-mini) โ
โ โข Scores each signal 0โ100 for developer relevance โ
โ โข Considers: novelty, impact, actionability, timeliness โ
โ โข Falls back to heuristics if no API key โ
โโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ scored signals
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ RiskAgent (AGENT โ gpt-4.1-mini) โ
โ โข Assesses security vulnerabilities โ
โ โข Flags breaking changes and deprecations โ
โ โข Rates risk: LOW / MEDIUM / HIGH / CRITICAL โ
โโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ risk-assessed signals
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SynthesisAgent (AGENT โ gpt-4.1) โ
โ โข Cross-references relevance + risk data โ
โ โข Produces executive summary โ
โ โข Generates actionable recommendations โ
โโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
๐ Intelligence DigestWhy Signal Collection Is Not an Agent โ
This is an intentional, opinionated design choice โ not a shortcut.
Signal collection involves:
- Fetching data from HTTP APIs (deterministic)
- Normalizing fields to a unified schema (mechanical transformation)
- Deduplicating by composite key (hash comparison)
None of these tasks require reasoning, judgment, or language understanding.
Wrapping collection in an Agent class would be decorative โ it would have an LLM import that never gets called. This misleads readers into thinking an LLM is necessary, when the actual logic is a for loop with a set().
Rule of thumb: If you can write the logic as a pure function with no ambiguity, it's a utility. If the output depends on understanding context, making judgment calls, or generating natural language, it's an agent.
Agent Roles & Model Selection โ
| Component | Type | Model | Why This Model |
|---|---|---|---|
SignalCollector | Utility | none | Deterministic โ no reasoning required |
RelevanceAgent | Agent | gpt-4.1-mini | Classification task โ fast, cheap, high-volume |
RiskAgent | Agent | gpt-4.1-mini | Structured analysis โ careful but not expensive |
SynthesisAgent | Agent | gpt-4.1 | Cross-referencing & summarization โ needs strongest reasoning |
Single provider by default (OpenAI) to reduce onboarding friction. Override per-agent via environment variables:
export MODEL_RELEVANCE=gpt-4.1-nano # cheaper, faster
export MODEL_RISK=o4-mini # deeper reasoning for risk
export MODEL_SYNTHESIS=gpt-4.1 # default, strongestHow to Run โ
Quick Verification (No API Key Required) โ
cd advanced_ai_agents/multi_agent_apps/devpulse_ai
python verify.pyThis runs the full pipeline with mock data in <1 second. No network calls, no API keys.
Expected output:
[OK] DevPulseAI reference pipeline executed successfullyFull Pipeline (With API Key) โ
pip install -r requirements.txt
export OPENAI_API_KEY=sk-...
python main.pyWithout an API key, agents automatically fall back to heuristic scoring.
Streamlit Dashboard โ
streamlit run streamlit_app.pyProject Structure โ
devpulse_ai/
โโโ agents/
โ โโโ __init__.py # Package exports + design docs
โ โโโ signal_collector.py # UTILITY โ normalize & dedup
โ โโโ relevance_agent.py # AGENT โ score relevance (gpt-4.1-mini)
โ โโโ risk_agent.py # AGENT โ assess risks (gpt-4.1-mini)
โ โโโ synthesis_agent.py # AGENT โ produce digest (gpt-4.1)
โโโ adapters/
โ โโโ github.py # GitHub trending repos
โ โโโ arxiv.py # ArXiv recent papers
โ โโโ hackernews.py # HackerNews top stories
โ โโโ medium.py # Medium AI/ML blogs
โ โโโ huggingface.py # HuggingFace trending models
โโโ workflows/
โ โโโ signal-intelligence-pipeline.json
โโโ main.py # Full pipeline runner
โโโ verify.py # Mock-data verification (<1s)
โโโ streamlit_app.py # Interactive dashboard
โโโ requirements.txt # Minimal deps (single provider)Optional Extensions (Advanced Users) โ
These are not required for the reference implementation, but show how the architecture extends:
Multi-provider models โ Swap
RelevanceAgentto use Anthropic Claude or Google Gemini by updating the model config. Theagnoframework supports multiple providers.Vector search โ Add a Pinecone or Qdrant adapter to store and retrieve signals semantically for long-term pattern detection.
Streaming digests โ Use WebSocket streaming from
SynthesisAgentfor real-time intelligence feeds.Custom adapters โ Add new signal sources by implementing a
fetch_*function that returnsList[Dict]with the standard schema (id,source,title,description,url,metadata).Feedback loop โ Store user feedback (๐/๐) in Supabase and use it to fine-tune relevance scoring over time.
Dependencies โ
agno # Agent framework
openai # LLM provider (single default)
httpx # HTTP client for adapters
feedparser # RSS/Atom parsing for Medium
streamlit>=1.30 # Interactive dashboardNo google-generativeai required. Gemini is an optional extension if users want multi-provider support โ install google-genai (not the deprecated google-generativeai) separately.
Design Tradeoffs โ
| Decision | Tradeoff | Why |
|---|---|---|
| Single provider default | Less flexibility | Reduces onboarding from 2+ keys to 1 |
| Signal collection as utility | Less "agentic" demo | Honest architecture โ agents where reasoning exists |
| Heuristic fallbacks | Lower quality without API key | Pipeline always works, even for evaluation |
| 5 signals per source default | Less data | Keeps demo fast (<10s with API, <1s mock) |
| No async in agents | Less throughput | Simpler code, clearer educational value |
Built as a reference implementation for awesome-llm-apps.