2026-07-14 10:32:39 +08:00
2026-07-02 11:31:16 +08:00
2026-07-02 11:31:16 +08:00
2026-07-02 11:31:16 +08:00
2026-07-02 11:31:16 +08:00
2026-07-02 11:31:16 +08:00
2026-07-02 15:10:37 +08:00
2026-07-02 11:31:16 +08:00
2026-07-02 11:31:16 +08:00
2026-07-02 11:31:16 +08:00
2026-07-02 11:31:16 +08:00
2026-07-02 11:31:16 +08:00
2026-07-02 11:31:16 +08:00
2026-07-02 11:31:16 +08:00

skills-hot-daily

Skills / GitHub 早报推送 + 企微对话机器人(同一仓库、两套企微接入)。

项目结构

skills-hot-daily/
├── README.md
├── .env.example              # 早报 webhook、GitHub 等
├── requirements.txt          # 早报 Python 依赖
├── run-daily.ps1             # 生成 + 推送一条龙
├── send-wecom.ps1            # 仅推送
├── daily/                    # 早报 Python 包
│   ├── __main__.py           # python -m daily [generate|push]
│   ├── config.py
│   ├── generate.py
│   ├── report_data.py        # JSON 中间层
│   ├── cursor_editor.py      # Cursor 编辑层
│   ├── llm_client.py
│   ├── localize.py           # 仅中文化Tier A
│   ├── format_wecom.py
│   ├── webhook.py
│   ├── news/                 # 国际 AI 时讯 RSS
│   │   ├── feeds.py
│   │   └── fetch.py
│   └── github/
│       ├── auth.py
│       ├── search.py
│       └── trending.py
├── output/                   # YYYY-MM-DD.md / .wecom.md / .data.json / .editorial.json
├── skills/daily-editor/      # 早报 Cursor 编辑 Skill
│   └── SKILL.md
├── logs/
├── .cache/
└── bot/                      # 企微 API 模式对话机器人(独立 venv
    ├── main.py
    ├── skills_service.py
    └── scenarios/
模块 配置文件 启动方式
早报推送 根目录 .envWECOM_WEBHOOK_KEY 等) .\run-daily.ps1
对话 Bot bot/.envWECOM_BOT_ID / SECRET 等) cd botpython main.py

一、早报推送

cd d:\LY\test\tech\skills-hot-daily
pip install -r requirements.txt
copy .env.example .env
.\run-daily.ps1
  • 生成:output/YYYY-MM-DD.md(完整版)、output/YYYY-MM-DD.wecom.md(企微短版)
  • 仅生成:.\run-daily.ps1 -SkipPush
  • 仅推送:python -m daily push output\2026-06-25.wecom.md

Webhook 配置:企微群 → 群机器人 → 添加,将 key= 后的值写入项目根 .env

WECOM_WEBHOOK_KEY=your-key

GitHub 数据源(见 .env.example

来源 说明
GitHub Trending GITHUB_TRENDING_MODE=scrapeapi
新兴 / Topic Search APIGITHUB_TOKEN
Release 可选 GITHUB_REPOS=owner/repo

国际 AI 时讯RSSdaily/news/feeds.py

类别 覆盖
厂商官方 Anthropic、OpenAI、Google、Meta、Microsoft、Mistral、Cursor 等
Agent / LLM 开发者 LangChain、LlamaIndex、Hugging Face、Copilot 等
综合科技媒体 The Verge、TechCrunch、Ars、Wired、MIT TR 等
Newsletter Ben's Bites、Latent Space、Simon Willison、TLDR AI 等
研究 / 论文 arXiv cs.CL/AI/LG、HF Papers
社区讨论 HN、Reddit r/LocalLLaMA / ClaudeAI / ML 等

环境变量:DAILY_AI_NEWS=1 · DAILY_CN_AI_NEWS=1 · DAILY_AI_NEWS_HOURS=72 · DAILY_WECOM_AI_NEWS=10 · DAILY_WECOM_CN_AI_NEWS=8

国内 AI 时讯RSSdaily/news/feeds_cn.py

类别 覆盖
AI 专业媒体 量子位、InfoQ 中文
综合科技 36氪、雷锋网、Google News 中文
开发者社区 掘金(标题 AI 关键词过滤)

生成架构Tier B · Cursor 编辑层)

