← 返回
内容创作 Key 中文

AI News Aggregator

Fetches AI & tech news (default) or any custom topic (crypto, geopolitics, etc.) from RSS feeds, Tavily search, Twitter/X, and YouTube. Writes an English edi...
从RSS源、Tavily搜索、Twitter/X和YouTube获取AI与科技新闻(默认)或自定义主题(如加密货币、地缘政治等),并撰写英文编辑稿。
scottll
内容创作 clawhub v1.2.8 3 版本 99883.3 Key: 需要
★ 2
Stars
📥 816
下载
💾 35
安装
3
版本
#ai#chinese#deepseek#discord#latest#news#rss#youtube

概述

🦞 AI News Aggregator

Collects news on any topic, writes an English editorial digest using your choice of AI provider, and posts it to Discord.

Default (AI topic): TechCrunch · The Verge · NYT Tech (RSS) + curated AI YouTube channels

Custom topics: Tavily news search + YouTube topic search (no Shorts, sorted by views)

AI providers: OpenAI (default) · DeepSeek · Anthropic Claude — switchable per request


Network Endpoints

EndpointPurposeCondition
------------------------------
https://api.openai.com/v1/chat/completionsAI editorial summarisationOnly if provider=openai (default)
https://api.deepseek.com/chat/completionsAI editorial summarisationOnly if provider=deepseek
https://api.anthropic.com/v1/messagesAI editorial summarisationOnly if provider=claude
https://discord.com/api/webhooks/...Post digest to DiscordAlways (required)
https://techcrunch.com/.../feed/RSS news (AI topic)Default AI topic only
https://www.theverge.com/rss/...RSS news (AI topic)Default AI topic only
https://www.nytimes.com/svc/collections/...RSS news (AI topic)Default AI topic only
https://api.tavily.com/searchCustom topic news searchOnly if TAVILY_API_KEY set
https://api.twitterapi.io/twitter/tweet/advanced_searchTwitter searchOnly if TWITTERAPI_IO_KEY set
https://www.googleapis.com/youtube/v3/...YouTube searchOnly if YOUTUBE_API_KEY set

Exactly one AI endpoint is contacted per run, determined by the active provider. The default provider is OpenAI (OPENAI_API_KEY required). Switch providers with --provider deepseek or --provider claude.


Usage Examples

  • "Get today's AI news"
  • "Collect news about crypto"
  • "Last week's news about climate change"
  • "What's trending in AI today?"
  • "Get crypto news from the last 3 days using OpenAI"
  • "Show me recent Bitcoin YouTube videos"
  • "Summarise WWIII news with Claude"
  • "AI news using GPT-4o"
  • "AI news dry run" (preview without posting to Discord)
  • "Test my Discord webhook"

API Keys

KeyRequiredWhere to get it
-------------------------------
DISCORD_WEBHOOK_URL✅ AlwaysDiscord → Channel Settings → Integrations → Webhooks → Copy URL
OPENAI_API_KEYIf using OpenAI (default)platform.openai.com/api-keys
DEEPSEEK_API_KEYIf using DeepSeekplatform.deepseek.com/api_keys
ANTHROPIC_API_KEYIf using Claudeconsole.anthropic.com → API Keys
TAVILY_API_KEYFor custom topicsapp.tavily.com
TWITTERAPI_IO_KEYOptionaltwitterapi.io
YOUTUBE_API_KEYOptionalconsole.cloud.google.com → YouTube Data API v3

AI Providers & Models

Provider--provider valueDefault modelBest for
------------------------------------------------------
OpenAIopenai (default)gpt-4o-miniQuality, reliability
DeepSeekdeepseekdeepseek-chatCost-effective, fast
Claudeclaudeclaude-3-5-haiku-20241022Nuanced writing

Override per request using the --provider flag. Set a permanent non-default with openclaw config set env.AI_PROVIDER '"deepseek"'. Override the model with --model (e.g. --model gpt-4o or --model claude-3-5-sonnet-20241022).


Implementation

IMPORTANT: Always run news_aggregator.py using the steps below. Do NOT search the web manually or improvise a response — the script handles all fetching, summarisation, and Discord posting.

Step 1 — Locate the script

The script is bundled with this skill. Find it:

SKILL_DIR=$(ls -d ~/.openclaw/skills/ai-news-aggregator-sl 2>/dev/null || ls -d ~/.openclaw/skills/news-aggregator 2>/dev/null)
SCRIPT="$SKILL_DIR/news_aggregator.py"
echo "Script: $SCRIPT"
ls "$SCRIPT"

