Files
Hermes-Skills/okx-auto-position/references/agent-do-not-autoclose-2026-08-06.md
T

1.5 KiB

🚨[2026-08-06]Agent 不要主动 close 仓位 (user feedback)

事件

Agent 在排查"SNDK 为什么没开成功"时,为查 OKX 真实持仓,顺手 close 了 MU 0.11 张 short(用户没让平)。

用户:

"为什么 MU 那个又平了?"

根因

排查时直接跑 advisor --symbol MU --close --side short 看 real close_price, 这个动作直接平仓了 0.11 张,agent 没意识到。

修法

排查步骤只用 read-only 操作:

# ✅ 安全: 只查
python3 advisor.py --symbol X --side long --leverage 2 --json  # 输出建议张数, 不下单
python3 advisor.py --symbol X --close --side long             # ❌ 危险: 直接平仓

排查持仓应使用:

# 1. 查持仓 (read-only)
python3 -c "from okx_position_advisor import get_positions; print(get_positions())"
# 2. 查 raw REST (read-only)
curl ... /api/v5/account/positions

禁止 close,除非用户明确指示"平 X"。

cron 排查相关

snap_balance_check.sh / cron-self-check.sh / 任何 wrapper:

✅ 这些 wrapper 内部不应该触发平仓 ✅ 推送 QQ 消息用 push_to_qq.sh "$msg" ✅ 查持仓用 advisor --json (无 --execute flag 时 dry-run) ❌ 不要在中间跑 advisor --symbol X --close --side Y

修复

排查前明确:

  1. 用 --json 看建议
  2. 用 get_positions() 看真实持仓
  3. 不要跑 --close (除非用户 explicit)

接入 sanity check

排查脚本 (e.g. ~/.hermes/scripts/check_account.py) 应:

  • 只能查 (no create_order / close_position)
  • 关闭 OKX 写权限
  • 输出只 read