news 2026/9/9 19:23:23

如何用 last30days-skill doctor 检查哪个数据源没在正常工作并拿到修复建议?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何用 last30days-skill doctor 检查哪个数据源没在正常工作并拿到修复建议?

如何用 last30days-skill doctor 检查哪个数据源没在正常工作并拿到修复建议?

【免费下载链接】last30days-skillAI agent skill that researches any topic across Reddit, X, YouTube, HN, Polymarket, and the web - then synthesizes a grounded summary项目地址: https://gitcode.com/GitHub_Trending/la/last30days-skill

当你跑完一次 last30days-skill 研究、发现某个平台(比如 X 或 TikTok)的内容明显偏少甚至完全没有时,最直接的排查手段是引擎自带的doctor健康检查命令。它会逐源输出一份四状态审计,并对每个没正常工作的数据源给出一行可执行的修复建议——文档把它总结为回答四个问题:"什么可以开、什么已经开了、什么在工作、什么不工作"。适用前提:已按项目说明安装 skill(skills/last30days/目录可用),且系统有 Python 3.12+ 解释器。

完整命令说明见 CONFIGURATION.md 的 "Health check (doctor)" 章节,agent 侧的使用约定见 SKILL.md。

准备:确认 Python 版本

引擎要求 Python 3.12+。执行任何last30days.py命令前先确认版本:

python3 -c 'import sys; raise SystemExit(0 if sys.version_info >= (3, 12) else 1)' && echo OK

输出OK即可继续。如果报错,说明系统 Python 低于 3.12,需要安装 Python 3.12+(SKILL.md 给出的对应系统是:macOS 用brew install python@3.12,Windows 用winget install Python.Python.3.12,Linux 用sudo apt install python3.12)。如果解释器不在python3,可以把路径放到环境变量LAST30DAYS_PYTHON里,下面的命令都遵循这个约定。

运行基础审计:一条命令列出每个数据源的状态

在仓库根目录执行:

python3 skills/last30days/scripts/last30days.py doctor

(在支持斜杠命令的 agent 环境中也可以用/last30days doctor。)

输出是文本形式的四状态审计,每个数据源一行,另有两个辅助块:

  • 四状态WORKING(本次/上次运行已验证,或免密钥常开源)、TURNED ON - UNVERIFIED(已配置/已选但还没有运行证据)、NOT WORKING(已配置但失败,或上次运行出错)、COULD BE ON(可用但尚未配置);
  • CLI-health 块:对需要下载二进制(如 yt-dlp、digg-pp-cli)的源检查其是否在 PATH 上;
  • backup/comment 缩进子行:展示 Reddit、YouTube 等源的备用路径与评论区子通道状态。

你要找的问题源就在NOT WORKING行上——文档明确说明每个未正常工作的源会附 "an exact fix"(一条精确修复),例如缺哪个 key、哪个 CLI 不在 PATH、cookie 过期等。找到对应行后按该行给出的 fix 操作即可,不需要自己猜根因。

几条重要的行为约定,判断输出时有用:

  • 报告问题也算成功运行:退出码恒为 0,不要因为退出码为 0 就以为全部正常,要看审计状态本身;
  • 不读浏览器 cookie,不打印任何密钥值:key 的存在性只以布尔值呈现,输出可以直接分享;
  • 带缓存的运行(见下文)在文本输出末尾有一行generated: … (cached|live),告诉你这份报告是缓存还是实时生成的。

三种模式:预测、实测、事后诊断

doctor有三个按需模式,对应排查的三个不同时机:

1. 实测确认:doctor --probe

基础doctor读的是配置和上次运行留下的证据;如果你怀疑某个源"配好了但实际不通",用--probe跑一次有界实测:

python3 skills/last30days/scripts/last30days.py doctor --probe

