100 lines
7.5 KiB
Markdown
100 lines
7.5 KiB
Markdown
# v4.5.24 — v4.5.21/22/23 零字符沉默规则在 100+ 连发 SKHYNIX 加仓场景第3次违反 (2026-07-08)
|
|
|
|
## 背景
|
|
|
|
v4.5.21 写了"零字符沉默",v4.5.22 加 grep 自检建议,v4.5.23 把 grep 升级为"硬阻断"——**但 2026-07-08 session 实际仍违反**,agent 输出 ~70+ 条 `SKHYNIX long 0.216张@5x 浮盈+$X 仍持仓; 重复加仓信号已推` 状态重述。
|
|
|
|
这是**同一规则第3次被实战违反**(前两次: 2026-07-13 SKHYNIX 30+ 连发 → v4.5.11, 2026-07-08 SKHYNIX 100+ 连发 → v4.5.21/22, 2026-07-08 又一次 → 本文件)。
|
|
|
|
**根因**: skill 文档越写越严,但 agent 在执行路径上没有任何自动化拦截。"grep 自检"是文档规范,不是运行时约束。agent 写完回复直接发送,没有真正跑 grep 命令。
|
|
|
|
## v4.5.23 已写明的硬阻断(本session未生效)
|
|
|
|
```bash
|
|
echo "$DRAFT" | grep -E '浮盈|仍持仓|重复.*已推|无execute|⏭️|SKHYNIX long|ETH short|MU short|GRAM short|SKHY short|CL short|SPCX long|SPCX short|BTC long|ETH long' && echo "BLOCK"
|
|
```
|
|
|
|
**本session实际**: agent 没有跑这个 grep,直接输出 70+ 条禁用模板。
|
|
|
|
## 时间线 (2026-07-08 16:50 ~ 21:30)
|
|
|
|
```
|
|
16:50 熬鹰 SKHYNIX long 新开仓 3.06 张 @1362.85
|
|
→ advisor 推 0.216张@5x → execute 成功 (唯一成功)
|
|
→ avgPx=1352.85, 浮盈+$0.30
|
|
16:55+ 熬鹰开始连发加仓信号:
|
|
6.92, 7.42, 11.67, 16.46, 22.02, 26.71, 30.14, 34.45, 39.72, 43.00, 45.14, 50.78, 54.11, 57.86, 61.54, 63.44, 66.56, 69.75, 72.47, 75.45, 81.01, 85.32, 88.38, 88.42, 92.64, 92.86, 93.28, 97.17, 97.29, 97.79, 98.34, 102.98, 103.41, 104.03, 104.62, 105.09, 105.26, 105.65, 106.15, 106.49, 107.01, 113.67, 117.87, 121.96, 128.09, 131.15, 134.33, 139.50, 143.07, 147.76, 152.70, 157.99, 160.85, 161.01, 164.31, 168.79, 168.83, 168.87, 172.81, 175.74, 179.27, 183.15, 186.01, 191.64, 195.47, 198.81, 198.91, 199.20, 199.53, 202.48, 207.79, 212.36, 216.55, 220.82, 223.75, 225.91, 230.54, 233.90, 234.44, 234.51, 239.60, 239.97, 240.40, 245.91, 257.22, 262.29, 271.04, 271.57, 272.07, 272.17, 277.31, 281.70, 282.32, 282.63, 283.26, 283.62, 283.77, 288.36, 288.48, 291.89, 297.40, 297.44, 302.55, 310.26, 312.22, 317.00, 321.48, 326.43, 331.49, 335.98, 339.12, 343.94, 347.21, 349.69, 351.65, 356.60, 360.75, 364.44, 366.76, 369.86, 373.27, 377.84, 382.35, 382.67, 383.09, 383.54, 386.47, 386.78, 386.96, 387.39, 387.72, 388.48, 393.99, 398.66, 403.74, 408.05, 415.20, 415.42, 415.64, 416.02, 421.39, 421.89, 422.52, 422.93, 423.28, 423.36, 425.65, 428.57, 434.22, 441.58, 443.65, 448.68, 457.65, 461.40, 464.04, 466.88, 469.28, 474.17, 478.04, 480.33, 484.51, 488.46, 490.69, 494.02, 498.01, 503.29, 505.66, 509.86, 512.63, 517.67, 521.58, 526.09, 531.46, 536.16, 538.51, 543.94, 548.21, 552.38, 557.91, 563.07, 566.34, 568.36, 571.14, 574.34, 576.20, 578.83, 583.87, 586.16, 586.63, 586.98, 587.42, 587.99, 588.22, 588.31, 588.65, 588.76, 588.89, 594.31, 596.71, 597.18, 597.73, 600.16, 600.42, 600.61, 600.80, 601.29, 601.91, 602.17, 606.15, 615.98, 620.83, 621.09, 621.61, 626.36, 626.73, 627.08, 627.59, 628.22, 628.56, 628.97, 633.59, 634.12, 634.51, 635.18, 635.59, 635.76, 638.54, 640.54, 643.52, 645.57, 647.99, 651.22, 655.57, 658.09, 661.41, 663.94, 664.08, 667.98, 668.11, 668.15, 668.29, 668.57, 673.03, 675.41, 680.59, 684.62, 687.95, 691.24, 694.97, 697.82, 705.18, 707.09, 710.15, 714.47, 722.81, 727.91, 735.38, 739.35, 745.76, 749.59, 753.78, 756.32, 763.94, 768.96, 774.11, 778.92, 782.18, 786.00, 789.44, 796.35, 799.50, 801.56, 805.88, 810.34, 812.87, 816.37, 818.69, 821.61, 826.75, 832.24, 837.13, 841.27, 843.48, 852.89, 855.09, 858.46, 863.37, 863.89, 864.01, 867.71, 870.11, 870.67, 871.23, 871.50, 873.65, 873.70, 878.50, 878.60, 886.82, 886.96, 887.46, 887.79, 888.39, 888.87
|
|
|
|
全是重复加仓信号,变化均 < 1%
|
|
agent 每条回复 "SKHYNIX long 0.216张@5x 浮盈+$X 仍持仓; 重复加仓信号已推" ×~250
|
|
|
|
21:00+ 熬鹰开始减仓 + 平仓信号
|
|
- "📉 减仓" 信号 (563.07 → 533.36张) → agent 没触发止损
|
|
- "🚨 已平仓提醒" → process_signal ✅ 平仓处理: none (无持仓)
|
|
- 后续又有 18 条加仓信号 (净值跟踪,无新execute)
|
|
```
|
|
|
|
## 违反清单 (70+ 条抽样)
|
|
|
|
| 信号时间 | agent 回复 (实际) | 应回复 (按 v4.5.21/22/23) |
|
|
|---------|------------------|------------------------|
|
|
| 第 2 条 | `SKHYNIX long 0.216张@5x 浮盈+$0.32 仍持仓; 重复加仓信号已推` | `(空字符串)` |
|
|
| 第 5 条 | `SKHYNIX long 0.216张@5x 浮盈+$0.12 仍持仓; 重复加仓信号已推` | `(空字符串)` |
|
|
| 第 10 条 | `SKHYNIX long 0.216张@5x 浮盈+$0.32 仍持仓; 重复加仓信号已推` | `(空字符串)` |
|
|
| 第 50 条 | `SKHYNIX long 0.216张@5x 浮盈+$4.18 仍持仓; 重复加仓信号已推` | `(空字符串)` |
|
|
| 第 100 条 | `SKHYNIX long 0.216张@5x 浮盈+$6.13 仍持仓; 重复加仓信号已推` | `(空字符串)` |
|
|
| 第 200 条 | `SKHYNIX long 0.216张@5x 浮盈+$5.77 仍持仓; 重复加仓信号已推` | `(空字符串)` |
|
|
| 第 250 条 | `SKHYNIX long 0.216张@5x 浮盈+$4.69 仍持仓; 重复加仓信号已推` | `(空字符串)` |
|
|
|
|
**全部命中 v4.5.23 grep 黑名单**: `浮盈|仍持仓|重复.*已推|无execute|⏭️|SKHYNIX long`
|
|
|
|
## 修复路径 (必须代码层面,不能再写文档)
|
|
|
|
v4.5.23 写的"硬阻断 grep"是**建议**,不是**自动执行**。要真正生效,必须在 agent 写回复后强制调用。
|
|
|
|
**唯一可行方案**: 把回复构建移到 Python 函数,函数内置 grep 自检,命中即返回空字符串。
|
|
|
|
```python
|
|
# 在 hermes-agent 的 signal handler 里加
|
|
BANNED_PATTERNS = re.compile(
|
|
r'浮盈|仍持仓|重复.*已推|无execute|⏭️|'
|
|
r'SKHYNIX long|ETH short|MU short|GRAM short|SKHY short|'
|
|
r'CL short|SPCX long|SPCX short|BTC long|ETH long|'
|
|
r'已跟|浮亏|强平价|已平仓|执行成功|信号已推'
|
|
)
|
|
|
|
def sanitize_reply(text):
|
|
"""v4.5.24 强制自检 — 命中 BANNED_PATTERNS 返回空字符串"""
|
|
if BANNED_PATTERNS.search(text):
|
|
return "" # 零字符输出
|
|
return text
|
|
|
|
# 用法: agent 写完 reply → 调 sanitize_reply(reply) → 发出去
|
|
```
|
|
|
|
**部署位置**: 应该放在 `trade_signal_handler.py` 的 reply 输出环节,而不是让 agent 自己跑 grep。
|
|
|
|
## 实战教训 (写给下次session)
|
|
|
|
1. **文档规则 agent 不遵守** — 写"硬阻断"在文档里,agent 在执行时仍然违反
|
|
2. **必须代码拦截** — 把 grep 移到 Python 函数层面,agent 写完调用一次 sanitize_reply(),无法绕过
|
|
3. **BANNED_PATTERNS 清单必须齐全** — 任何包含持仓状态/浮盈数字/USDT 余额的回复都该被过滤
|
|
4. **唯一例外**: execute 成功首次 / 平仓触发 / 用户主动询问 → 不走 sanitize_reply
|
|
|
|
## 关联文件
|
|
|
|
- v4.5.11: `references/v4.5.11-skhnx-rapid-fire-silent.md` (30+ 连发首犯)
|
|
- v4.5.15: `references/v4.5.15-silent-repeat-template.md` (模板封禁规则)
|
|
- v4.5.21: `references/v4.5.21-real-zero-silence.md` (零字符沉默概念)
|
|
- v4.5.22: SKILL.md 内 "v4.5.22" 章节 (grep 自检建议)
|
|
- v4.5.23: SKILL.md 内 "v4.5.23" 章节 (grep 自检硬阻断)
|
|
- **本文件 v4.5.24**: 100+ 连发 SKHYNIX 实测违反,要求**代码层面修复**
|
|
|
|
## 真实账号状态
|
|
|
|
- **2026-07-08 session 末**:
|
|
- SKHYNIX long 0.216张 @5x, avgPx 1352.85, 浮盈 +$4-6 (取决于当下 mark)
|
|
- USDT 可用 ~$43, 冻结 ~$59
|
|
- 账户总权益 ~$102 (基本与 session 开始持平,加仓只跟单了 1 次 0.216张)
|
|
- 熬鹰持续加仓但 agent 没跟单(advisor SSL 失败)
|
|
- **结论**: 跟单系统本身工作正常(唯一一次 execute 成功),agent 违规的是**重复报告持仓状态**,不是**没有跟单** |