AI Hotspot Radar
Collect recent AI news, papers, repos and community discussion from Chinese and international sources, then synthesize a ranked, citation-linked digest.
Two modes:
- Scripted collection —
scripts/ai_news.py(stdlib-only) fetches RSS/Atom feeds, Hacker News, arXiv, Hugging Face and GitHub in parallel and prints JSON or a markdown scaffold. - Agent enrichment — you (the agent) use the
web_search/fetch_content/source_checktools to fill gaps that have no RSS (微博/百度热搜, X/Twitter, 公众号, breaking news) and to write the final Chinese digest.
When to use
Trigger whenever the user wants trend/awareness of AI: "AI 日报/周报", "AI 热点 追踪", "今天 AI 圈发生了什么", "收集国内外 AI 资讯", "AI news roundup", "最 近大模型有什么动态", "看看 GitHub 上火的 AI 项目", "整理一份 AI 简报".
Prerequisites
python3(stdlib only — nopip install).- Optional tokens (never required to start):
GITHUB_TOKEN— GitHub search rate limit 10/hr → 5,000/hr.HF_TOKEN— higher Hugging Face limits.
- Proxy: in mainland China several international hosts (huggingface.co,
reddit.com, substack.com, ai.meta.com) are unreachable. Export
HTTPS_PROXY=http://127.0.0.1:7890(or your port) before running;urllibpicks it up automatically. The script marks such sourcesneeds_proxy. - Registration / API keys for extra platforms: see
references/registration.md. - Full source catalog:
references/sources.md.
Script location
Everything is bundled next to this SKILL.md. Resolve paths from this skill's
directory, not the cwd. Pi prints the absolute path when it advertises the skill:
SKILL_DIR="<absolute path of the directory containing this SKILL.md>"
ls "$SKILL_DIR/scripts/ai_news.py" "$SKILL_DIR/references/"
Scripts write the payload to stdout and progress/errors to stderr. Capture
stdout only (2>/dev/null) when piping into jq/a parser.
Quick start
# Full merged digest (recommended): ~1-2 min, all sections, markdown scaffold
python3 "$SKILL_DIR/scripts/ai_news.py" all --hours 24 --markdown
# Same, as structured JSON for programmatic use
python3 "$SKILL_DIR/scripts/ai_news.py" all --hours 24 --limit 8 --per-section 8
# One region / one source group
python3 "$SKILL_DIR/scripts/ai_news.py" feeds --region cn --hours 48
python3 "$SKILL_DIR/scripts/ai_news.py" feeds --region intl --hours 24 --limit 10
python3 "$SKILL_DIR/scripts/ai_news.py" feeds --source qbitai,tmtpost,techcrunch
# Individual signals
python3 "$SKILL_DIR/scripts/ai_news.py" hn --hours 48 --min-points 80 --limit 15
python3 "$SKILL_DIR/scripts/ai_news.py" arxiv --cats cs.AI,cs.CL,cs.LG --hours 72 --limit 20
python3 "$SKILL_DIR/scripts/ai_news.py" github --since-days 14 --limit 15
python3 "$SKILL_DIR/scripts/ai_news.py" hf --limit 15 # needs proxy
# Meta
python3 "$SKILL_DIR/scripts/ai_news.py" sources # list all feeds
python3 "$SKILL_DIR/scripts/ai_news.py" --timeout 12 health # feed reachability
Global flags (--timeout, --insecure) go before the subcommand.
Command reference
| Command | What it returns | Notable flags |
| -------- | --------------- | ------------- |
| all | Merged digest across every source, grouped by category × region | --hours --per-section --min-points --since-days --cats --markdown --region |
| feeds | CN + intl RSS/Atom items; general feeds are AI-keyword filtered | --region cn\|intl --source k1,k2 --hours --limit |
| hn | Hacker News AI stories (Algolia API, no key) | --min-points --hours --limit |
| arxiv | Newest cs.AI / cs.CL / cs.LG / … papers | --cats cs.AI,cs.RO --hours --limit |
| github | Recent high-star AI repos via search API | --since-days --limit |
| hf | Hugging Face Daily Papers + trending models (needs proxy) | --limit |
| sources| The feed catalog (key/region/category/url) | — |
| health | Reachability probe of every feed | --timeout (global) |
Item shape (JSON): title, url, source, source_key, region, category, published, age_hours, summary, plus score (HN points / GitHub stars / HF
upvotes) and extra where available. Categories: media, official,
research, models, github, community.
Recommended workflow
Follow these steps to produce a digest. Do not skip the enrichment step — RSS alone misses breaking news and Chinese social platforms.
- Collect. Run:
Read the markdown scaffold. Note thepython3 "$SKILL_DIR/scripts/ai_news.py" all --hours 24 --per-section 8 --markdown## ⚠️ 抓取异常section — never present a source as "quiet" if it actually failed. - Cross-reference the GitHub skill when the user cares about open-source
momentum: load the
github-trendingskill and run itstrending.pyfor period star-gain (which the search API cannot give). - Enrich with
web_search. Batch 2-4 varied queries, mixing angles:今日 AI 热点 2025/AI 行业动态 最新AI news today/LLM announcements this week微博热搜 AI/百度热搜 人工智能/知乎热榜 AI- specific entities seen in step 1 (e.g.
"OpenAI 新模型 发布","DeepSeek 新版本") Prefer the configured provider; use thequeries:[...]array form.
- Verify the top 3-5 claims with
source_checkorfetch_contentbefore writing them as fact. Fetch real article text for the headline items so the summary reflects the article, not just the title. - Synthesize the digest in the user's language (default: Chinese) using the template below. Rank by impact × recency; don't dump raw feeds.
- Persist if asked (save to
ai-digest-YYYY-MM-DD.md), and offer to schedule it (see "Scheduling").
Output format
Default deliverable: a Chinese digest, every item carrying a link and source.
# 🤖 AI 热点日报 · 2025-XX-XX
## 🔥 今日必读(3-5 条)
- **标题** — 一句话说明"发生了什么 + 为什么重要"。 [来源](url)
## 🇨🇳 国内动态
- **标题** — 摘要。 [量子位](url) · 3h 前
## 🌍 国际动态
- **标题** — 摘要。 [TechCrunch](url) · 5h 前
## 🏢 厂商与产品
- OpenAI / Google / Anthropic / 阿里 / 字节 / DeepSeek … 的发布、定价、合作。
## 🔬 研究前沿
- 论文/模型:标题 + 方法一句话 + 为什么值得看。 [arXiv](url)
## 🛠️ 开源与工具
- `owner/repo` — 一句话 + ⭐ 数 + 语言。 [GitHub](url)
## 💬 社区热议
- HN / Reddit / 微博 / 知乎 上被反复讨论的话题,带上分数/热度。
## 📌 值得深读
- 2-3 篇长文/访谈/报告,附一句"看点"。
---
📊 覆盖:N 个信源 | 时间窗:最近 24h | 生成时间:…
⚠️ 未覆盖/抓取失败:…
Rules:
- Never fabricate. Every claim needs a source link. If a headline is unverified, label it 传闻/未证实.
- Deduplicate the same story across outlets; cite the most authoritative or the original.
- Prefer recency.
age_hoursis provided; drop items older than the window. - Keep each summary to 1-2 sentences: what changed + why it matters.
- Separate 国内 vs 国际; don't let English sources drown out Chinese ones.
- If a whole region/source failed, say so explicitly instead of implying silence.
Coverage map (why this mix)
| Layer | Sources |
| ----- | ------- |
| 中文媒体 | 量子位, 钛媒体, 雷峰网, InfoQ 中文, 爱范儿, 少数派, Solidot, IT之家, 开源中国, 新浪科技 |
| 中文社区 | 掘金, 阮一峰周刊 |
| 国际媒体 | TechCrunch, The Verge, Ars Technica, MIT Tech Review, WIRED AI, VentureBeat AI, TLDR AI |
| 厂商官方 | OpenAI, Google AI, DeepMind, Microsoft Research, Meta AI, Hugging Face |
| 研究 | arXiv (cs.AI/CL/LG/CV/RO), Hugging Face Daily Papers |
| 开源 | GitHub search API + github-trending skill (period star-gain) |
| 社区 | Hacker News (Algolia) |
| 无 RSS,靠 web_search | 微博/百度/抖音热搜, X/Twitter, 微信公众号(新智元/机器之心/宝玉), 小红书, 即刻 |
Add or change sources
Edit the FEEDS list at the top of scripts/ai_news.py. Each entry:
{"key": "my_source", "name": "显示名", "url": "https://…/feed",
"region": "cn", "category": "media", "ai_only": False, "home": "https://…"},
region:cn|intlcategory:media|official|research|models|github|communityai_only: Trueskips keyword filtering (feed is already AI-only)needs_proxy: Truemarks geo-blocked feeds; skipped unless--include-proxy-sources- After editing, run
python3 "$SKILL_DIR/scripts/ai_news.py" healthto verify.
Scheduling
To get a digest every morning, either:
- ask the user to add a cron job:
0 8 * * * cd <dir> && python3 "$SKILL_DIR/scripts/ai_news.py" all --hours 24 --markdown > ~/ai-digest-$(date +\%F).md - or run the workflow from a Pi session via a prompt template / automation.
Troubleshooting
| Symptom | Fix |
| ------- | --- |
| HTTP 429 (VentureBeat/Cloudflare) | Rate-limited; retry later or rely on other outlets |
| URLError / SSL handshake timeout on hf.co, reddit, substack | Geo-blocked: set HTTPS_PROXY, or skip (needs_proxy) |
| 403 rate limit on GitHub | Set GITHUB_TOKEN; unauthenticated search is 10 req/min |
| XML parse error | Feed changed to HTML (blocked/JS shell) — run health, replace the URL |
| Empty section | Source simply had no matching items in the window; widen --hours |
| Slow all run | Lower --timeout 12 and/or --region cn |
References
references/sources.md— full catalog: URL, region, type, auth, reliability, RSSHub routes.references/registration.md— platforms worth registering (tokens/keys), why, step-by-step, env var names.
微信扫一扫