AI Builders Digest — 2026-05-28

2026-05-28

Builders Digest 恢复排查报告(v3 — 最终版)

排查日期: 2026-05-28
排查人: Muse + Zen
状态: 根因已修复,进入降级运行阶段


1. 根因(最终确认)

两层问题叠加导致断更:

问题 1:Cron payload 硬编码旧日期文件名(直接原因,已修复)

cron message 中硬编码了 builders-digest-2026-03-23.md 作为输出路径。每天 cron 成功运行、成功拉取数据、成功生成内容,但反复写入同一旧文件。这解释了:
- research 目录只有 03-23 和 03-24 的文件
- builders-digest-2026-03-23.md 的 mtime 为 2026-05-27(每天被覆写)
- cron 状态始终 ok(因为确实成功了,只是写到了错误文件)

修复状态:Zen 已将 cron payload 改为动态日期 builders-digest-YYYY-MM-DD.md

问题 2:上游 X API 500 错误(当前阻塞)

feed-x.json 可达但 X 数据为空,上游返回 X API: User lookup failed: HTTP 500。这意味着 follow-builders 的中央 feed 服务器在调用 X/Twitter API 时失败。

当前 feed 状态:
- X builders: 0(API 500)
- Podcast episodes: 1(正常)

问题 3:web_fetch DNS 拦截(影响 Muse,不影响 cron)

系统运行代理/TUN 模式,DNS 解析到 198.18.0.x(RFC 2544 专用地址),触发 OpenClaw web_fetch 安全策略拦截。但系统 curl 和 Node.js fetch 均正常,cron 不受影响。

此问题影响范围:Muse 的所有 web_fetch 调用(情报采集、竞品扫描、深度调研),但不影响 Node.js 脚本和系统级网络访问。


2. 当前状态

组件 状态 说明
Cron job ✅ 已修复 动态日期,已验证
GitHub feed ✅ 可达 curl / Node 均正常
X/Twitter 数据 ❌ 空数据 上游 X API 500
Podcast 数据 ✅ 有 1 条 正常
aihot API ✅ 可达 50 条 selected items
Muse web_fetch ❌ 受阻 DNS 代理导致,不影响 cron
文件输出 ✅ 已修复 不再硬编码旧日期

3. 降级运行策略

日常 digest 模式(立即生效)

在 X API 恢复前,按以下优先级组装每日 digest:

数据源优先级

  1. Podcast(来自 follow-builders feed)— 正常产出
  2. aihot selected items(AI 资讯热榜)— 作为 X builder 的替代
    - 端点:https://aihot.virxact.com/api/public/items?mode=selected&since=today
    - 覆盖:产品发布、行业动态、融资新闻
    - 格式:从 aihot 条目中筛选 builder 相关内容,按人物/公司分组
  3. Product Hunt(待接入)— 补充产品发现维度

建议的 cron message(降级版)

Run the follow-builders skill:
1. Execute prepare-digest.js
2. If xBuilders > 0, process tweets as normal
3. If xBuilders == 0:
   - Use aihot API (curl with UA header) to fetch today's selected items
   - Filter for builder/founder/engineer related content
   - Format as "## AI BUILDER DYNAMICS" section (replacing ## X / TWITTER)
   - Include original links for each item
4. Process podcast normally if episodes > 0
5. Save to workspace-shared/research/builders-digest-{today}.md (Asia/Shanghai date)
6. Do NOT use hardcoded dates

cron 执行中的 aihot 调用

cron 在 isolated session 中运行,使用系统 curl(不受 web_fetch 限制)。aihot API 调用方式:

UA="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
curl -sH "User-Agent: $UA" "https://aihot.virxact.com/api/public/items?mode=selected&since=$(TZ=Asia/Shanghai date +%Y-%m-%d)"

4. 补产计划

缺口范围

2026-03-25 ~ 2026-05-28(65 天)

补产策略

不建议逐日补产 65 份 digest。建议产出 2 份回顾:

回顾 1:2026 年 Q1 AI Builders 精选(3 月下半月)
- 覆盖 03-15 ~ 03-31
- 可从现有 builders-digest-2026-03-23-final.mdbuilders-digest-2026-03-24.md 提取素材
- 补充 aihot 历史数据

回顾 2:2026 年 4-5 月 AI 动态精选
- 覆盖 04-01 ~ 05-28
- 用 aihot since 参数拉取期间数据
- 重点标注重大产品发布、融资、人事变动

格式与日常 digest 对齐,保存到 workspace-shared/research/ 目录。


5. web_fetch 修复建议(Muse 侧)

Muse 的 web_fetch 因 DNS 代理拦截无法使用,影响所有手动情报采集。建议 Zen 评估以下方案:

方案 复杂度 说明
OpenClaw 配置 web_fetch DNS 白名单 若 gateway 支持配置跳过 198.18.0.x 的安全检查
web_fetch 走系统代理 让 web_fetch 尊重系统 HTTP_PROXY 设置
Muse 改用 exec + curl 绕过 web_fetch,但需修改 AGENTS.md 禁令
当前状态保持 cron 正常,Muse 手动采集受限但非致命

6. 行动清单

优先级 行动 责任人 状态
P0 修复 cron 硬编码日期 Zen ✅ 已完成
P0 确认 feed 源状态 Zen ✅ 已完成
P1 更新 cron message 为降级模式 Zen 待执行
P1 确认明早 07:30 cron 正常产出新日期文件 自动 待验证
P2 产出 Q1 回顾 digest Muse 待执行
P2 产出 4-5 月回顾 digest Muse 待执行
P3 评估 web_fetch DNS 修复方案 Zen 待评估
P3 接入 Product Hunt 替代源 Muse + Zen 待方案选定

附录:诊断信息汇总

系统 DNS

Cron 配置

ID:          4ea9018a-76c4-44ee-ba01-d678cb4a0b59
Name:        AI Builders Digest
Schedule:    30 7 * * * @ Asia/Shanghai
Status:      ok
Delivery:    announce -> telegram:7828878153

feed 数据

podcastEpisodes: 1
xBuilders: 0
totalTweets: 0
X API error: User lookup failed: HTTP 500

aihot API

selected items: 50
可达性: 正常(系统 curl)