yumao f166d1e504 fix: LLM 客户端自建大超时 Client,绕开 SDK 默认 60s unary 超时
CURSOR_MODEL=auto 时后端首 token 常超过 SDK 默认 unary_timeout,
自建带 DAILY_CURSOR_UNARY_TIMEOUT(300s)/DAILY_CURSOR_STREAM_TIMEOUT(900s)
的 Client 并显式传入 Agent.prompt,finally 中关闭释放资源。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-23 17:58:09 +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
2026-07-02 11:31:16 +08:00

skills-hot-daily

Skills / GitHub 早报推送(企微 Webhook

项目结构

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/

早报推送

cd d:\LY\diy\daily-robots
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=24 · DAILY_WECOM_AI_NEWS=10 · DAILY_WECOM_CN_AI_NEWS=10

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

类别 覆盖
AI 专业媒体 量子位
综合科技 36氪、雷锋网、Google News 中文

生成架构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
CURSOR_API_KEY=cursor_...
CURSOR_MODEL=composer-2.5
DAILY_CURSOR_CWD=d:\LY\diy\daily-robots
文件 说明
output/YYYY-MM-DD.trends.json Step1 趋势分析结果
skills/daily-agent/SKILL.md Agent 工作流规范
  • 完整版 YYYY-MM-DD.md 仍为数据表格归档;企微版由 Agent 直接写 Markdown
  • Agent 失败自动回退 classic,不影响 run-daily.ps1

定时推送:

  • 常驻调度(推荐)python -m daily schedule.\run-scheduler.ps1(默认 08:50 生成、09:00 推送,见 DAILY_SCHEDULE_*
  • Windows 任务计划:.\register-daily-task.ps1
  • Cursor/loop 1d(时间会漂移,仅临时用)

其他推送方案

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

注意事项

  • 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%