早报默认走 Python 抓取 + 模板渲染;可选开启 Cursor 做「编辑」:

抓取数据 → output/日期.data.json → Cursor 读 Skill 写 editorial → 模板填字 → .md / .wecom.md
文件 说明
output/YYYY-MM-DD.data.json 结构化榜单(供 LLM 输入)
output/YYYY-MM-DD.editorial.json Cursor 输出的主题、速览、中文描述
skills/daily-editor/SKILL.md 编辑规范语气、JSON 格式)
# 开启 Tier B需 CURSOR_API_KEY 或 DAILY_LLM_API_KEY
DAILY_CURSOR_EDITOR=1
  • 开启后:一次 LLM 调用 生成 theme_line + highlights + 全部中文描述
  • 关闭时(默认):规则主题 + DAILY_ZH_DESC 仅中文化描述
  • LLM 失败自动回退规则模式,不影响推送

生成架构Agent 工作流 · 推荐)

若觉得模板版「榜单堆砌」不友好,可改用 Agent 三步流水线

Python 抓取 → Step1 趋势分析 → Step2 叙事写稿 → Python 分条推送企微
              (.trends.json)    (.wecom.md)
模式 环境变量 企微版风格
classic(默认) 分区榜单 + 模板
editor DAILY_CURSOR_EDITOR=1 模板 + LLM 中文化
agent DAILY_REPORT_MODE=agent 导语 + 信号 + 精选,全中文叙述
DAILY_REPORT_MODE=agent
DAILY_CURSOR_CWD=d:\LY\diy\skills-hot-daily   # 早报 LLM 工作目录(与 bot 的 CURSOR_CWD 独立)
文件 说明
output/YYYY-MM-DD.trends.json Step1 趋势分析结果
skills/daily-agent/SKILL.md Agent 工作流规范
  • 完整版 YYYY-MM-DD.md 仍为数据表格归档;企微版由 Agent 直接写 Markdown
  • Agent 失败自动回退 classic,不影响 run-daily.ps1

定时推送Windows 任务计划程序或 /loop 1d 执行 run-daily.ps1


二、可对话 Skills 助手(企业微信智能机器人)

在企微里 @ 机器人即可:

  • 快查trending 10hot 10搜索 react(本地 skills 数据,秒回)
  • 截图预览preview / 截图(基于 .envCURSOR_CWD 启动前端并发图)
  • 通用任务:任意自然语言需求,由 Cursor Agent 执行并回传结果

1. 创建 API 模式机器人

  1. 企业微信管理后台安全与管理管理工具智能机器人创建机器人
  2. 选择 API 模式创建使用长连接
  3. 记录 Bot IDSecretSecret 只显示一次,请立即保存)
  4. 设置可见范围,将机器人 添加到目标群 或允许成员单聊

普通成员路径:工作台 → 智能机器人 → 手动创建 → API 模式 → 长连接

2. 启动本地服务

cd d:\LY\test\tech\skills-hot-daily\bot
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
playwright install chromium
copy .env.example .env
# 编辑 .envWECOM_BOT_ID / WECOM_BOT_SECRET / CURSOR_API_KEY
python main.py

服务需 常驻运行(本机、服务器或 Docker。长连接模式下机器人进程须在线才能收消息。

3. 路由模式ROUTING_MODE

模式 行为
hybrid(默认) trending/hot/搜索/详情 走本地快查;其余 @ 消息交给 Cursor
cursor 所有消息都交给 Cursor 执行
skills 仅本地 skills 快查(旧行为)

Cursor 任务示例(群里发送):

@test 总结 trending top10并推荐 3 个适合前端团队的 skill
@test 对比 mattpocock/skills 和 obra/superpowers 各有哪些热门 skill
@test 帮我写一段 npx skills add 的安装说明

Cursor 在本机 CURSOR_CWD 目录下运行,默认 d:\LY\test\tech。复杂任务可能需要 110 分钟流式消息会显示「Cursor 正在执行任务…」。

4. 前端截图预览API 模式发图)

