AI 每日报告 Skill
目标
- - 自动抓取最近 24 小时内的 AI 相关新闻(约 5 条)
- 拉取 GitHub 上最近 24 小时星增量最高、且星数>10k 的优秀开源 AI 项目(约 3 条)
- 将信息整理成 Markdown 报告
- 用 SVG 生成一页可视化报告页面
- 将 SVG 转为 PNG 并通过 Feishu 把图片发送给用户
工作流概述
- 1. 抓取新闻 –
scripts/fetch_news.py 使用公开的 RSS/新闻 API,返回 JSON 列表 [{title, link, source, date}]。 - 抓取项目 –
scripts/fetch_top_projects.py 调用 GitHub Search API(需要 GITHUB_TOKEN 环境变量),返回 [{name, html_url, stars, description}]。 - 生成报告 –
scripts/generate_report.py 接收新闻+项目数据,生成 report.md 同时渲染 report.svg(基于 Jinja2 SVG 模板 references/report_template.svg)。 - SVG→PNG –
scripts/svg_to_png.py 调用 rsvg-convert(或 magick convert)把 report.svg 转成 report.png。 - 发送 –
scripts/send_report.py 使用 Feishu doc API (feishu_doc action=upload_file) 把 PNG 作为文件上传到当前会话并返回链接。
触发方式
- - 自然语言触发(聊天): 当用户说出以下任意词句时,Skill 自动启动:
- “生成 AI 日报”
- “帮我做 AI 资讯报告”
- “每日 AI 报告”
- - 定时触发(cron): 可以在
HEARTBEAT.md 或系统 cron 中调用 scripts/run_daily_report.sh,该脚本内部执行同样的 pipeline 并使用 feishu_doc 发送给预设的聊天 ID(可通过环境变量 FEISHU_CHAT_ID)
资源结构
CODEBLOCK0
示例调用(聊天)
用户: 生成 AI 日报
OpenClaw 读取 description,匹配成功 → 加载 SKILL.md,按上述步骤执行。最终在聊天中返回一条包含 PNG 报告的消息,例如:
已为您生成今日 AI 报告,请查收附件。
(图片作为附件发送)
参考文档
- -
references/report_template.svg – SVG 布局模板,使用 Jinja2 变量 {{date}}, {{news}}, {{projects}}。 - INLINECODE26 – GitHub Search API 使用说明。
- INLINECODE27 – 常用 AI 新闻 RSS 源列表。
常见问题
- - 需要 GitHub Token 吗? 是的,请在
~/.openclaw/env 或系统环境变量中设置 GITHUB_TOKEN。 - 每日运行在哪里配置? 在
HEARTBEAT.md 添加行 run: /home/ft/.openclaw/workspace/skills/ai-daily-report/scripts/run_daily_report.sh,或者使用系统 cron。 - 如果 Feishu 上传失败怎么办?
send_report.py 会捕获错误并返回文字提示,建议检查 FEISHU_CHAT_ID 是否正确,以及机器人的文件上传权限。
AI 每日报告 Skill
目标
- - 自动抓取最近 24 小时内的 AI 相关新闻(约 5 条)
- 拉取 GitHub 上最近 24 小时星增量最高、且星数>10k 的优秀开源 AI 项目(约 3 条)
- 将信息整理成 Markdown 报告
- 用 SVG 生成一页可视化报告页面
- 将 SVG 转为 PNG 并通过 Feishu 把图片发送给用户
工作流概述
- 1. 抓取新闻 – scripts/fetchnews.py 使用公开的 RSS/新闻 API,返回 JSON 列表 [{title, link, source, date}]。
- 抓取项目 – scripts/fetchtopprojects.py 调用 GitHub Search API(需要 GITHUBTOKEN 环境变量),返回 [{name, htmlurl, stars, description}]。
- 生成报告 – scripts/generatereport.py 接收新闻+项目数据,生成 report.md 同时渲染 report.svg(基于 Jinja2 SVG 模板 references/reporttemplate.svg)。
- SVG→PNG – scripts/svgtopng.py 调用 rsvg-convert(或 magick convert)把 report.svg 转成 report.png。
- 发送 – scripts/sendreport.py 使用 Feishu doc API (feishudoc action=uploadfile) 把 PNG 作为文件上传到当前会话并返回链接。
触发方式
- - 自然语言触发(聊天): 当用户说出以下任意词句时,Skill 自动启动:
- “生成 AI 日报”
- “帮我做 AI 资讯报告”
- “每日 AI 报告”
- - 定时触发(cron): 可以在 HEARTBEAT.md 或系统 cron 中调用 scripts/rundailyreport.sh,该脚本内部执行同样的 pipeline 并使用 feishudoc 发送给预设的聊天 ID(可通过环境变量 FEISHUCHAT_ID)
资源结构
ai-daily-report/
├── SKILL.md # 本文件
├── scripts/
│ ├── fetch_news.py
│ ├── fetchtopprojects.py
│ ├── generate_report.py
│ ├── svgtopng.py
│ ├── send_report.py
│ └── rundailyreport.sh # 用于 cron 调用(可选)
└── references/
└── report_template.svg # Jinja2 SVG 模板
示例调用(聊天)
用户: 生成 AI 日报
OpenClaw 读取 description,匹配成功 → 加载 SKILL.md,按上述步骤执行。最终在聊天中返回一条包含 PNG 报告的消息,例如:
已为您生成今日 AI 报告,请查收附件。
(图片作为附件发送)
参考文档
- - references/reporttemplate.svg – SVG 布局模板,使用 Jinja2 变量 {{date}}, {{news}}, {{projects}}。
- references/githubsearch.md – GitHub Search API 使用说明。
- references/rss_news.md – 常用 AI 新闻 RSS 源列表。
常见问题
- - 需要 GitHub Token 吗? 是的,请在 ~/.openclaw/env 或系统环境变量中设置 GITHUBTOKEN。
- 每日运行在哪里配置? 在 HEARTBEAT.md 添加行 run: /home/ft/.openclaw/workspace/skills/ai-daily-report/scripts/rundailyreport.sh,或者使用系统 cron。
- 如果 Feishu 上传失败怎么办? sendreport.py 会捕获错误并返回文字提示,建议检查 FEISHUCHATID 是否正确,以及机器人的文件上传权限。