← 归档索引 · 2026-10-19 08:36 · 数据底座健康周报AI解读
# Cron Job: 数据底座健康周报AI解读
**Job ID:** 4fa4b21225e3
**Run Time:** 2026-10-19 08:36:31
**Schedule:** 30 8 * * 1
**Prompt Characters:** 5898
## 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-10-19 06:31:52
**Mode:** no_agent (script)
---
===== 合并任务 · 2026-10-19 06:30 =====
──[1/2] 清晨维保 ──
[06:30] 开始清晨维保...
→ 知识库索引更新...
构建 BM25 索引...
BM25 索引: 2337 篇文档 → /home/ubuntu/.hermes/knowledge/wiki.bm25
→ 系统诊断...
分数: 76/100 | F=75 D=46 E=65
缺口: 7个
报告已写入: /home/ubuntu/.hermes/stock_db/designer_report_latest.json
→ 系统健康自检...
结果: ✅ 全部正常 (11通过/0异常) 共 11 项
==================================================
→ 知识索引数据准备...
构建 BM25 索引...
BM25 索引: 2337 篇文档 → /home/ubuntu/.hermes/knowledge/wiki.bm25
📊 因果基因(脚本自证)
- 数据源: 本地知识库wiki/索引 + 系统诊断(system_designer_upgrade diagnose) + 每日健康自检(daily_health_check) + rebuild_knowledge_index
- 分析路径: 4步维保链: 知识库索引更新 → 系统诊断 → 健康自检 → 索引重建数据准备,PIPESTATUS取子脚本真退出码
- 判断: FAILED=0=维保全过;=1=标出失败步骤并以1退出,交cron记错与看门狗归因
[06:31] 清晨维保完成 ✅
✅ 清晨维保
──[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-10-19 03:42:03
**Mode:** no_agent (script)
---
wind edb ❌ 0.1s search failed: unknown
✅ 已保存: capability_matrix.json(85 项能力)
✅ 已保存: capability_details.json(全详情,供 hub.get_capability_probe() 查询)
矩阵: {"MX": ["realtime", "daily", "finance", "news", "us", "fund", "board", "select", "stock_select", "zixuan_query", "moni_assets"], "mootdx": ["minutes", "stocks", "block", "finance"], "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_classif
📊 因果基因(脚本自证)
- 数据源: 四主源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-10-19,窗口 7 天)
| 源 | 类型 | 成功 | 失败 | 成功率 | 平均耗时 |
|:---|:-----|:----:|:----:|:------:|:-------:|
| mootdx | blocks | 1 | 0 | 100% | 0.00s |
| mootdx | daily | 0 | 3099 | 0% | 0.00s | ⚠️已知(bars 协议失效(8/3 连带),tushare→mootdx→westock 兜底链中 mootdx 段必空,westock 主路已覆盖)
| mootdx | finance | 19 | 0 | 100% | 0.00s |
| mootdx | minutes_realtime | 1 | 10 | 9% | 0.00s | 🔥
| mootdx | realtime | 0 | 11 | 0% | 0.00s | ⚠️已知(quotes 协议失效(8/3),CAPABILITIES=False,路由已绕开)
| mx | daily_fallback | 0 | 2562 | 0% | 0.00s | 🔥
| mx | daily_realtime | 1 | 0 | 100% | 0.00s |
| mx | kline | 1 | 0 | 100% | 0.00s |
| mx | realtime | 0 | 10 | 0% | 17.06s | 🔥
| mx | realtime_batch | 0 | 17 | 0% | 1.78s | 🔥
| tushare | blocks | 8 | 0 | 100% | 0.00s |
| tushare | daily | 706 | 100 | 88% | 0.00s |
| tushare | finance | 2 | 136 | 1% | 0.00s | ⚠️已知(兜底空(westock 已覆盖),非主链)
| tushare | kline | 402 | 183 | 69% | 0.48s |
| westock | daily | 7566 | 3817 | 66% | 0.00s |
| westock | daily_fallback | 436 | 2679 | 14% | 0.00s | 🔥
| westock | finance | 36 | 134 | 21% | 0.00s | ⚠️已知(12:22 测试批量噪音,复测 3/3 正常(8/15))
| westock | kline | 2 | 0 | 100% | 0.89s |
## 源汇总
- 🔴 **mx**: 2/2591 成功(0%)
- 🔴 **mootdx**: 21/3141 成功(1%)
- ⚠️ **westock**: 8040/14670 成功(55%)
- ⚠️ **tushare**: 1118/1537 成功(73%)
## 诊断建议
- 🔴 mx 近期成功率低——建议人工检查:协议失效/配额/账号;必要时查 probe_sources.py 重探测
- 🔴 mootdx 近期成功率低——建议人工检查:协议失效/配额/账号;必要时查 probe_sources.py 重探测
生成: 2026-10-19 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([数据源][路径][判断] 三要素齐全,写入端拒收空件)。纯数据播报 → 跳过落账,并在报告里写明「本次无判断落账」。
2. **归档 IMA(强制,写完报告后必做)**:最终报告必须归档到 IMA(与 QQ 投递内容完全一致):
```
cat > /tmp/数据底座健康周报AI解读_$(date +%Y%m%d).md << 'REPORT_EOF'
[在此粘贴你的完整报告全文,一字不差]
REPORT_EOF
timeout 60 bash ~/.hermes/scripts/upload_stdin_to_ima.sh "数据底座健康周报AI解读_$(date +%Y%m%d)_完整版" < /tmp/数据底座健康周报AI解读_$(date +%Y%m%d).md >/dev/null 2>&1
```
归档成功后再输出最终报告(系统自动投递 QQ);归档失败在报告末尾标注「⚠️ 归档失败」。
3. **先数据后判断**:引用上方【数据摘要】的具体数字;数据段标了 [不可用] 就首行声明数据不全,禁止照常下结论。
**Response Characters:** 2204
## Response
归档成功(rc=0)。以下为最终报告。
# 数据底座健康周报 AI 解读(2026-10-19,窗口 7 天)
> 数据源: health_report.py 周报 + call_stats.db(198,341行)逐条回查 | 路径: 按 source/dtype 拆分→错误note→30天日趋势→近期3天活跃度
## 一、各源成功率与异常解读(先数据)
| 源 | 汇总成功率 | 关键拆解 |
|:---|:---:|:---|
| **tushare** | 73% | daily **88%**(近3天89.5%)✅ / blocks 100%✅ / kline 69%(失败集中10/14-15突发) / finance 1%(已知兜底空) |
| **westock** | 55% | daily **66%**(近3天73.3%)✅主日线工作马 / kline 100%✅ / daily_fallback 14%(回填被hammer) / finance 21%(已知噪音) |
| **mx** | 0% | daily_fallback 0/2562(全在10/12-16回填窗口) / realtime+batch **30天连续0%** / daily_realtime 1/1、kline 1/1 |
| **mootdx** | 1% | daily 0/3099(已知bars失效) / realtime 0/11(已知quotes失效) / **minutes_realtime 1/11≈9%** / blocks+finance 100%✅ |
**核心事实**:周报把 mx 计成 0%、mootdx 计成 1% 并标 🔴"建议人工检查",但逐条回查摊开后——**mx/mootdx 的失败大头是「已知协议失效 + 慢性失效 + 回填配额耗尽」,不是本周新增故障**。真正扛日线主链的 westock daily(73%)+tushare daily(90%) 近 3 天健康。
## 二、<50% 源根因判断与处置
### 🔴 mx(0%,2/2591)
- **daily_fallback 0/2562**:全落 10/12→10/16 **回填窗口**,10/16 后归零。根因=**东财MCP日配额耗尽**(批量回填打爆配额)。属 fallback 路径,主链已覆盖日线。
- **realtime 0/10(avg 17s) + realtime_batch 0/17(avg 1.8s,今日探针仍失败)**:回查 30 天,**自 9/20 起每天 0%,连续 30 天无一成功**。batch 1.8s 快速失败=接口直接拒绝。根因=**慢性协议/接口失效**("今日配额"解释不了连续30天0%)。
- **⚠️ 探针-实况背离**:今日 3:40 能力掩码仍标 mx 含 `realtime/daily`,但 realtime 实况 30 天 0% → **能力掩码假阳性/过时**,路由可能误信。
- **处置**:①日线无需紧急人工介入;②mx realtime 掩码标**降级/不可用**、路由停依赖;③重探测区分协议失效(移除)还是配额(限流)。
### 🔴 mootdx(1%,21/3141)
- **daily 0/3099 + realtime 0/11**:已知 bars/quotes 协议 2026-08-03 失效(**非新增**),路由已绕开,westock 覆盖。**无需新处置**。
- **minutes_realtime 1/11≈9%**:30 天回查为**间歇性**(10/4:3/5、10/6:2/9 曾可用,10/19:0/5 恶化),非完全失效。根因=**分时服务端/连接抖动**。
- **处置**:①已知失效段不动;②minutes 标**间歇降级**,持续 <20% 则换 tushare/mx 兜底;③分时非主链,先观察。
## 三、健康源
- **tushare**:daily 88-90%✅、blocks 100%✅;kline 突发后已恢复。
- **westock**:daily 66-73%✅(主工作马)、kline 100%✅;fallback/finance 次要,不影响主链。
## 四、三行结论
1. ✅ **正常源**:tushare(daily 90%/blocks 100%)、westock(daily 73%/kline 100%)——日线主链健康。
2. 🔴 **问题源+根因**:mx=realtime 慢性协议失效(30天0%)+回填配额耗尽、能力掩码假阳性;mootdx=daily/realtime 已知协议失效(非新增)+minutes 间歇恶化。二者 🔴 属**存量/慢性,非本周新增故障**。
3. **下一步动作**:①mx realtime 掩码标降级、路由停依赖+重探测定协议/配额;②mootdx minutes 标间歇降级、持续<20% 换兜底源;③无需紧急人工介入日线。
---
*本次无判断落账(纯数据源健康诊断,无市场方向性判断)*
*已归档 IMA:数据底座健康周报AI解读_20261019_完整版*