Files
Hermes-Skills/okx-auto-position/references/v4.5.15-silent-repeat-template.md
T

3.9 KiB

v4.5.15 — Silent-repeat reply template ban (2026-07-08)

Captured from: 2026-07-08 Telegram session, ~30 consecutive SKHYNIX long add-signals from 熬鹰资本 (3.06 → 400+ 张, 1% < change per signal). User observed agent producing the exact same one-liner ~30 times.

The exact anti-template (DO NOT WRITE)

SKHYNIX long 0.216张@5x 浮盈+$X 仍持仓; 重复加仓信号已推

Variants observed in this session (all banned):

  • SKHYNIX long 0.216张@5x 浮盈+$0.32 仍持仓; 重复加仓信号已推
  • SKHYNIX long 0.216张@5x 浮盈+$0.12 仍持仓; 重复加仓信号已推
  • SKHYNIX long 0.216张@5x 浮盈+$4.18 仍持仓; 重复加仓信号已推

The pattern: any reply that only re-states the current holding + floats + adds "重复信号已推" / "重复加仓信号已推" is forbidden when process_signal.py returned one of:

  • ⏭️ 重复信号,跳过
  • ⏭️ 噪声信号(<1%变化),跳过
  • ⏭️ 平仓信号完全重复跳过
  • ✅ 已推送 | X X x | N张 | 性价比XX AND no actual position change

Why it kept happening

  1. process_signal.py returned the dedup string → agent thought "I should still report something" → wrote the holding state.
  2. position not changed was treated as worth reporting (it isn't — QQ already has the latest state).
  3. No hard rule said "if dedup hit, output ≤ 5 chars or nothing".

Hard rule (v4.5.15)

When process_signal.py returns ⏭️ or ✅ 已推送 AND no new position was opened AND no position was closed:

  • Reply ≤ 1 line, ≤ 30 chars
  • Preferred: ⏭️ (literally one emoji, or two: ⏭️ dedup)
  • Acceptable: ⏭️ SKHYNIX 仍持仓 (no floats, no USDT)
  • Forbidden: re-stating floats (+$0.32), USDT balance, or "重复加仓信号已推"
  • Forbidden: writing a NEW line of analysis ("熬鹰持续加仓中, 等平仓信号")

When process_signal.py returns ⚠️ advisor错误: ... (SSL/timeout/raw REST also failed):

  • Reply: ⚠️ {SYMBOL} advisor失败,无execute,USDT $X (1 line, the USDT is allowed because user needs to know if balance changed)
  • Do NOT spam this for every consecutive signal — after the first occurrence, switch to ⏭️ 仍SSL抽风

Session-timeline reference

Signal # process_signal result Reply agent gave Reply should have been
1 ✅ 已推送 SKHYNIX long 5x 0.216张 SKHYNIX long 0.216张@5x 已跟, 浮盈+$0.30, USDT $39 (correct — first execution)
2 ⏭️ 重复信号跳过 SKHYNIX long 0.216张@5x 浮盈+$0.32 仍持仓; 重复加仓信号已推 ⏭️ (or ⏭️ SKHYNIX 仍持仓)
3-30 ⏭️ 重复信号跳过 (same 1-line re-state) ⏭️ every time
~10 ⚠️ advisor错误: SSL ⚠️ advisor SSL报错无execute ⚠️ SKHYNIX advisor失败,无execute,USDT $39
~15-30 same ⚠️ repeated ⏭️ 仍SSL抽风

Why this complements v4.5.10/13

  • v4.5.10 banned "三选一/Y持/Y减/Y加" — these are decision-tree replies, not status replies.
  • v4.5.13 banned repeated state replies — but the agent kept producing a "soft" version (one line, status only, no decisions).
  • v4.5.15 closes the gap: even a 1-line state re-state is forbidden when nothing changed.

Concrete grep self-check

Before sending any reply for a repeat signal, agent must run:

DRAFT='{reply_to_send}'
echo "$DRAFT" | grep -qE '浮盈|仍持仓|重复.*已推|无execute' && echo 'STOP: this is a status re-state'

If STOP line prints → replace reply with single ⏭️ or omit entirely (return no message).

Verified clean example (signal 80 in this session)

When the SKHYNIX add-storm finally hit a 🚨 已平仓提醒, reply was:

SKHYNIX long 已自动平仓

That's 1 line, ≤ 20 chars, factual, no state restate — exactly the shape v4.5.15 mandates.