边界是明确划定的:probe 只打免费 HTTP 端点(Reddit、Hacker News、Polymarket、GitHub)加免密钥 CLI;从不探测按次计费的源(X、TikTok、Instagram、Threads 等),因此不消耗 ScrapeCreators 额度、不会触发鉴权限流。每个源并发探测并受每源截止时间约束(LAST30DAYS_DOCTOR_PROBE_TIMEOUT,默认 10 秒),慢源不会卡住命令。

一个值得记住的联动规则:当没有新鲜运行可供参考时,普通的doctor会自动触发同样的有界 probe——也就是说你平时裸跑doctor就已经在自动做这件事,--probe是显式版本。

2. 事后诊断:doctor --postmortem

"跑完了但结果偏少"是 troubleshooting 的高频场景。这时doctor --postmortem正是为此设计:它读取上一次运行的last-report.json(不限时间,输出会标注),逐源报告实际发生的事——Failed / Partial / Succeeded / Skipped,带细节与修复提示:

python3 skills/last30days/scripts/last30days.py doctor --postmortem

不做任何网络调用,纯离线读缓存报告,所以可以放心在任何时候运行。SKILL.md 对两个方向的区分值得记一下:普通doctor预测的是"跑之前配置是否健康",--postmortem报告的是"上一次实际哪里坏了"。运行报告里## Partial CoverageReport.source_status字段(状态包括partialrate-limitedauth-failedunreachabletimeoutschema-driftskipped-unconfigurederror等)也描述同一批事实——这些状态意味着"这次运行没能证明该源是安静的",而不是"该源没内容"。

3. 机器可读:doctor --json

需要把结果接进脚本时用--json拿机器契约:

python3 skills/last30days/scripts/last30days.py doctor --json

--json输出中每个源带tierstatusbackendsactive_backendfixrequires等字段;顶层还有from_cachegenerated_at标明报告来源与生成时间。

用缓存降低重复检查成本:--cached与 TTL

每次实时doctor都会把 JSON 结果写入~/.config/last30days/doctor-cache.json(遵循LAST30DAYS_CONFIG_DIR)。--cached在报告未过期时直接返回这份缓存:

python3 skills/last30days/scripts/last30days.py doctor --cached

新鲜度窗口由LAST30DAYS_DOCTOR_TTL控制,单位秒,默认900(15 分钟);设为0则每次--cached都实时重跑。缓存过期、缺失或损坏时会自动回落为实时运行并重写缓存。

还有一层自动失效机制:缓存里带配置指纹(哪些凭据存在、LAST30DAYS_X_BACKEND/LAST30DAYS_REDDIT_BACKEND的 pin 值、INCLUDE_SOURCES)。因此你新增/删除一个 key、改一个 pin 或切换选开源之后,下一次--cached调用会自动转实时运行,不需要手动清缓存。裸跑(不带--cached)的doctor则永远实时运行并刷新缓存。

排查时可以用--cached --json做低成本复查:SKILL.md 建议依赖登录态源(cookie 的 X、ScrapeCreators 的 Reddit 回补)做研究前先查一次缓存报告,只有缓存过期或上次报告了登录态源降级时才重跑实时doctor

读报告:修复建议如何对应到你的配置

审计中每个源的fix行来自统一的修复词表(实现见 prescriptions.py)。常见形态举例(均来自项目文档实际给出的修复文案):

  • 免密钥源之外的按次计费源未配 key → 提示补SCRAPECREATORS_API_KEY
  • 需要下载二进制的源 → CLI-health 块指出二进制缺失或不在 PATH(例如digg-pp-cli需在 agent 子进程 PATH 上,典型位置$HOME/.local/bin);
  • 可选源未选开 → 提示 "add {source} to INCLUDE_SOURCES (or request it via --search {source})";
  • X 后端未 pin 时的提示示例:"pin LAST30DAYS_X_BACKEND=grok to enable, then fix the store"。

与 doctor 直接相关的环境变量,完整表格见 CONFIGURATION.md:

