Repository navigation
BAZZ.AGENT v1.7.3
🆕 v1.7.3 更新要点(妖币雷达四修 + 广场稿两轮改稿)
① 妖币「历史战绩」根本展开不了 —— 前端把 42 条静默丢了
界面上历史战绩永远只有 8 条,下面那行「还有 N 条」是死 div、没有 onClick。
而后端 tracks_view 其实早就下发了 50 条(history[:HISTORY_SHOWN]),
多出来的被前端 slice(0, 8) 直接吃掉,用户无从展开。
修法:后端加 history_limit 参数(默认 50 / 上限 HISTORY_FETCH=200),payload 补
history_fetch_max,路由接 ?history_limit=;前端改成 useState 增量展开,把死文案
换成真按钮,本地 8 条走到头就向后端要更多。
真实 HTTP 实测(拿真实库副本起后端):?history_limit=8/12/200/9999 分别回
8 / 12 / 25 / 25 条,history_total 恒为 25,超上限被夹到 200。
② 妖币发帖既不落台账、也不建模拟挂单
square_store.record_from_run 的白名单与建单钩子只认 square-post / square-rich-post,
妖币走的 square-monster-post 一条都不认;agent_core 与 skills_client 两个记账
入口同样漏掉。而数据其实早就备好了:monster 的 cli.mjs 也打印 已合成 → <dir>,
compose() 写的 meta.json 里 plan 与 rich 结构完全兼容
(direction/entry/stop/tp/price)—— 只是没有人去读。
安装版真实库里 paper_orders 长期为 0,正是「从来没建过一笔纸单」的印证。
修法:引入 MONSTER_SKILL + _POST_SKILLS / _COMPOSE_SKILLS 两个集合,三处入口一并补上。
端到端实测(隔离工作区、真实 record_from_run):落台账 posted → paper_orders 建单 →
幂等(同 run_dir 不重复)→ 发布失败不建单,19 项全过。
③ 从妖币雷达里挑出来的币,被判成「不是妖币」去走 SMC
分流原本整段交给 LLM 凭印象判断,而它不会去查雷达名单 —— 于是用户明明是从
「行情 → 妖币雷达」列表里挑的币,照样被判成普通代币、拿 SMC 的 OB / FVG 去分析。
修法:新增确定性工具 radar_lookup(square_monster.radar_lookup 复用 _row_of,
查 scanner.get_radar_v2 的 coins / takeoff / ignition),并在系统提示里写死:
凡就某个币发文,必须先查名单再分流 —— 在册走 monster,不在册才走 rich。
实现上有个坑值得记:radar_lookup 必须自洽补 USDT(只给 AAA 要当成 AAAUSDT),
否则「用户只打了个 base」会被读成「不在名单」—— 这个假阴性是端到端验证时抓出来的。
④ 广场帖两轮改稿:先治「堆料」,再补回信息量
第一轮(治「乱、杂、抓不到重点、AI 味重」):4 套风格全部重写 ——
结论前置 + 三条硬数据 + 操作计划,删掉每篇雷同的通用科普段与 5 行页脚,
出稿从 800+ 字符压到 300 上下。
第二轮(用户看真稿后定调):
- 删掉「
⚠️ 10x 下 10% 止损就是强平线…」整段,以及「出场:认输线 / 达标线 / 移动止盈 /
提前落袋」整行 - 页脚那句「数据来自 Monster Radar 同源行情 · 非投资建议 · github…」换成可核对的读数:
· 24h 成交额 1.79 亿 · OI 24h +1.4% · 资金费率 +0.010% · RVOL(15m) 0.6x · taker 1.03 - 改完又嫌太短 → 补三块有信息量的东西:
| 补什么 | 数据来源 |
|---|---|
| 三轴各自的依据(触发判据 / 控盘指纹 / 燃料读数) | row.reasons(与雷达 UI 同源)+ 燃料项读数 |
| 同类参照(同阶段历史战绩) | state.radar_tracks_stats()['by_stage'](本机真实关单记录) |
| 位置坐标 + 链上筹码 | position_pct / drawdown_pct / from_low_pct;onchain(仅真测到时写) |
样例:「同类参照:本机已跟踪 13 笔「点火」样本 —— 4 笔启动后落袋、8 笔 7 天没启动、
1 笔先打到 −10%(落袋率 30.8%)」;「· 位置:90d 区间 98% 分位(距高点 −0.8% /
距低点 +80.2%)」。字数回到 390~560,且每一行都能自己去核对。
⑤ 出真稿时抓到的两个 bug(都不是逻辑错,是「跑测试看不见」型)
| 问题 | 根因 | 修法 |
|---|---|---|
| 正文段落粘连 | _verdict_block 与风格开头句之间没有空行 → Markdown 把「这一格在演什么…」和「结论:…」并成同一段 |
4 套风格补空行 |
| 封面文字重叠 | 价格接近 90 日高点时,跟随价格线的「现价」标签顶进页头,压住右上角的「妖币剧本引擎 · 位阶/控盘/燃料」 | 标签改放价格线下方 |
这两个跑测试都抓不到 —— 只有真出一张图、真发一篇文章才会暴露。
⑥ 已知问题(本版未修,已记录)
判「位阶晚不晚」只用了 24h 涨幅(>10%)+ OI 24h 两条,不看 90 日位置。
实测 QNTUSDT:24h 仅 +1.0% → 判 allow=YES → 结论「可埋伏 —— 位置不算晚」,
而它同时是 90d 区间 100% 分位(距高点 +0.0%)、30d +362.8% —— 正文里两句自相矛盾。
本版只把位置照出来(新增位置行),没有动判据:无样本不改判据是本项目的纪律。
下一步应当用真实关单样本回放,先验证「高位是否该扣到 allow=NO」再动手。
验证:全量 28 套件通过 / tsc --noEmit 干净 / vite build 成功 /
端到端 19 项通过 / 护栏变异验证 27/27 全部转红 / 真实 HTTP 参数实测。