融合多平台实时热榜与 AI 搜索的智能新闻采集工具,内置本地记忆去重机制,确保每次获取的都是全新资讯。
仅使用 Python 标准库,无需额外安装:
urllib:HTTP 请求
json、re、time、os、hashlib:数据处理与本地记忆
将 HTML 报告截图为高清 PNG 图片,依赖 Node.js + Playwright:
cd ~/.workbuddy/skills/ai-news-known && npm install
node scripts/screenshot_news.js [output_dir]
ai-news-known/
├── SKILL.md # 本文件
├── package.json # Playwright 依赖
├── scripts/
│ ├── fetch_ai_news.py # 主脚本:多源采集 + AI过滤 + 本地去重
│ ├── format_ai_news.py # 格式化输出
│ └── screenshot_news.js # HTML → PNG 截图工具
├── data/
│ └── history.json # 本地记忆文件(自动生成,记录已推送新闻)
└── references/
└── sources.md # AI新闻源推荐
脚本启动时自动加载 data/history.json,获取已推送新闻记录。
按以下优先级采集新闻:
# 支持的单源采集
python ai-news-known/scripts/fetch_ai_news.py weibo 20
python ai-news-known/scripts/fetch_ai_news.py zhihu 20
python ai-news-known/scripts/fetch_ai_news.py baidu 20
python ai-news-known/scripts/fetch_ai_news.py douyin 20
python ai-news-known/scripts/fetch_ai_news.py wallstreetcn 20
python ai-news-known/scripts/fetch_ai_news.py toutiao 20
python ai-news-known/scripts/fetch_ai_news.py jin10 20
python ai-news-known/scripts/fetch_ai_news.py thepaper 20
# 从所有中文热榜采集,自动过滤AI相关新闻,自动去重
python ai-news-known/scripts/fetch_ai_news.py all 50
对采集结果执行多级关键词匹配:
高置信度词(匹配即收录):
AI, 人工智能, 大模型, GPT, LLM, ChatGPT, Claude, Gemini, OpenAI, Anthropic, DeepSeek, 机器学习, 深度学习, 神经网络, 自动驾驶, 机器人, Copilot, Agent, 智能体, Sora, Midjourney, Stable Diffusion, Hugging Face, Transformer, LangChain, RAG, 提示词, prompt, 具身智能, AIGC
中置信度词(需上下文确认):
芯片, 算力, 开源模型, 训练, 推理, 微调, fine-tune, 多模态, 生成式
对每条新闻标题计算 SHA-256 哈希,与历史记录比对:
历史数据存储在 data/history.json,格式如下:
{
"version": 1,
"last_updated": "2026-04-14T23:30:00",
"total_count": 156,
"records": [
{
"hash": "a1b2c3...",
"title": "新闻标题...",
"source": "weibo",
"timestamp": "2026-04-14T23:30:00"
}
]
}
在使用本技能时,AI Agent 应额外通过 web_search 执行以下搜索,补充热榜未覆盖的 AI 专属新闻:
推荐搜索词(至少执行 4 次):
"AI news today" OR "AI news this week"
"大模型" OR "AI agent" 最新发布
site:github.com trending AI
"AI breakthrough" OR "AI paper" [当前月份]
搜索结果中提取的新闻需同样经过关键词过滤和本地去重。
# 将采集结果格式化输出(默认输出 HTML)
python ai-news-known/scripts/format_ai_news.py news.json
python ai-news-known/scripts/format_ai_news.py news.json html
python ai-news-known/scripts/format_ai_news.py news.json elegant
python ai-news-known/scripts/format_ai_news.py news.json compact
python ai-news-known/scripts/format_ai_news.py news.json markdown
python ai-news-known/scripts/format_ai_news.py news.json summary
输出格式说明:
html(默认):生成独立的 HTML 静态页面,深色主题,可直接在浏览器打开
elegant:终端美化输出,带边框和 emoji
compact:紧凑单行格式
markdown:Markdown 格式
summary:简短摘要
# Step 1: 从所有热榜采集,AI过滤,去重
python ai-news-known/scripts/fetch_ai_news.py all 50
# Step 2: 格式化输出(默认 HTML)
python ai-news-known/scripts/format_ai_news.py /tmp/ai_news.json
# Step 3(仅用户要求时): 截图
node ai-news-known/scripts/screenshot_news.js ai-news-2026-04-15.html screenshots/
# Step 4(仅用户要求时): 小红书文案
# 由 AI Agent 根据新闻内容直接生成,无需额外脚本
当用户触发本技能时,按以下步骤执行:
# 检查是否有历史数据
python ai-news-known/scripts/fetch_ai_news.py history
python ai-news-known/scripts/fetch_ai_news.py all 50
使用 web_search 工具执行至少 4 次 AI 专属搜索,将结果补充到新闻列表中。
ai-news-YYYY-MM-DD.html
preview_url 工具展示给用户
仅当用户明确说"截图"、"生成图片"、"PNG"、"图片版"等关键词时才执行。
仅当用户明确说"小红书"、"文案"、"话题标签"、"xhs"等关键词时才执行。
输出:备选标题(3条)+ 正文文案(结构化摘要)+ 热门话题标签(15-20个)。
> ⚠️ 默认不执行,仅当用户明确说"截图"、"生成图片"、"PNG"等时才执行。
# 首次使用,安装 Playwright 依赖(只需一次)
cd ~/.workbuddy/skills/ai-news-known && npm install
# 截图(自动生成4种版本)
node scripts/screenshot_news.js ai-news-2026-04-15.html screenshots/
> ⚠️ 默认不执行,仅当用户明确说"小红书"、"文案"、"话题标签"等时才执行。
输出内容包含:
默认输出 HTML 静态页面,可直接用浏览器打开:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<title>AI 新闻速递 2026-04-15</title>
<style>
/* 深色主题配色 */
body { background: linear-gradient(135deg, #1a1a2e, #16213e); }
.stat-card { background: rgba(255,255,255,0.05); }
.news-item:hover { background: rgba(255,255,255,0.06); }
</style>
</head>
<body>
<div class="header">
<h1>🤖 AI 新闻速递</h1>
<div class="date">2026-04-15 17:00</div>
</div>
<div class="stats">
<div class="stat-card">
<div class="value">255</div>
<div class="label">总采集</div>
</div>
<!-- ... 更多统计卡片 ... -->
</div>
<div class="source-section">
<div class="source-title">📍 微博热搜 (5 条)</div>
<div class="news-list">
<div class="news-item">
<div class="title">1. <a href="...">新闻标题</a></div>
<div class="meta"><span class="keyword">AI</span></div>
</div>
</div>
</div>
</body>
</html>
# 查看历史统计
python ai-news-known/scripts/fetch_ai_news.py stats
# 清理超过30天的历史记录(自动保留最近500条)
python ai-news-known/scripts/fetch_ai_news.py cleanup
data/history.json
共 1 个版本