编程

ai-newsletter

试用

Generate a daily AI news newsletter from fresh web sources. Use when the user asks for a current AI digest, AI news roundup, curated newsletter, or daily AI...

它能做什么

Generate a concise daily AI newsletter from fresh web sources.

技能文档

AI Newsletter Daily

Generate a concise daily AI newsletter from fresh web sources.

Use this skill only 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 intended to become a curated newsletter.

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

Bounds:

  • 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.

Batch policy

  • Search up to max_search_results candidates.
  • Keep the top target_news_count * 2 candidates for fetch attempts.
  • Return only the top target_news_count verified items.
  • Do not summarize every search result.

Required outputs

Return:

  1. newsletter_items as a list of objects.
  2. markdown_newsletter as a string.
  3. json_newsletter as an object.

Each item must include:

  • title
  • url
  • domain
  • published_at
  • summary
  • relevance_score
  • source_query

Use "unknown" for missing published_at.

Workflow

  1. Resolve inputs.

    • Apply defaults and bounds.
    • Initialize warnings = [], seen_canonical_urls = set(), processed_urls = set().
  2. Search.

    • Run web_search with search_query.
    • If no usable results, retry once with:
      • "{search_query} generative AI LLM model open source enterprise"
    • If still no usable results, fail clearly.
  3. Normalize and filter.

    • Keep only results with non-empty title and URL.
    • Canonicalize URLs: lowercase host, remove tracking parameters, normalize safe trailing slashes.
    • Drop duplicates by canonical URL.
    • Apply include_domains and exclude_domains.
    • Prefer results likely within search_time_window_days.
    • Keep unknown dates, but score them lower.
  4. Rank.

    • Score each candidate from 0 to 100:
      • AI-topic relevance: 0..50
      • Freshness: 0..30
      • Title/snippet clarity: 0..20
    • Sort by:
      • relevance_score desc
      • published_at desc, unknown last
      • url asc
    • Keep the top target_news_count * 2 candidates.
  5. Verify and summarize.

    • Process candidates in ranked order until target_news_count verified items are collected.
    • Skip candidates whose canonical URL is already in processed_urls.
    • Attempt web_fetch up to max_scrape_retries + 1 times.
    • If fetch fails, add a warning with the URL and reason, then continue.
    • Cross-check search result vs fetched page using:
      • title similarity,
      • domain consistency,
      • topic alignment,
      • published date when available.
    • If the page appears materially inconsistent, skip it and warn.
    • Summarize in one plain-text paragraph, max about 80 words.
    • Focus on why it matters to AI practitioners.
    • If summary generation fails, warn and continue.
    • Append the enriched item.
  6. Minimum quality gate.

    • 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 not already seen or processed.
    • Repeat filtering, ranking, verification, and summarization.
  7. Final integrity check.

    • Ensure every final item has non-empty title, url, domain, summary, source_query, and numeric relevance_score.
    • Ensure each URL appears once.
    • Ensure markdown_newsletter and json_newsletter match in item count.
    • Remove and warn on any invalid item.
  8. Finalize.

    • Sort by relevance_score desc, then published_at desc.
    • Truncate to target_news_count.
    • Render markdown_newsletter.
    • Assemble json_newsletter.
    • Return all outputs.

Verification rules

Accept an item only if it passes these checks:

  • URL integrity:

    • canonical URL is valid,
    • duplicates removed,
    • malformed URLs rejected.
  • Source consistency:

    • search title and fetched title broadly match,
    • snippet and page content describe the same story,
    • off-topic pages rejected.
  • Metadata sanity:

    • valid published date preferred,
    • unknown date allowed only if the rest is strong,
    • malformed or impossible dates rejected.
  • Content integrity:

    • fetched content must be substantively about the same AI news item,
    • truncated or malformed pages rejected.
  • Warning log:

    • record every failed URL and reason,
    • record whether fallback search was used.

Markdown format

markdown_newsletter must use:

  • H1 title with date.
  • One H2 section per article.
  • One short summary paragraph per article.
  • One source link per article.

Example:

AI Newsletter Daily — 2026-04-28

1. Article title

Summary paragraph.

Source: link

Warnings

Only include this section when needed.

Failure policy

Hard fail only when:

  • Both initial and fallback searches return no usable URLs.
  • Required tools are unavailable.

Soft fail and continue when:

  • A single fetch fails.
  • A single summary fails.
  • published_at is missing.
  • A candidate fails cross-check verification.

Partial success is acceptable when the result count is between min_articles_required and target_news_count.

Always include actionable warnings with URL, short reason, and whether fallback search was used.

Safety rules

  • Use only sanctioned tools.
  • Do not request API keys from the user.
  • Do not expose secrets.
  • Do not include copyrighted full article text.
  • Keep summaries neutral, concise, and factual.
  • Preserve deterministic behavior wherever tool outputs allow.

Return shape

json_newsletter must contain:

  • date
  • query
  • count
  • articles
  • warnings

相关技能

把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。

作者 nssa.io1.0k 次安装47 星标

以 AI 机器人身份加入视频会议,提供语音、虚拟形象与屏幕共享四种模式。

作者 johnpatternai22 次安装8 星标

在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。

作者 Iván559 次安装18 星标

从 AdMapix API 拉取广告创意、应用、榜单和收入预估等数据,原样返回结构化 JSON。

作者 fly0pants4.3k 次安装296 星标

诊断生产力系统反复失效的根因,给出最小干预——容量测算、瓶颈定位、可靠的本地记录。

作者 Iván855 次安装69 星标

j3ffyang 的更多技能

浏览全部技能

Polish a technical blog draft into an 800–1000 word, 3–4 section zh-CN article, preserve technical terms/code, and generate consistent hero + per-section image prompts when the user asks to polish and translate a blog with images.

作者 j3ffyang28 次安装

Generate video from supplied image using Veo-3.0 async API. Gemini vision analyzes image, Veo creates video via predictLongRunning. All outputs in ~/.openclaw/workspace/tibetanProc/ with yymmddHHMM prefix.

作者 j3ffyang17 次安装

Read a plain Markdown file (e.g. 260321_openclawConfig.md), generate header and section images using the default OpenClaw image model and API key from ~/openclaw/.env, create a new *_img.md copy with embedded PNGs, and move all generated images into an img/ folder next to the original file.

作者 j3ffyang13 次安装

Polish a technical blog draft into a 1000–1200 word, 4–5 section en-US article, preserve technical terms/code, and generate one consistent hero image prompt.

作者 j3ffyang17 次安装

Help the user draft, review, and polish blog posts in Markdown, keeping the original languages and informal tone.

作者 j3ffyang25 次安装

Generate a daily AI news newsletter for a Chinese audience from fresh web sources, summarizing current AI/ML articles into Markdown and JSON with Simplified...

作者 j3ffyang13 次安装