--- name: ai-news-digest description: Multi-source AI news digest combining smol.ai RSS, Hacker News AI topics, AI model rankings, and GitHub top starred AI projects. Use when user asks about AI news, latest AI updates, AI rankings, or combined AI information. version: "2.0" author: Judy (朱迪) license: MIT --- # AI News Digest Skill (v2.0) Multi-source AI news digest combining: 1. **smol.ai** — AI industry news (Twitter/X + Reddit aggregation) 2. **Hacker News** — AI-related technical discussions 3. **Artificial Analysis** — AI model rankings 4. **GitHub** — Top starred AI projects (all-time cumulative stars) ## Usage Keywords ``` AI资讯 AI新闻 AI日报 AI动态 最新AI 多源AI AI digest AI汇总 ``` ## Workflow ### Step 1: Fetch smol.ai AI News ```bash cd /root/.openclaw/workspace/.agents/skills/ai-daily-news && python3 scripts/fetch_news.py --date $(date -d 'yesterday' +%Y-%m-%d) 2>&1 ``` If no content for yesterday, try today: ```bash cd /root/.openclaw/workspace/.agents/skills/ai-daily-news && python3 scripts/fetch_news.py --date $(date +%Y-%m-%d) 2>&1 ``` Parse the content and extract: - Main headline (most important AI story of the day) - Key facts: model names, parameters, prices, rankings - Notable news: OpenAI, Google, funding, tools - Source: smol.ai link ### Step 2: Fetch Hacker News AI Stories ```bash python3 -c " import urllib.request, json, time ids = json.loads(urllib.request.urlopen('https://hacker-news.firebaseio.com/v0/topstories.json', timeout=10).read()) ai_keywords = ['ai', 'llm', 'gpt', 'model', 'neural', 'claude', 'gemini', 'openai', 'deepseek', 'anthropic', 'mistral'] ai_stories = [] for sid in ids[:100]: item = json.loads(urllib.request.urlopen(f'https://hacker-news.firebaseio.com/v0/item/{sid}.json', timeout=5).read()) title = item.get('title', '').lower() if any(kw in title for kw in ai_keywords): score = item.get('score', 0) url = item.get('url', f'https://news.ycombinator.com/item?id={sid}') ai_stories.append((score, item['title'], url)) time.sleep(0.05) if len(ai_stories) >= 6: break print('## 💻 Hacker News AI 热点\n') for score, title, url in sorted(ai_stories, reverse=True)[:6]: print(f'• {title} ({score} pts)') " 2>&1 ``` ### Step 3: Fetch AI Model Rankings Use the ai-models-leaderboard skill to get top AI model rankings. If unavailable, use known top models: ``` ## 🏆 AI 模型排行榜(Artificial Analysis) | # | 模型 | 类型 | |---|---|---| | 1 | GPT-5.5 | 闭源 | | 2 | Claude Opus 4.7 | 闭源 | | 3 | GPT-5.4 | 闭源 | | 4 | Gemini 3.1 Pro | 闭源 | | 5 | DeepSeek V4 Pro | 开源 #1 | | 6 | Kimi K2.6 | 开源 #2 | | 7 | Qwen 3.6 27B | 开源 #3 | ``` ### Step 4: Fetch GitHub Top AI Projects ```bash curl -s "https://api.github.com/search/repositories?q=AI+language:python+stars:>10000&sort=stars&order=desc&per_page=10" \ -H "Accept: application/vnd.github.v3+json" 2>&1 | python3 -c " import sys, json data = json.load(sys.stdin) print('## 🛠️ GitHub 高星 AI 项目 TOP 10\n') print('| # | 项目 | ⭐ | 语言 |') print('|---|---|---|---|') for i, r in enumerate(data['items'][:10], 1): lang = r['language'] or '—' print(f'| {i} | [{r[\"name\"]}]({r[\"html_url\"]}) | {r[\"stargazers_count\"]:,} | {lang} |') " ``` ### Step 5: Format and Reply Combine all sources into a structured digest: ``` # 🌐 AI 资讯整合 · {DATE} ## 📰 一、smol.ai AI 资讯 ### 🔴 最重大事件:{HEADLINE} {Key facts in table format} {Notable news bullets} ## 💻 二、Hacker News AI 热点 {HN stories list} ## 🏆 三、AI 模型排行榜 {Model rankings table} ## 🛠️ 四、GitHub 高星 AI 项目 TOP 10 {GitHub table} 来源: smol.ai + Hacker News + Artificial Analysis + GitHub ``` ### Step 6: Send Reply Send the formatted digest directly in the current conversation via message tool. ## Data Sources | Source | Data Type | Update | |--------|-----------|--------| | smol.ai | AI industry news | Daily | | Hacker News | AI tech discussions | Daily | | Artificial Analysis | Model rankings | Daily | | GitHub | Star counts (cumulative) | Real-time | ## Notes - smol.ai RSS: https://news.smol.ai/rss.xml - GitHub API: 60 req/hr limit (unauthenticated) - HN API: ~100 stories checked for AI keywords - Cumulative stars = all-time total, not weekly new stars