- name
- ai-newsletter-daily
- description
- >
- version
- 1.0.0
- author
- Jeff Yang (https://github.com/j3ffyang)
- license
- MIT
- platforms
- [linux, macos, windows]
- metadata
- hermes
- tags
- [AI, News, Newsletter]
- requires_toolsets
- [web]
- requires_tools
- [web_search, web_fetch]
- required_environment_variables
- prompt
- Enter your BRAVE API key
- help
- Required for web search
- required_for
- Web search
- prompt
- Enter your Firecrawl API key
- help
- Required for web fetching
- required_for
- Web fetching
AI Newsletter Daily
When to Use
Use for current AI/ML news, releases, research, funding, product launches, model updates, regulation, benchmarks, or practitioner-relevant developments.
Do not use for evergreen explainers, non-AI topics, or long-form research that is not meant to become a curated newsletter.
Procedure
- Resolve inputs.
- Defaults: target_news_count=20, search_query="latest AI news today", search_time_window_days=2, max_search_results=60, min_articles_required=10, include_domains=[], exclude_domains=["youtube.com","reddit.com","facebook.com","x.com","twitter.com"], summary_model="host-default", max_scrape_retries=2. - Clamp: target_news_count 1..50, search_time_window_days 1..14, max_search_results 20..120, min_articles_required 1..50, max_scrape_retries 0..5. - If min_articles_required > target_news_count, set it to target_news_count.
- Search and filter.
- Run web_search with search_query. - If no usable results, retry once with "{search_query} generative AI LLM model open source enterprise". - Keep only results with non-empty title and URL. - Canonicalize URLs, drop duplicates, apply domain filters, and prefer fresh results.
- Rank.
- Score 0..100 from AI-topic relevance, freshness, and title/snippet quality. - Sort by score desc, published date desc, URL asc. - Keep top target_news_count * 2 candidates.
- Fetch, verify, summarize.
- Process candidates in order until target_news_count verified items are collected. - Skip already processed canonical URLs. - Fetch each candidate up to max_scrape_retries + 1 times with web_fetch. - Verify title, domain, topic, and date against the search result. - Skip inconsistent pages and record a warning. - Summarize each accepted article in one plain-text paragraph, max ~80 words, focused on why it matters to AI practitioners.
- Fallback.
- If collected items are fewer than min_articles_required, run one fallback search with "AI news today machine learning model release funding research". - Process only new candidates and repeat the same filter/rank/fetch/verify/summarize flow.
- Finalize.
- Keep only valid items with non-empty title, url, domain, summary, source_query, and numeric relevance_score. - Remove duplicates by canonical URL. - Sort by score desc, then published date desc. - Truncate to target_news_count. - Return newsletter_items, markdown_newsletter, and json_newsletter.
Verification
Accept items only if:
- URL is valid and canonicalized.
- Search result and fetched page broadly match.
- Topic is actually AI/news relevant.
- Published date is present or safely unknown.
- Fetched content is not malformed or off-topic.
Record warnings for failed URLs, short reasons, and whether fallback search was used.
Output Format
markdown_newsletter:
- H1 title with date.
- One H2 per article.
- One short summary paragraph per article.
- One source link per article.
json_newsletter:
datequerycountarticleswarnings
Language Output
Return the newsletter body and all article summaries in Simplified Chinese. Preserve all source metadata unchanged (title, url, domain, published_at, relevance_score, source_query).