🤖 智能体中枢 WB_AgentHarness · 感知→触发→执行→落账
🎯 优化有效性(近 30 日)
需要关注
昨日实调 0 轮 · 处置 0 条 · 失败 0 轮 · 平均耗时 7 分钟
待处置发现 1 条连续失败 91 轮
63
P0/P1 触发
62/63
处置闭环
1
待处置
10
草案达门槛
7分
平均轮耗时
66
教训累计
发现 P0/P1
7 日全 0
实调成功轮
7 日全 0
失败轮
7 日全 0
medium 待处置发现 1 条 (来自 status() 同源口径)
high 连续失败 91 轮 检查 runs.jsonl 最新行与 stderr 证据
medium 候选草案待裁决:观察期规则积压超六成,需设定自动流转阈值 n=143350 | key=rule_iteration|-|backlog
medium 候选草案待裁决:历史整体命中率虚高,掩盖带价预测的真实盈利衰减 n=8885 | key=review_yesterday|-|risk,accuracy
medium 候选草案待裁决:审核驳回率高占总量近20%,建议前置自动化拦截 n=47523 | key=rule_iteration|rejected_share|reject,accuracy
medium 候选草案待裁决:计数比的分子受日期窗/桥接等额外过滤而分母为全量时,该比值不得读作覆盖率/占比/命中率,必须补同 n=9692 | key=review_yesterday|指标口径|跨域比
🧠 感知层 · LLM Optimizer
6 面轮转 · 只读+工具执行 · 每小时 WB_LLMOptimizer
0
今日完成面
308
总发现
562
总轮次
tokens=0/500000 calls=0/200
预算
最近轮次:2026-10-22T15:00:06 · llm_error:data_quality · —
可用工具:health_check, port_check, log_tail, run_pytest_focused, read_file, db_query
📡 状态总览
来源:automation.agent_harness.status()(只读)
1
待处置 P0/P1
100
已处置(handlocked)
1128
轨迹总轮次
#476
最新轮次号
待处置样本:
- 竞彩活跃串关PnL转负且风险缓冲耗尽
🧾 轮次轨迹(最近 20 条 · runs.jsonl)
ok=🟢 · skip=⚪ · 失败=🔴(含 stderr 证据)
| 时间 | # | 结果 | 触发 | 后端 | 派发 | 耗时 | 备注 |
|---|---|---|---|---|---|---|---|
| 2026-10-22T14:30:06 | 476 | 🔴 | schedule | dsh | 1 | 4 s | dsh: MISSING_CREDENTIAL: llm-deepseek: no API key for provid |
| 2026-10-22T14:30:02 | 476 | 🔴 | schedule | 0 s | |||
| 2026-10-22T13:30:08 | 475 | 🔴 | schedule | dsh | 1 | 6 s | dsh: MISSING_CREDENTIAL: llm-deepseek: no API key for provid |
| 2026-10-22T13:30:02 | 475 | 🔴 | schedule | 0 s | |||
| 2026-10-22T12:30:06 | 474 | 🔴 | schedule | dsh | 1 | 4 s | dsh: MISSING_CREDENTIAL: llm-deepseek: no API key for provid |
| 2026-10-22T12:30:02 | 474 | 🔴 | schedule | 0 s | |||
| 2026-10-22T11:30:06 | 473 | 🔴 | schedule | dsh | 1 | 4 s | dsh: MISSING_CREDENTIAL: llm-deepseek: no API key for provid |
| 2026-10-22T11:30:02 | 473 | 🔴 | schedule | 0 s | |||
| 2026-10-22T10:30:06 | 472 | 🔴 | schedule | dsh | 1 | 4 s | dsh: MISSING_CREDENTIAL: llm-deepseek: no API key for provid |
| 2026-10-22T10:30:02 | 472 | 🔴 | schedule | 0 s | |||
| 2026-10-22T09:30:59 | 471 | 🔴 | schedule | dsh | 1 | 50 s | dsh: MISSING_CREDENTIAL: llm-deepseek: no API key for provid |
| 2026-10-22T09:30:06 | 471 | 🔴 | schedule | 0 s | |||
| 2026-10-22T08:30:22 | 470 | 🔴 | schedule | dsh | 1 | 20 s | dsh: MISSING_CREDENTIAL: llm-deepseek: no API key for provid |
| 2026-10-22T08:30:02 | 470 | 🔴 | schedule | 0 s | |||
| 2026-10-22T07:30:05 | 469 | 🔴 | schedule | dsh | 1 | 3 s | dsh: MISSING_CREDENTIAL: llm-deepseek: no API key for provid |
| 2026-10-22T07:30:02 | 469 | 🔴 | schedule | 0 s | |||
| 2026-10-22T06:30:05 | 468 | 🔴 | schedule | dsh | 1 | 3 s | dsh: MISSING_CREDENTIAL: llm-deepseek: no API key for provid |
| 2026-10-22T06:30:02 | 468 | 🔴 | schedule | 0 s | |||
| 2026-10-22T05:30:05 | 467 | 🔴 | schedule | dsh | 1 | 4 s | dsh: MISSING_CREDENTIAL: llm-deepseek: no API key for provid |
| 2026-10-22T05:30:02 | 467 | 🔴 | schedule | 0 s |
📌 最近发现(findings.jsonl · 最近 20 条)
感知层 llm_optimizer 产出 · P0/P1 进触发门
| 时间 | 级 | 面 | 标题 |
|---|---|---|---|
| 2026-10-20T09:00:54 | P3 | clv_trend | 周期性低样本日(low_sample=true)需在前端/API层显式隔离防噪声污染 |
| 2026-10-20T09:00:54 | P2 | clv_trend | 数据源评估量分布极度不均,存在跨源混算伪趋势风险 |
| 2026-10-20T08:02:23 | P3 | source_health | gozucai源fetches指标受主键Upset机制结构性低估 |
| 2026-10-20T08:02:23 | P3 | source_health | 近7日全源赛果供给完整,无数据断档 |
| 2026-10-20T07:01:04 | P3 | review_yesterday | 生产观察项:评估口径跨域差值防误触发 |
| 2026-10-19T08:00:51 | P2 | rule_iteration | 30天决策台账中观察级规则占比过高,有效裁决样本被稀释 |
| 2026-10-19T07:00:55 | P2 | data_quality | 低级别联赛多源容灾能力不足 |
| 2026-10-19T06:01:13 | P3 | parlay_performance | Pending记录单日集中堆积,属设计性保守但需固化监控基线 |
| 2026-10-19T06:01:13 | P2 | parlay_performance | 北单盈利呈‘SPF单核驱动+HCP失血’结构,抗波动能力弱 |
| 2026-10-19T02:00:59 | P3 | clv_trend | 执行层存在积压未处置项,建议优先闭环存量任务 |
| 2026-10-19T01:01:01 | P3 | source_health | 结果与快照供给链路线上零缺失,系统处于稳健运行态 |
| 2026-10-19T00:01:28 | P2 | review_yesterday | 队名变体导致的实体映射失败造成约 400 行数据丢失 |
| 2026-10-18T07:00:57 | P2 | rule_iteration | ODD-3规则近7日判定错误量居前 |
| 2026-10-18T05:00:48 | P2 | parlay_performance | Pending待结算记录单日集中堆积 |
| 2026-10-18T05:00:48 | P2 | parlay_performance | SPF玩法收益高度集中于北单,竞彩盈利单薄 |
| 2026-10-18T05:00:48 | P1 | parlay_performance | 竞彩活跃串关PnL转负且风险缓冲耗尽 |
| 2026-10-18T02:00:55 | P2 | clv_trend | 赔率源构成突变引发混合曲线伪趋势风险 |
| 2026-10-18T01:01:13 | P3 | source_health | 跨源 snaps_per_fetch 指标差异极大且属正常市场覆盖差异,需防范下游误用告警 |
| 2026-10-18T01:01:13 | P2 | source_health | 赛果填充行数呈极端长尾分布,需防范下游模型训练数据偏差 |
| 2026-10-18T00:00:51 | P3 | review_yesterday | 跨域赔率来源占比较低,建议接入外部机构校验层以拓宽价值发现半径 |
📚 复盘教训台账(lessons.jsonl · 最近 10 条)
下轮简报自动注入 · 教训入账才闭环
| 时间 | 现象 | 根因 | 防复发 |
|---|---|---|---|
| 2026-10-17T06:19:00+08:00 | 本轮要把一条已核实的规则草案入账,执行 python -m automation.agent_rules --add-json 时连续 3 种写法全部失败,均报 json JSONDecodeError:Expecting property name enclosed in double quotes: line 1 column 2 (char 1)。三种写法:一是 pwsh 单引号包裹 JSON(内含双引号);二是先把 JSON 写进临时文件再以双引号加子表达式读入该文件内容;三是用 --% 逐字传参。三者均失败;--% 那种还会把尾部重定向与管道符当作程序参数,另报 unrecognized arguments。症结:pwsh 把参数里的双引号剥掉,Python 侧收到的是不带引号的键值形式,于是 json.loads 在 char 1 处失败。 | Windows/pwsh 向原生程序传参时的引号处理(原生程序命令行重建)会消费参数内的双引号;而 JSON 语法以双引号为主体,因此只要走 shell 传参就会被破坏,与 JSON 内容无关。 | 凡要向本机原生 Python 程序传 JSON 字符串(agent_rules --add-json 等),不要走 shell 传参,改用:一是在 python -c 中直接 import 目标模块函数并用 json.load(open(路径)) 解析;二是把 JSON 落成文件后由 Python 侧读该文件,路径经 argv 传(路径无引号,安全);三是不要在 --% 之后混搭重定向或管道符,其后一切都会被当作程序参数。 |
| 2026-10-17T06:10:00+08:00 | 简报 P1 hash 0c852393d12bb9de 报「10-15/10-16 连续两日有效评估归零(n_evaluated=0)⇒ 监控静默期,建议看板加数据空窗占位符并顺延上一有效日阈值」。05:33 只读复测 clv_tracking:10-16 行已是 n_evaluated=12(avg_clv 5.537 / positive 0.6667 / updated_at 2026-10-17T04:12:23)⇒ finding 的「0」是时点快照;25 行窗口(09-23~10-17)实测零评估完整日仅 10-15 一天,10-17 的 0 是当日部分行;有效评估率区间 7.1%~100%(中位≈28%,历史低点 10-06 7.1%/10-07 8.0%/10-08 11.8%)⇒ 单日归零是分布下尾而非新增静默期。另 finding 措辞「快照陈旧(stale_close_snapshot)」不准确:判据 core/clv.py:308,312 是 close[0]==bet[0] ⇒ 语义为「下注时点之后该场无后续快照」;慢性量级 368/865=42.5%(25 日),逐场 10-15 22/28、10-16 22/39。单例追trace:match_id=周三004 是按周复用场次号,10-15 预测(kickoff 为空 ⇒ 锚点回退 match_date,窗 10-14~10-16)只命中 match_date=2026-10-14 的 5 行(max ts 10-13 21:35)= 上一周同编号场次,两自述源窗内均无下注后快照 ⇒ 该跳过是防跨场比对的有效保护(行为正确)。 | ① clv_tracking.report_date 是唯一键、当日每轮重跑覆写该行 ⇒ 感知层读到的「连续两日 0」中,后一日是尚未被覆写的当日部分行(04:0x 写入时收盘快照必然未产生)⇒ 把「当日部分行」当「静默期」是本族误判的共同机制(本族第 4 次同型)。② 找根因时我最初的候选是「上游快照发布延迟 / 容错窗口过小」(finding 的第一猜测),实测证伪:真实成因是场次号(周三/周四NNN)按周复用 ⇒ 预测自述基准可能指向上一周同编号场次,窗口内该场根本没有下注后的快照。 | ① 读 clv_tracking(或任何「report_date 唯一键+当日重跑覆写」的表)判「静默期」必须满足两个硬条件:只用 updated_at 早于今日的完整日;且连续 ≥2 个完整日 n_evaluated=0。当日行一律视为 provisional,不得据其判故障。② 本族 finding 固定两步处置:回原表复测并记时间戳 → 查 skip_class.fault_like 是否 >0(恒 0 ⇒ needs_action=false),两步为否即结案为负结论。③ 看到 stale_close_snapshot 高企,不得直接归因「上游延迟/容错窗口小」;先验证场次号是否按周复用:prediction_records.metadata.fixture.kickoff 为空 且 窗口内快照 match_date 与预测 match_date 不同日 ⇒ 命中(此时该跳过是保护而非故障)。④ 处置建议前先检查其与既有口径是否自相矛盾(本例「顺延上一有效日」与 Run#322 已确立的「禁止跨源混合曲线作趋势依据」冲突,故不采纳)。 |
| 2026-10-17T00:45:00 | 简报 P1(hash 401e4b71a6690903)报「统一价口径占比 price_share_pct=32.18%(price_n=3105/pred_n=9650)不足三分之一,其余多由规则或ML生成内部参考价,存在套利盲区」。数字属实,但判读与归因均错:该比值是**跨域比**,不是统一价覆盖率。 | scripts/history_backtest.py::collect() 里 n_price 的累加点在三重过滤之后(① k 命中 res_idx 赛果桥接 ② match_date>=price_since 日期窗 ③ panel 有该键且开盘价>1),而分母用 len(preds)=全量(含未桥接行与 price_since 之前行);实测同域分母 price_base_n=5538(已桥接且入窗)⇒ 真实同域覆盖率 56.25%,32.18% 与 56.25% 的 24pp 差值全部由口径混合产生。与 Run#194 的 hit_n(桥接行/全量=65.1% 被感知层读成命中率)**同型**:分子受过滤、分母不受的比值一旦进入感知层,必然被读成「覆盖率/占比/命中率」。 | ① 新增任何「计数比」字段前先自问分子分母是否同域;不同域就必须同时给出同域分母(price_base_n)与同域率(price_cover_pct),并在 render()/ledger 行/感知层 note 三处标注「跨域比,勿当覆盖率」——本轮三处同补(缺任一处该伪占比仍可被算出)。② 诊断「覆盖率/占比/命中率偏低」类发现,第一动作是打印三个候选分母(全量 / 已桥接 / 已桥接且入窗)并对比,而不是接受结论或去改数据源。③ 「赛果桥接覆盖」与「赔率统一价覆盖」是两条独立过滤链(match_results vs qiulaile_panel_odds);任何「桥接缺失 ⇒ 无法算 EV」的推断,先核这两个链是否同一条。④ 对新计数指标补一条分母单调性回归断言(price_base_n <= hit_n <= pred_n),可低成本拦住口径回退。 |
| 2026-10-15T06:52:00 | llm_optimizer 的 parlay「盈利但缓冲薄需设风控」概念门(`_is_parlay_cushion_stoploss`,三要素与门,2026-10-13 落地)在**第 9 条族成员**(hash 4fd109fbb1d2aae8)上漏判:实测返回 False ⇒ 该条穿透感知层去重、被派发到中枢。同族此前 8 条全部命中,故该门在本轮前被视为已闭环(其回归用例只断言「族内 8 条收敛一键」)。 | 概念门的判据是**词表**,而族内措辞在演化:第 9 条首次以「保留当前**正期望**」承认正盈利(正盈利门无此词)+ 以「设置独立**硬上限**/**拦截** total_odds>40」表达风控动作(风控门只有止损/降注/限投/仓位上限)。**门不是漏掉了概念,是漏掉了新措辞**——即「概念门收敛」这类修复的**失效模式是措辞新增**,而回归用例只在既有措辞上断言,天然无法发现。 | ① 任何「概念门/词表收敛」的回归用例**必须补一条「语料回放」断言**(把该面全部事实 finding 过一遍门,断言命中集 == 期望族成员集),否则新增措辞会静默穿透——本轮即用 66 条全语料回放定位并验证(改前命中 8 条、改后 9 条、零跨族误合并)。② 扩词必须**两处同补**(本轮只补正盈利门或只补风控门均不命中)⇒ 证明是两条件同时缺,非万能词。③ 更宽的候选词(裸「上限/限额/净利润」)实测命中集与窄版**完全相同** ⇒ 按「宁可不判」原则拒绝宽版(裸「上限」会被「提高/放宽上限」这类**反向动作**命中)。④ 新增的**限制性动作词**须自带反向动作**负向后顾断言**(本轮 `(?<!提高)(?<!放宽)(?<!提升)(?<!上调)硬上限`)——否则「建议放宽硬上限以放大优势」这类族反向结论(与既有负对照③同型)会被误并入、静音合理发现。 |
| 2026-10-15T06:50:00 | P1 finding 4fd109fbb1d2aae8(北单 hcap 利润过度集中于高赔尾部,建议拦截 total_odds>40)数字逐位属实(by_play hcap pnl=11102.56 / hit_rate_pct=11.49 / avg_odds_lost=36.1;hcap 占北单活跃净利润 92.2%),但两条建议均被实测证伪:①「hcap 正期望依赖极少数长串 ⇒ 抗噪弱 ⇒ 应封顶」——分层实测**方向相反**:total_odds>40 尾部 n=16 命中 7(43.75%),非尾部 n=71 命中 3(4.23%);尾部 ev=+705.76 vs 非尾部 ev=-2.67;剔除尾部后窗口由 +11102.56 崩至 -189.6(砍掉 101.7% 利润)。②「封顶以平滑方差」——按日聚类 bootstrap CI95=[-1767.1,+5.96] **含 0**。 | ① 感知层 parlay_performance 只输出票级 parlays/hit/pnl/avg_odds_lost,**无腿级与日级结构**,LLM 见「利润集中 + 整体命中率低」即套用「尾部无价值」启发式;实测该启发式在本数据上**反向**——北单 hcap 挂得最远的让球腿恰是把握最大的腿(尾部腿级命中率 66.7% vs 非尾部 47.4%),高 total_odds 主要由**方向确定性**(强队让负)+ 多腿叠乘而来,而非博冷。② 尾部 16 张票只落在 4 个比赛日(其中 2 天贡献全部 7 中),且同日 combo 0..3 共用腿(腿复用率 56.7%)⇒ 票级 iid bootstrap 高估显著性:票级 CI95=[-1354.46,-172.24] 不含 0,而**按日聚类** CI95 含 0 —— 同一结论在两种重抽口径下相反。 | ① 判「某玩法是否依赖尾部博冷」必须先算**尾部 vs 主体的命中率与 ev**,不得由「利润集中 + 整体低命中率」推出——本轮两者方向相反(43.75% vs 4.23%)。② parlay 族任何阈值/封顶/止损建议的显著性检验**必须按 record_date 聚类重抽**(同日 combo 0..3 共用腿,票非独立样本);本轮票级与日聚类给出相反结论,票级口径即为**伪显著**。③ 分层建议须同时报「剔除后窗口 pnl」,把「砍掉全部利润」这一量级后果显式化(本轮 11102.56 → -189.6)。④ 裁决前先查同族历史结论:本族 09-14/09-15 已两次由同源(票级汇总)注入同型封顶建议。 |
| llm_optimizer clv_trend P1 finding e3703041 报「跨源混合 CLV 伪趋势风险」,数字属实(sporttery 1.441% n=88 vs ttyingqiu -0.137% n=89,差 1.578pp)且其三条建议中两条早已实现(Run#174 分层 window_by_source / Run#279 面板 trend_verdict 警告条),第三条「单源占比>80% 持续3日才允许合并视图」经只读实测为永真判据;而真正的缺口在既有门本身——source_mix_shift 只比两半区主导源是否同名,换源点偏向窗口一侧时两半同名致漏判 | ① 判源构成用「主导源名」这一离散量做代理,只覆盖离散换源;换源点偏向窗口一侧时两源并存、dominant 名不变而份额已大幅挪动(14日仿真:近半7B/远半3A+4B,旧判 False 而份额实动 0.571)⇒ 判据不完备而非缺失。② 生产数据恰好两种判据同时命中(mix_delta 0.936 + 易名),故盲区从未在生产暴露=潜伏缺陷,finding 的转述也没能定位到它。③ finding 提的 >80% 门槛在真实数据上恒真:逐日主导源份额实测恒 ≥89.7% 或 100%,不存在 <80% 的日子 ⇒ 采纳等于把门拆掉 | ① 判「来源构成是否漂移」必须比**份额向量**(逐源半区间份额变动 ≥ 阈值),不得只比 dominant 名——dominant 是离散代理,漏掉「两源并存但权重挪动」这一大类。② **门槛类建议先在真实数据上验「是否可达」**:算一遍该判据在历史数据上的触发率,恒真/恒假即无分辨力,不得采纳(本轮实测:>80% 门槛触发率 100%)。③ 写新判据的测试时别只测新臂——新判据会暴露**旧文案在旧读取路径上的自相矛盾**(本轮首轮测试即抓出 CLI 渲染「由 B 切换为 B」),这是全路径普查的免费探头,优先跑而非事后补。④ 改共享文件(多人/多会话在制品)前必做 hunk 级归属核对:文件级 `M` 不等于整文件属你,用 git diff hunk 头核对后用 git apply --cached 单 hunk 暂存。 | |
| 2026-10-14T05:41:00 | P1 finding 63953ab79539c4ab 报「竞彩 HCAP 近 257 期仅命中 18 期(7.0%)」,两条建议均被实测证伪:① 该 7.0% 是**跨层混算**——257 是顶层 summary 的parlays(**全市场、全玩法、含 pending/voided**,实测 jingcai 窗口总行数 257),18 是顶层 summary 的 hit;而 by_play 的 hcap 真实为 parlays=82 / hit=10 / miss=72 ⇒ 命中率 **12.2%**(正确分母 settled=82,而非 257),finding 低估 5.2pp、且把 hcap 的 pnl(24.0)/avg_odds_lost(13.2) 与顶层计数拼成同一条依据。② 「强制拦截单票总赔率 > 18.0」在竞彩 hcap 上**不显著**:分层实测 n=70/pnl=+120.0(ev +1.71)vs 尾部 n=12/pnl=-96.0,但重抽 bootstrap 的 ev(保留)-ev(剔除) CI95=**[-15.94, +11.58] 含 0**,且「12 注全黑」在 p=12.2% 下的概率 **0.210**(不显著)。③ 「win_prob >= 0.55 / odds_diff <= 0.15」两个字段在 core/parlay.py 与全库**均不存在**(`odds_diff` 全库 0 处、`win_prob` 仅 qiulaile 清洗层私有键)⇒ 该门槛在本表不可复核,属不可执行建议。④ **同一建议对北单方向相反**:北单 hcap 剔除 >18 后 n=56/pnl=-292.32(ev **-5.22**),全部利润来自尾部(n=31/pnl=+11172.16)⇒ 照搬阈值会砍掉北单全部正收益。本族已第 6 次注入。 | ① 感知面 collect_parlay_performance 的三层聚合此前**只给 hit/miss 计数、不给 settled 与比率**,逼 LLM 自行相除——而 summary(市场级)与 by_play(市场×玩法级)是两张不同粒度的表,字段名相同(parlays/hit/miss/pnl)却不同义,最易被拼成一条依据。② 阈值类建议缺「跨市场同向性」自检:竞彩与北单返奖率(0.70 vs 0.65)与赔率量级(中位 12.6 vs 50+)完全不同,同一 total_odds 阈值在两市场的语义不等价,而 finding 措辞未声明适用市场即给出统一阈值。③ 建议引用的字段名(win_prob/odds_diff)**不在被引用表的 schema 内**,属「凭想象构造门槛」——本面 schema 只有 total_odds/combo_no/pnl/status。 | ① 命中率**只认透出字段**:本轮已把 `settled` 与 `hit_rate_pct` 随 summary / summary_active / by_play 一并输出(分母恒为 hit+miss),判读方直接取数、禁止自算;② **禁止跨层混算**——summary 与 by_play 不得拼接为同一条依据(已写入 parlay_note);③ 裁决「封顶/拦截某赔率区间」前必须做**同区间分层 + bootstrap CI**,CI 含 0 即判不显著;且**同一阈值必须在每个市场分别复算**,跨市场阈值不可移植(竞彩不显著、北单反向的实测反例已写入 parlay_note);④ 建议里出现的字段名,动手前先 `grep` 该字段是否存在于被引用表的 schema——不存在的字段 = 不可复核建议,只登记不实施。 |
| 2026-10-13T05:55:00 | P1 finding f9e63c5738be449e(竞彩 active 窗口利润垫过薄)数字分毫属实(summary_active.jingcai.pnl=+450.64 恰 = hcap+207.36 + spf+243.28),但两条建议均被实测证伪:①「任何一者连黑 3 期即转负」——unit_stake=8 ⇒ 3 注仅 24 元,利润垫 450.64 元 = 18.8 倍,算术上需连续亏损 ≈56 注才打穿(实测 cushion_units=56.3 与手算一致);且 jingcai/spf 30 日实测最长连黑达 52 注而窗口 pnl 仍为 +243.28(正),反例直证因果链不成立。②「单日止损线 360 元,触及即锁定头寸」——竞彩全期最差单日仅 -128.0,该阈值永不触发(无效风控);且「止损线 = 历史净利润 80%」无有效基数(竞彩全期累计 pnl=-1084.9 为负)。另 hcap/spf 的 E[pnl/票] 实测为正(+2.53/+2.83,见 scripts/parlay_ev_diagnosis.py)⇒ 对正期望玩法设止损= 主动摧毁期望值。该族已第 5 次注入(Run#83/#105/#127/#142 + Run#280)。 | ① 感知面 collect_parlay_performance 只输出盈亏与命中率(parlays/hit/miss/pnl/avg_odds_lost),**不给「亏损速度」与「利润垫」的同一量纲参照** ⇒ LLM 只能凭命中率猜风险量级,而彩票型玩法命中率天然极低(jingcai/spf 9.3%、hcap 15.85%),必被读成「高风险」并触发止损启发式。② 止损阈值类建议缺「与实测单日最大亏损同量级」的自检步骤 ⇒ 360 元 vs 实测 -128.0(高 2.8 倍)永不触发的建议被当成有效风控投递。③ 去重缺口:本轮语义键 = parlay_performance|hcap,spf|disabled,accuracy,_is_disabled_legacy_residual **未命中**——措辞「剔除已停用玩法后」是**归因**而非「停用类」概念,故概念支配键未接管,族内仍可分裂新键。 | ① 裁决「连黑 N 期即转负 / 需设止损」前,**先算 cushion_units = window_pnl / unit_stake**(本轮已代码化进 risk_scale[]),并与 N 对账;不同量级则结论无效。② **止损阈值必须与「实测单日最大亏损」同量级**(本轮实测 -128.0),否则永不触发 = 无效风控,须显式标注而非投递。③ **对 E[pnl/票] > 0 的玩法设止损 = 摧毁正期望**——先跑 scripts/parlay_ev_diagnosis.py 看 ev_per_ticket 再下止损结论。④ 「止损线 = 历史净利润 X%」类建议必须先核对该基数**是否为正**(本轮全期累计 -1084.9,80% 无意义)。⑤ 本族注入已 5 次,判据纪律应随字段透出(parlay_note),使 LLM 在源头可算术复核而非凭命中率猜。 |
| 2026-10-13T02:50:00 | P1 finding f35e0286(clv_trend 源切换致跨源混算失真)实测为真,但落点与 finding 叙述不同:感知层 llm_optimizer.collect_clv_trend 早已输出 source_mix_shift + window_by_source + trend_verdict(Run#174 修复),真正的缺口在**下游消费方**——core/clv.py::clv_history 的 SELECT 只取六个标量列,把 details_json 里的 by_source 整列丢弃,导致 /record 页与 CLI --history 只渲染跨源混合曲线、无任何切换预警。实测窗口 sporttery 0.942%(n=64) vs ttyingqiu 0.054%(n=96)。 | ① 同一指标存在两条读取路径(感知层直读 details_json / 消费层走 clv_history 投影),修复只落在其中一条 ⇒ 「上游已加防护」不等于「全链路已加防护」。② clv_history 的 SELECT 是「白名单投影」,新增字段默认不透出——details_json 是 JSON 列,最容易被投影悄悄丢弃且无任何报错、无测试覆盖。③ 本族 finding 历来多为证伪/过期(教训台账已记 4 次),若只按「族内惯性质疑」直接结案就会漏掉这次真实的下游缺口——证伪必须逐条落到具体消费路径,不能按族批量判。 | ① 断言「某防护已生效」前,先枚举该指标的**全部读取路径**(本例:automation/llm_optimizer 直读 vs core/clv.clv_history 投影 vs CLI vs web 路由),逐条确认防护字段是否在该路径的返回结构里;只检查生产/感知侧一条路径 = 结论无效。② 凡是「JSON 列 + 白名单 SELECT 投影」的读取函数,其测试必须断言关键子字段被透出(本轮已加 test_clv_history_exposes_by_source_and_dominant + 坏 JSON 容错 + 路由传参 AST 断言)。③ 面对同族反复注入的 finding:**先按族做一次廉价筛查,但不得据族结论直接结案**;必须至少落到一条具体下游调用链上实跑复现(本轮复现命令即 clv_history() 返回值不含 by_source)。 |
| llm_optimizer 的两条 clv_trend P1(hash ba0008d27 / 611bc44c)实测验伪:①「近三日有效评估量骤降、10-09 n_evaluated=0」——05:36 只读实测该行已是 n_evaluated=11(CLV +2.531%、正 CLV 54.6%),stale_close_snapshot 亦为 8 而非 9;②「数据源集中于 ttyingqiu 且备用源间歇性中断」——实测 odds_snapshots 的 sporttery 在 10-05~10-09 每日有 26/56/44/35/97 行(ttyingqiu 855~2786 行/日),「中断」不成立,且同一 finding 的依据字段自身矛盾。窗口 14 日 skip 明细中 fault_like 桶恒为 0。 | ① clv_tracking 的 report_date 是唯一键,当天每轮重跑都会覆写该行(10-09 行 ev 0→11、stale 9→8);findings 是某时点由 LLM 读表生成的时点快照,派发到中枢时已过期——直接引用其数字等于把过期观测当现势事实。② 感知层「依据」字段是二次转述、未经机器校验:611bc44c 把 pool 主源(ttyingqiu=config primary)主导读成「备用源中断」,并把窗口内不同日期的两个事实拼成自相矛盾的归因。③ 两条建议(放宽 min_day_n、动态权重校准)都指向关闭设计性判据与改生产配置,与「设计性过滤不是故障」「跨源 CLV 不可比」「生产升级数恒 0」三条既有定案相反。 | ① 引用任何 finding 数字前先回原表复测并记时间戳——尤其按日期唯键且当天会重跑覆写的表(clv_tracking / eval_daily);hash 只表示「已派发」,不等于数值现势。② clv_trend 类发现固定两步:先看 skip_class.fault_like 是否 >0(恒 0 ⇒ needs_action=false),再看 by_source 分层是否与「源中断/源集中」叙述一致;两步为否即结案为负结论。③ finding「依据」出现两个互斥论断时,视为感知层转述缺陷,回原表逐句核并登记教训,而非照建议改配置。④ 建议命中「改阈值/加动态权重/放宽门」时,先比对既有定案清单,冲突则只登记待办不实施。 |
📐 规则草案台账(agent_rules · 共 52 条)
只写草案 · 生产晋级须人工裁决(升级数恒 0)
52
草案总数
41
draft(证据不足)
6
observation
4
candidate(待裁决)
0
疑似冲突
0
陈旧(>90天)
| 状态 | 证据 | 规则(文字性结论) | IF 条件 | THEN 动作 |
|---|---|---|---|---|
| candidate | n=143350 strong |
观察期规则积压超六成,需设定自动流转阈值 | `observation_only`占据绝对多数,大量实验规则处于“只监不战”状态。长周期观察会挤占系统算力与新策略空间。建议引入自动化生命周期管理:连续N天满足正向收益指标则自动晋级,否则定期归档清理。 | — |
| candidate | n=47523 strong |
审核驳回率高占总量近20%,建议前置自动化拦截 | 近一个月被驳回的规则数量庞大,反映出提交流程缺乏有效过滤或评审标准不一致。建议在规则提交网关增加预检机制(如历史胜率底线检查、逻辑冲突扫描),从源头削减无效申报。 | — |
| candidate | n=9692 strong |
计数比的分子受日期窗/桥接等额外过滤而分母为全量时,该比值不得读作覆盖率/占比/命中率,必须补同域分母字段 | 某汇总字段 = A/B,其中 A 只统计满足 >=1 个额外过滤条件的子集(如 match_date>=price_since、已桥接赛果、panel 有价),而 B 为未过滤全量 | 同时输出同域分母(price_base_n)与同域率(price_cover_pct),并在 render()/ledger 行/感知层 note 三处显式标注「跨域比,勿当覆盖率」;补分母单调性回归断言(price_base_n<=hit_n<=pred_n) |
| candidate | n=8885 strong |
历史整体命中率虚高,掩盖带价预测的真实盈利衰减 | 全量预测命中率达65.1%,但该指标包含大量无赔率约束的基础推演单。真正具备实战价值的“带价预测”占比仅33.6%,其综合ROI为5.77%。当前看板易产生“模型很准”的错觉。【建议】将核心监控指标从`hit_pct`切换为`price_n`维度的独立ROI与CLV,并对命中的低价单(赔率<1.5)设置单独的回撤预警阈值。 | — |
| observation | n=12295 medium |
ht_missing_60d 是行级缺失计数,不是「缺半场的场次数」 | IF 消费 data_quality.ht_missing_60d 且据此判「半场赛果缺失积压」THEN 结论不成立——match_results 按来源一行一场(60 天 43,580 行 ↔ 29,527 场),行级缺失被源数放大;且 60 天窗跨越能力边界(qiulaile-htft 2026-08-29 上线,12,295 行中 4,255 行在其前) | 改用 ht_coverage_60d(场级去重 matches/with_ht/pct) 判半场覆盖;凡「积压」结论须先按周分桶看趋势——本案例缺失率 96.5%->18.5% 单调下降,存量属历史遗留而非当期积压 |
| observation | n=8920 medium |
汇总行 hit_n 是赛果桥接覆盖行数,不是命中数 | IF 消费 eval_daily ledger 的 kind=history 行 AND 以 hit_n/pred_n 当作命中率 THEN 结论必为伪(实测 5782/8920=64.8% 为桥接覆盖率,真实命中率 50.6%) | 改用 hit_pct(=correct_n/hit_n,仅覆盖已桥接行)/bridge_pct/price_share_pct 三个显式字段;hit_n 仅表示覆盖度 |
| observation | n=1211 medium |
rule_perf_7d 的 correct/(correct+wrong) 在不同 na 占比的规则间不可比,且该面不提供预期基线/趋势字段 | IF 消费 llm_optimizer.rule_perf_7d 且据某规则 correct/(correct+wrong) 断言「命中率低于预期 / 近期衰退 / A 规则劣于 B 规则」THEN 结论不成立——L4 的 na_share=45.4% 属设计性 NA(direction_map:「需判断低赔是哪一侧」),WILL-15 na=0,两者比值不同口径;本面无任何预期基线或趋势字段;实测 L4 近7日 41.9% vs 前7日 42.2%、WILL-15 46.0% vs 46.9%,CI95 大幅重叠 | 改用 na_share_pct 判可比性(仅 na 占比相近的规则间可比值),hit_pct_na_excluded 为显式「剔除 NA」口径;判趋势须另取多日窗口;提出「暂停/切换观察模式/下线」前先查 config 是否 [死配置](L4/WILL-15 均为死配置,因子表已移除 ⇒ 此类动作为空操作) |
| observation | n=200 medium |
串关风险裁决前置门:止损/连黑结论须与 cushion_units 及实测单日最大亏损同量级 | IF 某串关玩法窗口 pnl>0 且拟提出「连黑 N 期即转负」或「单日止损线 X 元」类建议,THEN 先算 cushion_units = window_pnl / unit_stake,并要求 N <= cushion_units 且 X 与实测单日最大亏损同量级;否则结论无效(永不触发/算术不成立) | ① cushion_units 远大于 N(本轮 56.3 vs 3)=> 判定「连黑 N 期即转负」算术不成立,不予处置;② 止损阈值 X 高于实测单日最大亏损(本轮 360 vs 128)=> 标注「永不触发的无效风控」而非投递;③ 若 scripts/parlay_ev_diagnosis.py 实测 E[pnl/票]>0(本轮 hcap +2.53 / spf +2.83)=> 拒绝任何止损/降注建议(正期望玩法止损摧毁期望值);④ 「止损线 = 历史净利润 X%」须先核基数是否为正(本轮全期累计 -1084.9 => 口径无基) |
| observation | n=143 medium |
竞彩方向分布严重失衡,平局预测比例偏低 | 昨日两市场共预测143场,平局仅占9场(6.3%),显著偏离足球赛事实际平局发生率(通常25%-30%)。方向极度偏斜易造成策略盲区与收益方差放大。建议调整分类器输出阈值,强化平局特征权重,并在资金管理环节引入平局分散因子以降低单一方向依赖。 | — |
| rejected | n=970 weak |
Z2 主胜×平负差买平(威廉刻度发现,B365 刻度不复现) | William 初盘主胜 WHH ∈ [1.85,1.95] 且 平负差 (WHA−WHD) ∈ [0.50,0.60] | 买入 1X2 平(结算价 = 买用时点市场收盘价) |
🚨 最近告警(core.alerts · 最近 10 条)
webhook 未配置时本地落盘不静默
| 时间 | 级 | 来源 | 标题 |
|---|---|---|---|
| 2026-11-08 04:08:45 | error | deep_health | 上游适配器深探测异常 |
| 2026-11-08 21:32:37 | error | health_check | 健康检查异常 |
| 2026-11-09 03:31:28 | error | health_check | 健康检查异常 |
| 2026-11-09 04:11:47 | error | deep_health | 上游适配器深探测异常 |
| 2026-11-09 21:32:07 | error | health_check | 健康检查异常 |
| 2026-11-10 03:30:43 | error | health_check | 健康检查异常 |
| 2026-11-10 04:05:43 | error | deep_health | 上游适配器深探测异常 |
| 2026-11-10 21:31:56 | error | health_check | 健康检查异常 |
| 2026-11-11 03:31:26 | error | health_check | 健康检查异常 |
| 2026-11-11 04:03:27 | error | deep_health | 上游适配器深探测异常 |