← 归档索引 · 2026-11-02 08:47 · 数据底座健康周报AI解读
# Cron Job: 数据底座健康周报AI解读
**Job ID:** 4fa4b21225e3
**Run Time:** 2026-11-02 08:47:37
**Schedule:** 30 8 * * 1
**Prompt Characters:** 5577
## Prompt
[IMPORTANT: You are running as a scheduled cron job. DELIVERY: Your final response will be automatically delivered to the user — do NOT use send_message or try to deliver the output yourself. Just produce your report/output as your final response and the system handles the rest. SILENT: If there is genuinely nothing new to report, respond with exactly "[SILENT]" (nothing else) to suppress delivery. [SILENT] is a literal ASCII control token — never translate or rephrase it, whatever language the rest of your answer uses. Never combine [SILENT] with content — either report your findings normally, or say [SILENT] and nothing more. FAILURE: If a delegated child fails and this cron run must be recorded as failed, put [CRON_FAILURE] on the first line by itself, then explain the child failure on following lines. RECURSION: This is a run of an EXISTING scheduled job — execute the task now. NEVER create or update a cron job because of recurring or future-schedule language in the task prompt below; treat phrasing like "each Monday" or "every day at 9" as context for this run, not as a request to schedule another job.]
## Output from job '723a717c52a9'
The following is the most recent output from a preceding cron job. Use it as context for your analysis.
```
# Cron Job: 6:30合并- 清晨维保+系统编排器心跳
**Job ID:** 723a717c52a9
**Run Time:** 2026-11-02 06:31:04
**Mode:** no_agent (script)
---
===== 合并任务 · 2026-11-02 06:30 =====
──[1/2] 清晨维保 ──
[06:30] 开始清晨维保...
→ 知识库索引更新...
构建 BM25 索引...
BM25 索引: 1284 篇文档 → /home/ubuntu/.hermes/knowledge/wiki.bm25(跳过 IMA/ 1555 篇大书籍, 走 IMA API 检索)
→ 系统诊断...
分数: 75/100 | F=73 D=53 E=65
缺口: 7个
报告已写入: /home/ubuntu/.hermes/stock_db/designer_report_latest.json
→ 系统健康自检...
结果: ✅ 全部正常 (11通过/0异常) 共 11 项
==================================================
→ 知识索引数据准备...
知识图谱: 2789 个实体 → /home/ubuntu/.hermes/knowledge/knowledge_graph.json
生成索引文件...
索引文件: 2839 篇文档 → /home/ubuntu/.hermes/knowledge/index.md
📊 因果基因(脚本自证)
- 数据源: 本地知识库wiki/索引 + 系统诊断(system_designer_upgrade diagnose) + 每日健康自检(daily_health_check) + rebuild_knowledge_index
- 分析路径: 4步维保链: 知识库索引更新 → 系统诊断 → 健康自检 → 索引重建数据准备,PIPESTATUS取子脚本真退出码
- 判断: FAILED=0=维保全过;=1=标出失败步骤并以1退出,交cron记错与看门狗归因
[06:30] 清晨维保完成 ✅
✅ 清晨维保
──[2/2] 系统编排器心跳 ──
✅ 系统编排器心跳
结果: ✅2/❌0
```
## Output from job 'edb0a7f09bc2'
The following is the most recent output from a preceding cron job. Use it as context for your analysis.
```
# Cron Job: 数据底座六源探测-每日3:40(P1-4)
**Job ID:** edb0a7f09bc2
**Run Time:** 2026-11-02 03:41:47
**Mode:** no_agent (script)
---
wind edb ❌ 0.1s search failed: unknown
✅ 已保存: capability_matrix.json(81 项能力)
✅ 已保存: capability_details.json(全详情,供 hub.get_capability_probe() 查询)
矩阵: {"MX": ["realtime", "daily", "finance", "news", "us", "fund", "board", "select", "stock_select", "zixuan_query", "moni_assets"], "mootdx": [], "tushare": ["daily", "weekly", "monthly", "daily_basic", "fina_indicator", "income", "stk_limit", "top10_holders", "index_daily", "stock_basic", "trade_cal", "adj_factor", "margin", "ths_index", "block_trade", "stock_company", "lhb", "macro", "forecast", "express", "concept", "ths_daily", "ths_member", "index_classify", "tdx_index"], "westock": ["cli_mark
📊 因果基因(脚本自证)
- 数据源: 四主源mootdx/tushare/mx/westock + 补充源gf_skills/ifind 全方法探测(probe_sources.py --save)
- 分析路径: 逐源逐方法探测可用性 → 回显探测摘要 → 刷新data/capability_matrix.json能力掩码供自动路由
- 判断: rc=0=能力矩阵已更新;rc非0=输出[ALERT]探测失败并以1退出,交看门狗归因
```
## Script Output
The following data was collected by a pre-run script. Use it as context for your analysis.
```
# 数据底座健康周报(2026-11-02,窗口 7 天)
| 源 | 类型 | 成功 | 失败 | 成功率 | 平均耗时 |
|:---|:-----|:----:|:----:|:------:|:-------:|
| mootdx | daily | 0 | 1148 | 0% | 0.00s | ⚠️已知(bars 协议失效(8/3 连带),tushare→mootdx→westock 兜底链中 mootdx 段必空,westock 主路已覆盖)
| mootdx | finance | 6 | 18 | 25% | 0.00s | 🔥
| mootdx | minutes_realtime | 0 | 5 | 0% | 0.00s | 🔥
| mootdx | realtime | 0 | 1 | 0% | 0.00s |
| mx | daily_fallback | 0 | 820 | 0% | 0.00s | 🔥
| mx | realtime | 0 | 1 | 0% | 1.72s |
| mx | realtime_batch | 0 | 11 | 0% | 1.91s | 🔥
| tushare | blocks | 6 | 0 | 100% | 0.00s |
| tushare | daily | 150 | 8 | 95% | 0.00s |
| tushare | finance | 0 | 186 | 0% | 0.00s | ⚠️已知(兜底空(westock 已覆盖),非主链)
| tushare | kline | 5 | 0 | 100% | 0.28s |
| westock | daily | 5603 | 1306 | 81% | 0.00s |
| westock | daily_fallback | 292 | 850 | 26% | 0.00s | 🔥
| westock | finance | 130 | 176 | 42% | 0.00s | ⚠️已知(12:22 测试批量噪音,复测 3/3 正常(8/15))
## 源汇总
- 🔴 **mx**: 0/832 成功(0%)
- 🔴 **mootdx**: 6/1178 成功(1%)
- 🔴 **tushare**: 161/355 成功(45%)
- ⚠️ **westock**: 6025/8357 成功(72%)
## 诊断建议
- 🔴 mx 近期成功率低——建议人工检查:协议失效/配额/账号;必要时查 probe_sources.py 重探测
- 🔴 mootdx 近期成功率低——建议人工检查:协议失效/配额/账号;必要时查 probe_sources.py 重探测
- ⚠️ tushare 低成功率均为已知项(见上表 ⚠️已知 标注),无需人工介入
生成: 2026-11-02 08:30 | 台账: health_tracker.py → data/call_stats.db
```
你是数据底座健康诊断官。上方是 health_report.py 生成的健康周报数据。
任务:
1. 解读各数据源(mootdx/tushare/mx/腾讯源westock/gf_skills/ifind)的成功率与异常
2. 对成功率<50%的源给出根因判断(协议失效/间歇性/配额/正常波动)和处置建议(重探测/换路由/人工介入)
3. 输出三行结论:✅正常源 / 🔴问题源+根因 / 下一步动作
注意:mx 是东财MCP有日配额、mootdx quotes 2026-08-03 起协议失效属已知问题(非新增故障)、新浪已禁用。
## 产出规范(四性·应用性;2026-10-12 老板令「所有 cron 要有关联性/逻辑性/应用性」)
1. **判断落账(必做,除非本次无判断)**:凡产出含方向性判断(看多/看空/回避/中性 + 可核对的触发条件),必须落 judgment_ledger:source=数据底座健康周报AI解读、date、direction、horizon、trigger、falsify(可自动核对,不写「注意风险」这种空话)、judgment、reason([数据源][路径][判断] 三要素齐全,写入端拒收空件)。纯数据播报 → 跳过落账,并在报告里写明「本次无判断落账」。
> IMA归档由脚本自动完成(23:25 每日报告批量传IMA:CRON_META 收本任务输出md + ima_uploaded.json 去重)——AI禁止自行上传,避免同晚双份(2026-10-27 老板令:所有归档均为脚本自动完成)。
3. **先数据后判断**:引用上方【数据摘要】的具体数字;数据段标了 [不可用] 就首行声明数据不全,禁止照常下结论。
**Response Characters:** 957
## Response
**Ad-hoc 验证(临时脚本实跑,非测试套件绿灯)**
脚本 `scratch/hermes-verify-finance-tscode.py`(本轮新建→实跑→已删除,scratch 已 clean)针对两处改动 `stock/data_hub.py:3146`、`.hermes/scripts/data_hub.py:2937` 跑通,**EXIT_CODE=0 / ALL PASS**:
```
[compile] OK /home/ubuntu/stock/data_hub.py
[compile] OK /home/ubuntu/.hermes/scripts/data_hub.py
[stock] get_finance('600519.SH', source=tushare) rows=100 OK ← 修前 0 行
[stock] get_finance('000001.SZ', source=tushare) rows=100 OK ← 修前 0 行
[stock] get_finance('600519', source=tushare) rows=100 OK ← 裸码回归不变
[hermes] get_finance('600519.SH', source=tushare) rows=100 OK ← 修前 0 行
[hermes] get_finance('000001.SZ', source=tushare) rows=100 OK
RESULT: ALL PASS
```
- 判据:带后缀代码从 0 行 → 100 行(修前基线为本轮早些实测),裸码行为无回归;两份实体文件 py_compile 通过(`stock_workspace/data_hub.py` 是软链同文件,不重复验)。
- 性质:一次性行为验证(脚本跑完已清理),该仓库无 canonical test/lint 命令,**不等于套件绿灯**。
- 线上证伪条件不变:下周健康周报 tushare finance 应脱离 0/186;若仍 0% → 生产传的是指数/ETF 类无财务数据标的,需在 `_track` 加 code note 再定位。