Files
Hermes-Skills/okx-auto-position/references/v4.5.11-skhnx-rapid-fire-silent.md
T

4.8 KiB

v4.5.11 SKHYNIX 30+ 连发加仓信号 silent session (2026-07-13)

背景

用户在 2026-07-13 收到熬鹰 SKHYNIX (SK Hynix 美股代币) 30+ 条连发加仓信号,跟单路径暴露三个并行 bug:

  1. advisor SSL 持续抽风 — 30 分钟内 SKHYNIX 全部加仓信号都报 urllib3.SSLEOFError,agent 反复报告"advisor SSL 报错无execute"
  2. agent 静默轰炸 — 每条信号都回复 "重复信号已推" 或 "SSL 报错无execute",没有在第一条 SSL 报错时主动告知用户"跟单暂停,等网络恢复"
  3. 加仓未生效,用户质问 — 用户看 30+ 条推送后质问 "为什么没加仓?",因为 advisor 一直报错,sys 实际只 execute 了第一条 0.216 张

时间线

16:50 熬鹰 SKHYNIX long 新开仓 3.06 张 @1362.85, advisor 推 0.216张@5x 已跟 (唯一成功), avgPx=1352.85, 浮盈+$0.30
16:55 SKHYNIX 加仓 6.92 张, advisor SSL 失败, agent 报告 "SSL 报错无execute"
17:00 加仓 7.42 张, 同上
17:05 加仓 11.67 张, 同上
17:10 加仓 16.46 张, 同上
... 持续 30+ 条加仓信号(34→39→43→45→50→54→57→61→63→66→69→72→75→81→85→88→92→102→...)
       agent 反复回复 "SKHYNIX long 0.216张@5x 仍持仓, 浮盈~$0.32; 重复加仓信号已推"
17:30 用户问: "为什么没加仓?"

用户原话

(隐含,通过行为推断)

  • 用户没看到任何加仓成功的推送 → 合理质问
  • agent 的"重复信号已推"无法区分 "信号已处理但execute失败" vs "完全没处理"

学到的教训 (本session新增,2026-07-13)

1. advisor SSL 抽风 = 高频失败模式,要主动告知用户

  • advisor SSL 抽风不是单次,是持续状态(本次持续 30 分钟)
  • agent 不能每条都默默报告"SSL 报错无execute",要第一条 SSL 报错就告知用户:
    • 推QQ: "⚠️ SKHYNIX 加仓信号: advisor SSL 持续失败 (CCXT/proxy 抽风), 跟单暂停"
    • 回复侧: "advisor SSL 抽风, 无execute, 跟单暂停, 等网络恢复"
  • 后续同币种同交易员的信号 → 只在QQ合并报一次状态,回复侧不再逐条回复

2. agent 静默 = 用户不知道系统在干嘛

  • 用户视角: 看到 30+ 条推送,合理预期跟单生效
  • 实际: 30+ 条都没 execute,但 agent 没明确告知
  • 修复: 第一条 SSL 失败就推"跟单暂停",后续同币种同交易员信号默认归类为"仍 SSL 抽风,无execute"

3. 信号过密 = 要有节流

  • 熬鹰 SKHYNIX 30 分钟 30+ 条加仓,变化只有仓位张数
  • 正确做法: 第一次完整推送(包含📐 + 持仓),后续只在QQ推一次"持仓快照"状态
  • 回复侧只报"无execute"

4. 跟单暂停 ≠ 系统停机

  • 用户看到"跟单暂停"不会觉得系统挂了,因为说明清楚是网络问题
  • 反而反复"无execute"沉默轰炸,会让人觉得 agent 假死

已修复 (v4.5.11 已写入 SKILL.md)

  • SKILL.md 顶部新增 🔴 [2026-07-13 v4.5.11 实测] 同交易员同币种连发加仓信号 + advisor SSL 抽风时,agent 静默问题 章节
  • 强制流程:
    1. 第一条 SSL 报错 → 推QQ + 回复告知暂停
    2. 后续信号 → 只在QQ合并报一次,回复侧极简
    3. 信号过密 → 必须告知用户暂停,不能继续静默接收

agent 侧正确流程 (本session应该做的)

# 伪代码
def process_signal(text):
    result = subprocess.run(['python3', 'process_signal.py'], input=text)
    output = result.stdout

    # 第一条 SSL 报错时,推用户告知
    if 'SSL' in output or 'advisor错误' in output:
        if not ssl_alerted_yet_for_this_symbol_trader:
            push_qq(f"⚠️ {symbol} {side} 信号: advisor SSL 持续失败, 跟单暂停, 等网络恢复")
            reply(f"advisor SSL 抽风, 无execute, 跟单暂停")
            ssl_alerted_yet_for_this_symbol_trader = True
        else:
            # 后续信号只在QQ合并
            push_qq(f"{symbol} 仍 SSL 抽风, 跟单暂停中")
            # 回复侧不重复告知
    else:
        ssl_alerted_yet_for_this_symbol_trader = False
        # 正常 execute 流程

实战教训 (写给下次session)

  1. 高频失败要主动告知,不能"沉默运行"
  2. 信号过密要节流,不要每条都详细推送
  3. "跟单暂停" ≠ "系统挂了",用户能区分
  4. 用户看不到agent内心,只能看到推送,所以推送就是 agent 的"对外接口"
  5. 第一次失败 = 通知用户,后续失败 = 合并通知

session详情

  • 2026-07-13 16:50 ~ 17:30
  • 信号源: 熬鹰资本 (X聚合社区)
  • 币种: SKHYNIX-USDT-SWAP (SK Hynix 美股代币永续)
  • 标的杠杆: 5x
  • agent execute 次数: 1 (第一条)
  • 实际持仓: SKHYNIX long 0.216 张 @5x, avgPx 1352.85, 浮盈 ~$0.32
  • 跟单暂停原因: advisor SSL 持续 30 分钟抽风, agent 未主动告知用户
  • 用户反馈: "为什么没加仓?"