360 Secure SkillHub
360 安全技能中心

Awesome AI Sources

从 Agentic Brew 的 11 个公共 RSS 源(新闻、Twitter、GitHub、Reddit、YouTube、Product Hunt、Skill、博客、论文、活动及合集)抓取并解析条目,支持指定源、条数上限、关键词过滤和 JSON 输出;默认先交互询问类别、频率与详细程度,再返回 Markdown 或 JSON 列表。

sunxiayi
sunxiayi
热度 16.02
最近更新 2026-05-16 03:41:47
分类:搜索依赖:代码执行 / 第三方 API应用场景:研究 / 报告撰写

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add ai-news-fetcher
Metadata
name
ai-news-radar
description
Fetch curated AI news, social signals, blogs, papers, events, and skills from the Agentic Brew public RSS feeds (https://www.agenticbrew.ai/feed/*.xml) and return a compact, agent-friendly list. Use when the user wants "today's AI news", "what's trending in AI", "AI papers this week", "AI events", "AI blogs", "trending AI repos", "trending AI on Reddit / YouTube / Product Hunt", "trending AI skills", "ai news radar", "agentic brew feed", "AI signal radar", "latest AI digest", or any request to pull curated AI items from Agentic Brew without writing a scraper.

Agentic Brew Feed Fetcher

Pulls items from the Agentic Brew public RSS endpoints and returns them as a clean list. No auth, no scraping — just an HTTP GET against the latest run_log's published feed.

Available feeds

Feed URL Contents Item <link> resolves to
news https://www.agenticbrew.ai/feed/news.xml Synthesized news clusters — title + overview Agentic Brew news-analysis card page (https://www.agenticbrew.ai/news#cluster=<id>)
twitter https://www.agenticbrew.ai/feed/twitter.xml Trending X / Twitter topics — title + hottest tweets with likes / RTs / replies / views The top tweet of the topic on x.com
github https://www.agenticbrew.ai/feed/github.xml Trending GitHub AI repos — title + detail (stars, language, daily delta) Original GitHub repo
reddit https://www.agenticbrew.ai/feed/reddit.xml Trending Reddit AI threads — title + detail (subreddit, upvotes, comments, excerpt) Original Reddit thread
youtube https://www.agenticbrew.ai/feed/youtube.xml Curated AI videos — title + summary Original YouTube video
product_hunt https://www.agenticbrew.ai/feed/product_hunt.xml Trending AI launches — title + topics + tagline Original Product Hunt launch page
skill https://www.agenticbrew.ai/feed/skill.xml Top Claude Code skills from skills.sh + clawhub — title + installs/stars + summary Original skill page on skills.sh / clawhub
blog https://www.agenticbrew.ai/feed/blog.xml Curated AI blog articles — title + AI-generated summary Original blog article
paper https://www.agenticbrew.ai/feed/paper.xml Research papers — title + AI summary + institutions + source (HF/AlphaXiv/X) + votes Original paper page (arxiv / Hugging Face / x.com)
event https://www.agenticbrew.ai/feed/event.xml Upcoming AI events — title + start time + summary Original event page (e.g., lu.ma)
all https://www.agenticbrew.ai/feed/all.xml Union of all of the above Per-item — same as the feed above

Usage

/ai-news-radar [feed] [--limit N] [--query KEYWORD] [--json]
  • feed (optional, default news): one of news, twitter, github, reddit, youtube, product_hunt, skill, blog, paper, event, all
  • --limit N (optional, default 20): max items to return
  • --query KEYWORD (optional): case-insensitive substring filter over title + description
  • --json (optional): emit JSON instead of markdown

Default interactive flow (no args, or vague request)

This skill covers a lot of ground — 11 feeds spanning news, social, papers, events, and more. If the user invokes it without specifying a feed (e.g., "show me what's new on Agentic Brew", "give me today's AI digest"), do NOT silently default to one feed. Instead, before fetching anything:

  1. Ask the user which categories they want. Use the host agent's question UI (in Claude Code: AskUserQuestion with multiSelect: true) so the user can pick any subset of:

    news, twitter, github, reddit, youtube, product_hunt, skill, blog, paper, event

    Plus an all shortcut. Show a one-line description of each so the user knows what they're picking. If the user says "everything" or "all", treat as all.

  2. Ask the delivery frequency. Single-select:

    • once — fetch immediately and return the result.
    • daily — fetch now AND propose setting up a recurring task. In Claude Code, suggest the /schedule skill (cron) or /loop (interval). For other host agents, surface their equivalent or tell the user how to re-invoke.
    • weekly — same idea, weekly cadence.
  3. Ask how much detail to include per item. Single-select:

    • headlines — title only. Compact list, just "what happened."
    • summary — title + the AI-generated summary / overview / engagement stats (whichever the feed provides) + the source link. The default Agentic Brew item shape.
    • detailed — title + full description (no truncation) + source link + any content:encoded inner content (e.g., tweet list for twitter, overview bullets for news) + the <category> tags.

    To apply the choice: fetch with --json internally, then format the items per the chosen detail level. Do NOT pass --limit so low that you lose information the user asked for — only --limit controls how many items, not how deep each one goes.

  4. Once the user has answered all three, fetch the selected feeds in parallel and present a single combined report grouped by category, formatted at the chosen detail level. If they chose daily/weekly, ALSO offer to set up the recurring schedule before exiting — don't silently leave it as a one-shot.

If the user provides explicit args (e.g., /ai-news-radar news --limit 5), skip the questions entirely and execute directly per the Usage section.

Steps (direct invocation)

  1. Resolve the feed URL from the chosen feed name. If the argument is invalid, abort and tell the user the valid options.
  2. Run the fetch + parse one-liner below. It uses the Python stdlib only (urllib, xml.etree) — no extra installs.
  3. Print the result. Default output is a markdown list (- [title](link) — pubDate · description). With --json, print a JSON array of {title, link, description, pub_date, categories}.

Fetch + parse one-liner

Substitute FEED, LIMIT, QUERY, and FORMAT (md or json) before running.

FEED="news"      # news | twitter | github | reddit | youtube | product_hunt | skill | blog | paper | event | all
LIMIT=20
QUERY=""         # empty = no filter
FORMAT="md"      # md | json

python3 - "$FEED" "$LIMIT" "$QUERY" "$FORMAT" <<'PY'
import json, sys, urllib.request, xml.etree.ElementTree as ET

FEED, LIMIT, QUERY, FORMAT = sys.argv[1], int(sys.argv[2]), sys.argv[3].lower(), sys.argv[4]
URL = f"https://www.agenticbrew.ai/feed/{FEED}.xml"

req = urllib.request.Request(URL, headers={"User-Agent": "ai-news-radar-skill/1.0"})
with urllib.request.urlopen(req, timeout=30) as r:
    xml_bytes = r.read()

root = ET.fromstring(xml_bytes)
items = []
for it in root.iter("item"):
    def text(tag):
        el = it.find(tag)
        return (el.text or "").strip() if el is not None and el.text else ""
    title = text("title")
    link = text("link")
    desc = text("description")
    pub = text("pubDate")
    cats = [c.text.strip() for c in it.findall("category") if c.text]
    hay = f"{title}\n{desc}".lower()
    if QUERY and QUERY not in hay:
        continue
    items.append({
        "title": title, "link": link, "description": desc,
        "pub_date": pub, "categories": cats,
    })
    if len(items) >= LIMIT:
        break

if FORMAT == "json":
    print(json.dumps(items, ensure_ascii=False, indent=2))
else:
    for i in items:
        d = i["description"]
        if len(d) > 200: d = d[:199] + "…"
        print(f"- [{i['title']}]({i['link']}) — {i['pub_date']}\n  {d}")
    if not items:
        print("(no items matched)")
PY

Notes

  • The feeds always reflect the latest published run_log, so calling this skill twice in the same day usually returns the same items. There is no incremental cursor — caller is responsible for dedup if needed.
  • On non-2xx HTTP responses, surface the status code and URL in RED so the user can see which endpoint failed.
  • If xml.etree cannot parse the body, log a YELLOW warning with the first 200 chars of the response so the user can diagnose (likely a CDN error page, not XML).
  • This skill is read-only against a public endpoint — no credentials, no rate limiting on the caller side. Be polite: do not call in a tight loop.