项目路径读取 .env 中的 CURSOR_CWD。机器人会:

  1. CURSOR_CWD 检测 package.json,若有 dev 脚本则执行 PREVIEW_DEV_COMMAND(默认 npm run dev
  2. 等待 PREVIEW_PORT(默认 5173)就绪,或用 PREVIEW_URL 直接访问
  3. Playwright 打开页面并截图
  4. 通过 API 模式 上传图片 + 回复 image 消息 到群
命令 说明
preview / 截图 / 预览 访问 http://127.0.0.1:5173/ 并截图
preview /login 指定路径
preview / 3000 指定端口
preview http://127.0.0.1:8080/ 指定完整 URL

多步网页操作(登录、点菜单、再截图)见下一节,不再写死在代码里。

.env 可选配置:

CURSOR_CWD=d:\LY\test\tech
PREVIEW_PORT=5173
PREVIEW_URL=http://127.0.0.1:5173/
PREVIEW_DEV_COMMAND=npm run dev
PREVIEW_STARTUP_TIMEOUT=120

CURSOR_CWD 下暂无前端项目,可先手动启动 dev server或设置 PREVIEW_URL 指向已运行地址。

4b. 网页操作Playwright 步骤引擎)

支持三种方式定义操作流程,无需改 Python 代码

1. 自然语言(企微里直接说)

@test 访问登录页,输入账号密码,点击登录后进入主页,点击智能体管理菜单然后截图

账号密码从 .env 读取({{PREVIEW_LOGIN_USER}} / {{PREVIEW_LOGIN_PASSWORD}}),勿在群里发密码。

2. 场景文件 YAML

bot/scenarios/xiaobao-agent-manage.yaml 示例:

name: xiaobao-agent-manage
steps:
  - goto: /login
  - fill:
      field: 账号
      value: "{{PREVIEW_LOGIN_USER}}"
  - fill:
      field: 密码
      value: "{{PREVIEW_LOGIN_PASSWORD}}"
  - click: 登录
  - wait:
      url: "**/app/**"
  - click: 智能体管理
  - wait: 1500
  - screenshot

触发:@test browser xiaobao-agent-manage

场景搜索路径:bot/scenarios/CURSOR_CWD/.browser-scenarios/、环境变量 BROWSER_SCENARIOS_DIR

3. 消息内 DSL

browser:
  goto /login
  fill 账号 {{PREVIEW_LOGIN_USER}}
  fill 密码 {{PREVIEW_LOGIN_PASSWORD}}
  click 登录
  click 智能体管理
  screenshot

支持的步骤goto · fill · click · wait · screenshot · press

.env 登录与场景配置:

PREVIEW_LOGIN_USER=test_account
PREVIEW_LOGIN_PASSWORD=your_password
# BROWSER_DEFAULT_SCENARIO=xiaobao-agent-manage

5. 支持的快查命令

命令 说明
trending 10 / 趋势 10 近期增长榜 Top N默认 10最大 30
hot 10 / 实时 10 实时热度榜
all 10 / 总榜 10 历史总安装榜
搜索 react / search tdd 关键词搜索
详情 find-skills 单个 skill 详情 + 安装命令
preview / 截图 启动 CURSOR_CWD 前端并截图发群
帮助 命令列表

自然语言(非显式快查命令)会交给 Cursor 处理,例如 @test 查 trending 并写推荐

6. 本地测试(无需企微凭证)

cd d:\LY\test\tech\skills-hot-daily\bot
python -c "from skills_service import handle_command; print(handle_command('trending 5'))"

其他推送方案

方案 适用场景 复杂度
群机器人 webhook 推送到固定群
应用消息 API 推送给指定成员/部门 中(需 corp_id、secret、agent_id
邮件 + 企业微信邮箱 已有 SMTP
PushPlus / Server酱 个人微信中转 低(第三方)

应用消息 API简要

适合「推送给某个人」而非群聊。需在 企业微信管理后台 创建自建应用,调用:

POST https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=TOKEN

消息体支持 text / markdown / news 等。需先 gettoken 再发消息,并维护 access_token 缓存。


注意事项

  • Webhook 不要提交到 Git,只用环境变量
  • 企业微信 markdown 为子集(不支持完整 GitHub 表格语法时可改为文本列表)
  • 单条消息约 4096 字节 上限,send-wecom.ps1 已做截断
Description
No description provided
Readme 910 KiB
Languages
Python 96.6%
PowerShell 2.1%
Shell 1.1%
Dockerfile 0.2%