Step 2 — Check uv is available

which uv && uv --version || echo "uv not found"

If uv is not found, ask the user to install it from their system package manager or from https://docs.astral.sh/uv/getting-started/installation/. Do not run a curl-pipe-sh command on the user's behalf.

Step 3 — API keys

Env vars are passed automatically by OpenClaw from its config. No .env file is needed.

Verify the required keys are set (without revealing values):

[[ -n "$OPENAI_API_KEY" ]]      && echo "OPENAI_API_KEY: set"      || echo "OPENAI_API_KEY: MISSING (required for default provider)"
[[ -n "$DISCORD_WEBHOOK_URL" ]] && echo "DISCORD_WEBHOOK_URL: set" || echo "DISCORD_WEBHOOK_URL: MISSING"

If any are missing, ask the user to register them:

openclaw config set env.OPENAI_API_KEY '<key>'
openclaw config set env.DISCORD_WEBHOOK_URL '<url>'
# Optional alternatives:
openclaw config set env.DEEPSEEK_API_KEY '<key>'
openclaw config set env.ANTHROPIC_API_KEY '<key>'

Step 4 — Parse the request

Extract topic, days, and provider from what the user said:

For AI provider:

User said--provider--model
-------------------------------
"use OpenAI" / "with GPT" / "using ChatGPT" / nothing specified(omit — default)(omit)
"use Claude" / "with Anthropic"--provider claude(omit)
"use DeepSeek"--provider deepseek(omit)
"use GPT-4o" / "with gpt-4o"--provider openai--model gpt-4o
"use claude sonnet"--provider claude--model claude-3-5-sonnet-20241022
"use deepseek reasoner"--provider deepseek--model deepseek-reasoner

Extract topic and days from what the user said:

User said--topic--days
----------------------------
"AI news" / "tech news" / nothing specific(omit — default AI)1
"crypto news"--topic "crypto"1
"news about climate change"--topic "climate change"1
"last week's crypto news"--topic "crypto"7
"last 3 days of Bitcoin news"--topic "Bitcoin"3
"yesterday's AI news"(omit topic)1
"this week in AI"(omit topic)7

For report type:

User saidflag to add
------------------------
"news" / "articles" / "digest"--report news
"trending" / "Twitter" / "YouTube"--report trending
"dry run" / "preview" / "don't post"--dry-run
"test Discord" / "test webhook"--test-discord
anything else(omit — runs all)

Step 5 — Run with uv

uv run automatically installs all dependencies from the script's inline metadata — no venv setup needed.

uv run "$SCRIPT" [--topic "TOPIC"] [--days N] [--report TYPE] [--provider PROVIDER] [--model MODEL] [--dry-run]

Examples:

# AI news today — OpenAI (default)
uv run "$SCRIPT"

# Crypto news using OpenAI
uv run "$SCRIPT" --topic "crypto" --provider openai

# Last week's climate news using Claude
uv run "$SCRIPT" --topic "climate change" --days 7 --provider claude

# Use a specific model
uv run "$SCRIPT" --topic "Bitcoin" --provider openai --model gpt-4o

# Trending AI on Twitter and YouTube
uv run "$SCRIPT" --report trending

# Preview without posting to Discord
uv run "$SCRIPT" --topic "Bitcoin" --dry-run

# Test webhook connection
uv run "$SCRIPT" --test-discord

Step 6 — Report back

Tell the user what was posted to Discord, how many items were found per source, and note any skipped sources (e.g. "YouTube skipped — YOUTUBE_API_KEY not set").

版本历史

共 3 个版本

  • v1.2.8 当前
    2026-03-29 09:12 安全 安全
  • v1.1.2
    2026-03-26 21:41
  • v1.2.6
    2026-03-14 01:18

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

content-creation

YouTube

byungkyu
使用托管OAuth集成YouTube Data API,支持搜索视频、管理播放列表、获取频道数据及评论互动,适用于用户需要时使用此技能。
★ 142 📥 41,091
content-creation

Baidu Wenku AIPPT

ide-rea
使用百度文库 AI 智能生成 PPT,自动根据内容选择模板。
★ 66 📥 46,224
content-creation

AdMapix

fly0pants
广告情报与应用数据分析助手,支持搜索广告素材、分析应用排名、下载量、收入及市场洞察,用于广告素材和竞品分析。
★ 295 📥 136,518