一个运行在 GitHub Actions 上的 AI 智能体,每天早上 6:00 自动抓取 Hacker News 热门文章和 GitHub Trending 项目,生成中文简报并推送至你的微信。
无需服务器,完全免费,开箱即用。
- 自动抓取:每天定时获取 Hacker News Top 榜单和 GitHub Trending 热门项目
- 智能去广:使用 Jina Reader 提取纯净网页内容
- 深度总结:调用 DeepSeek API 生成高质量中文技术简报
- 微信推送:通过 PushPlus 推送 Markdown 格式日报到你的微信
- 零成本:完全基于 GitHub Actions 免费运行,无需服务器
- 模块化架构:代码结构清晰,易于维护和扩展
每日报告包含以下内容:
📅 HN 每日简报 | 2025-01-08
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📰 Hacker News Top 5
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. [文章标题]
📝 AI摘要:文章的核心内容总结...
🔗 原文链接
2. [另一篇文章]
...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔥 GitHub Trending
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. [repo-name] - stars数
📝 项目简介...
你不需要写任何代码,只需要 Fork 本项目并配置 API Key。
点击右上角的 Fork 按钮,将项目复刻到你的 GitHub 账号下。
| 服务 | 用途 | 获取链接 |
|---|---|---|
| DeepSeek | AI 文章摘要 | platform.deepseek.com |
| PushPlus | 微信消息推送 | pushplus.plus |
💡 提示:DeepSeek 需要充值少量金额(约 ¥1 即可测试),PushPlus 有免费额度(每天 100 条)。
在你的 Fork 仓库页面:
- 进入
Settings→Secrets and variables→Actions - 点击
New repository secret,添加以下两个变量:
DEEPSEEK_API_KEY = sk-xxxxxxxxxxxxxxxx
PUSHPLUS_TOKEN = xxxxxxxxxxxxxxxxxx
- 点击仓库上方的
Actions标签 - 如果看到警告,点击 "I understand my workflows, go ahead and enable them"
- 点击左侧
Daily HN Digest→Run workflow手动测试一次(首次建议保持默认参数)
🎉 完成!以后每天 北京时间 06:00,它会自动运行并推送简报到你的微信。
首次按默认参数(Top 5 + 默认提示词)运行完成后,推送消息末尾会提醒你可自定义,无需改代码。
你可以在 Settings → Secrets and variables → Actions → Variables 新建:
HN_TOP_COUNT=8
GITHUB_TOP_COUNT=8
SUMMARY_PROMPT_TEMPLATE=请阅读以下内容并给出中文摘要。标题:{title}\n正文:{content}\n要求:先一句话结论,再列2-4条关键点。
SUMMARY_PROMPT_TEMPLATE必须包含{title}和{content}这两个占位符。可直接参考并复制模板:
SUMMARY_PROMPT_TEMPLATES.md
如果需要在本地运行或调试:
# 1. 安装依赖
pip install -r requirements.txt
# 2. 配置环境变量(创建 .env 文件)
DEEPSEEK_API_KEY=your_key_here
PUSHPLUS_TOKEN=your_token_here
# 3. 运行主程序
python news_agent.py
# 4. 运行测试
python test_hn_fetcher.py
⚠️ 注意:本地运行时会自动跳过系统代理设置。如果遇到网络问题,请检查网络连接。
| 技术 | 版本/说明 | 用途 |
|---|---|---|
| Python | 3.9+ | 主要编程语言 |
| OpenAI SDK | 最新版 | DeepSeek API 兼容客户端 |
| DeepSeek | - | AI 文章摘要生成 |
| Jina Reader | - | 网页内容提取 |
| httpx | - | 异步 HTTP 客户端 |
| GitHub Actions | - | 自动化调度 |
.
├── .github/
│ └── workflows/
│ └── daily_run.yml # GitHub Actions 工作流配置
├── config.py # 环境配置和凭证管理
├── hn_fetcher.py # Hacker News 抓取模块
├── github_trending.py # GitHub Trending 抓取模块
├── summarizer.py # DeepSeek 文章摘要模块
├── notifier.py # PushPlus 微信推送模块
├── news_agent.py # 主程序入口(编排所有模块)
├── test_hn_fetcher.py # HN 抓取模块单元测试
├── requirements.txt # Python 依赖列表
├── .env.example # 环境变量示例
├── CLAUDE.md # Claude Code 项目说明
└── README.md # 本文件
A: 请按以下步骤排查:
- 检查 GitHub Actions 是否运行成功(查看 Actions 标签页)
- 确认
PUSHPLUS_TOKEN配置正确 - 登录 PushPlus 确认发送记录
- 确认已关注 PushPlus 公众号
A: 可以。编辑 .github/workflows/daily_run.yml,修改 cron 字段:
schedule:
- cron: '0 22 * * *' # UTC 22:00 = 北京 06:00A: 可以,不用改代码。到 Settings → Secrets and variables → Actions → Variables 设置:
HN_TOP_COUNT(默认 5)GITHUB_TOP_COUNT(默认 5)
A: 可以,不用改代码。新增 Actions Variable:
SUMMARY_PROMPT_TEMPLATE
模板中必须包含 {title} 和 {content},系统会把文章标题和正文自动填入。
可选模板见:SUMMARY_PROMPT_TEMPLATES.md。
A: 可以替换为其他兼容 OpenAI 格式的 API:
- 修改
summarizer.py中的base_url - 更新 GitHub Secrets 中的
DEEPSEEK_API_KEY
A: 点击失败的 Run 查看 Logs,常见问题:
- 网络超时:GitHub Actions 网络不稳定,重试即可
- API 错误:检查 API Key 是否正确、余额是否充足
- 依赖安装失败:检查
requirements.txt是否正常
欢迎提交 Issue 和 Pull Request!
如果你有好的想法或发现了 Bug,请:
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
本项目采用 MIT License 开源协议。
如果这个项目对你有帮助,请给一个 Star ⭐️
Made with ❤️ by GeYugong