变量作用
LAST30DAYS_DOCTOR_TTL--cached新鲜度窗口(秒),默认9000表示每次都实时跑
LAST30DAYS_DOCTOR_PROBE_TIMEOUT每源 probe 截止时间(秒),默认10
LAST30DAYS_X_BACKENDpin X 后端(bird/xai/xurl/xquik/grok);doctor 会渲染 pin 并预测"下次将使用哪个"。未 pin 时的自动链是 bird → xai → xurl → xquik,grok 仅 opt-in

SKILL.md 补充了一条与 X 相关的读法:当 X 在可用源列表里时,应把报告的sources.x.active_backend告知用户(例如 "X will use: bird");若 doctor 报告 grok 后端degraded且带过期时间戳,正确表述是 "Grok 会话已于 {timestamp} 过期,运行时会尝试刷新;若刷新失败,执行grok login --device-auth",而不是简单说 "Grok CLI 未登录"——过期 access_token 不等于 refresh_token 已失效,只有运行时报auth_revokedinvalid_grant才需要真正重新登录。

边界与限制

  • probe 不覆盖计费源:X、TikTok、Instagram、Threads 等永远不会被 live 探测,所以WORKING对这些源的判定依赖配置与上次运行证据,不要指望 probe 给出它们的实时连通性;
  • --postmortem依赖上一次运行:它只是读last-report.json,如果从未跑过研究,没有可诊断的对象,此时应先用普通doctor查配置;
  • TURNED ON - UNVERIFIED不是故障:它表示已配置但还没有运行证据,下一步是跑一次真实研究让证据落地;
  • 网络行为可预期:带新鲜运行证据的普通doctor--cached--json均不发网络请求;会发请求的只有--probe及无新鲜运行时自动触发的 probe,且严格限定在免费端点与免密钥 CLI。

修复完成后,重新运行一次doctor(或研究跑完后的doctor --postmortem),确认该源从NOT WORKING变为WORKING、且末行generated: … (live)表明是实时结果,排查即闭环。

【免费下载链接】last30days-skillAI agent skill that researches any topic across Reddit, X, YouTube, HN, Polymarket, and the web - then synthesizes a grounded summary项目地址: https://gitcode.com/GitHub_Trending/la/last30days-skill

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/9 19:23:12

灾备国产化替换实战:平滑迁移、成本优化与容灾演练指南

干灾备这块时间长了,会发现一个规律:灾备系统最怕的不是出故障,而是被要求“替换”。尤其最近几年,灾备国产化替换的需求越来越多,大家一听到“替换”两个字,第一反应就是窗口紧张、数据一致性难保证、新工…

作者头像 李华
网站建设 2026/9/9 19:19:48

基于Spring Boot和微信小程序的驾考在线学习与测试系统设计

又到了毕设选题的季节,驾考在线学习与测试系统这个题目看着不起眼,实际上每年都会遇到不少学生选它。原因也很简单:需求真实、业务边界清晰、微信小程序加Spring Boot的组合既能体现全栈能力,又不会难到做不出来。驾考理论考试这件…

作者头像 李华
网站建设 2026/9/9 19:17:48

ICLR 2026目标检测新范式:结构生命周期与物理引导训练

1. 这不是论文列表,而是一份目标检测研究者的手写备忘录ICLR 2026 目标检测方向的接收论文清单,表面看是一串标题和作者名,但真正有价值的是藏在标题背后的研究动向、技术取舍与现实约束。我连续三年参与ICLR审稿,也带过多个工业界…

作者头像 李华
网站建设 2026/9/9 19:17:39

SpringBoot+Vue+Node.js实现家教服务管理系统全解析

从朋友家里给孩子找家教这件事说起吧。加了三个家长群,翻了几十条聊天记录,问了一圈熟人,最终约了一位老师试听,结果发现老师的时间跟孩子学校的日程冲突,排课全靠本子记,课时包还剩几节完全没人说得清。那…

作者头像 李华