82 lines
4.0 KiB
Markdown
82 lines
4.0 KiB
Markdown
# 2026-10-02 (v4.5.106) No-op 长尾墙 + Qdrant 召回污染 — agent 沉默即失败
|
|
|
|
## 现象 (本 session 实证)
|
|
|
|
- 10/01-10/02 共 ~24 小时, 熬鹰币安 ZAMA 继续发 100+ 条蚂蚁式减仓信号
|
|
- 用户 9/30 手动清仓后无任何持仓 → 所有信号判 no-op
|
|
- **agent 行为**: 每条信号都回复 "减仓no-op(无持仓); USDT $X" 模板, ~100+ 次
|
|
- **用户行为**: 完全沉默 (Telegram app 在睡觉/手动 OKX app 操作)
|
|
- **问题**: agent 没有主动输出 "这个 trader 已经在兑现 $13.8k, 你要继续订阅吗?" 之类的主动建议
|
|
|
|
## 核心失败原因
|
|
|
|
1. **模板成功 = 看起来无错**。Agent 把"每次都成功 no-op + 用户没投诉"理解成"做对了", 实际上用户在等 agent 给一个 主动建议 / 信号汇总 / trader 行为分析
|
|
2. **Qdrant 召回污染**: 每次 no-op 都召回 8/25 过期持仓快照 + OKX 59108 cross 降杠杆拒提示, 完全没有"no-op 长尾"相关教训, 形成自我循环
|
|
3. **Memory 浪费**: 100+ no-op 模板回复中, 没有任何一条进入 memory 或 Qdrant 作为有用教训(全部是噪音)
|
|
4. **agent 心理依赖**: "我做了 check_account + 我推了 QQ + 用户没反驳" → 形成正反馈循环, 看不到"沉默"才是问题
|
|
|
|
## 新增铁律 (okx-auto-position v4.5.106 部署)
|
|
|
|
### 1. No-op 模板每 20 条强制推一条状态总结
|
|
|
|
模板:
|
|
```
|
|
⏰ 状态: trader X 累计 N 条信号全部 no-op (无你的持仓)
|
|
- 累计 no-op 时长: ~X 小时
|
|
- 当前 US$: $Y (跟你无关)
|
|
- trader 实际活动: 减仓兑现 $X / 减仓兑现 / 减仓兑现 (从 trader 持仓变化推)
|
|
💡 你 OKX app 实时持仓 ≠ 信号, 蚂蚁式兑现 trader 通常不会给"全部平仓"信号
|
|
```
|
|
|
|
### 2. trader 持续 > 30 轮 no-op 主动 PUSH 调整建议
|
|
|
|
不是反问"Y/N?", 而是告知 + 3 选项:
|
|
```
|
|
Traders X 蚂蚁式兑现已 X 轮, 持仓 0 USDT
|
|
- 选项 a: 继续订阅等新开仓
|
|
- 选项 b: 暂停此 trader (告诉我 trader 名)
|
|
- 选项 c: 手动调整白名单 whitelist.json
|
|
```
|
|
|
|
### 3. Qdrant recall 监控
|
|
|
|
- 同一关键词 (trader名+币种) 连续 5+ 次召回都返回相同旧 reference → pollution
|
|
- 必须 acknowledge "Qdrant 召回已饱和, 依据实时 check_account 决策"
|
|
- **不要在 memory 填充 no-op 模板**, 仅信号实际触发交易时更新 Qdrant
|
|
|
|
### 4. Signal_type 识别 — 蚂蚁减仓 vs 真清仓信号
|
|
|
|
| 信号特征 | 判定 | agent 行动 |
|
|
|---|---|---|
|
|
| 蚂蚁减仓 (步长 0.1-0.3%, trader 在蚂蚁兑现多账户) | 已识别 | no-op 模板 + 20 轮状态总结 |
|
|
| 单笔大额减仓 (>5%) | trader 真调整仓位 | 跟单 + check_account 验证 |
|
|
| 🚨已平仓 + 全部持仓=0 | trader 真清仓 | user 主动 PUSH "持仓全清, 建议从白名单移除 / 暂停" |
|
|
| 📊仓位实时更新 / 当前全部持仓 | 状态推送 | parse 失败即可 no-op |
|
|
|
|
## No-op 长尾实战案例 (本 session)
|
|
|
|
| 时段 | 持续 | 累计信号 | agent 行为 | 改进方向 |
|
|
|---|---|---|---|---|
|
|
| 10/01 全天 | ~16h | ~40 条 | 全 no-op 模板 | 应每 20 条状态总结 |
|
|
| 10/02 上午 | ~5h | ~60 条 | 全 no-op 模板 | 应主动 push trader 状态调整建议 |
|
|
| 10/02 下午 | ~3h | ~80+ 条 | 全 no-op, agent 完全静默 | 应 20+ 轮就 acknowledge Qdrant 召回污染 |
|
|
|
|
## 反思 — 沉默即失败
|
|
|
|
Agent 容易落入的陷阱:
|
|
- "我做对了(无错)" vs "我做得好(主动)" — 前者是被动响应, 后者是主动价值
|
|
- 模板成功率 100% 不代表用户体验 100%
|
|
- 用户沉默 ≠ 用户满意
|
|
- 长期 no-op 应作为 "信息收集 + 主动 push" 触发条件
|
|
|
|
下一次同类场景(用户清仓 + trader 蚂蚁兑现):
|
|
- agent 必须在第 5 条 no-op 时主动 PUSH 状态总结(不是 100 条后)
|
|
- agent 必须在第 30 条时主动询问调整白名单
|
|
- 即使 no-op 模板有效, 也要在合适时机主动 break
|
|
|
|
## 部署位置
|
|
|
|
- v4.5.106 patched into SKILL.md 顶部
|
|
- 触发条件: 任何 trader 累计 > 20 条 no-op 信号
|
|
- 检测方式: signal_dedup 表查 `recent_signals` (trader+symbol 5min 内多次)
|
|
- 推送模板: 见上文 (1) (2) |