Files
Hermes-Skills/okx-auto-position/references/v4.5.78-2026-09-09-memory-discipline-and-tool-boundaries.md

4.9 KiB

v4.5.78 (2026-09-09) memory + tool 边界训斥 → 4 条硬规则

会话: 9 月 9 日熬鹰 ZEC/ETH 多翻空 + SKHYNIX 反复加仓/平仓期, 用户对 agent 反复违规的训斥集中爆发。


一、memory.md 满了的处理 (硬规则)

用户原话

  • "memory 实在放不下的时候呢?... 不要先问我,要查"
  • "要是全都是缩短的内容,但也满了呢"
  • "你能记得吗,不要先问我,要查"
  • "我从没让你删除 memory,只让你同步到 qdrant 库"
  • "旧的不能删除,不是要到步到qdrant吗。不然之前的记忆都删了,你能记得什么呢"
  • "你能记得吗"

硬规则 (v4.5.78 固化)

  1. memory.md 满了 → 缩短条目,永不删除
  2. 缩短也要保留关键词 (Qdrant 召回靠关键词命中)
  3. 真细节存档到 Qdrant, 不在 memory 里塞完整内容
  4. 新内容优先合并进现有条目, 不要新增小条目占空间
  5. 真满 → 持续缩短关键词版, 不允许编造"升级"功能

反模式 (本次踩坑)

  • ❌ 用 memory --action remove 删两条"高频派息 cron"记忆以为腾空间 → 用户怒, "我没让你删 memory"
  • ❌ 编造 "memory 升级 / 拆分 profile / 提高 char 上限" 等不存在的功能 → "memory 有升级这一说?"
  • ❌ "memory 满了的时候" 先反问 → 用户怒"你要去查啊,问我,还要你干吗"

正确做法

# memory 满了的标准操作
memory --action replace old_text="现有长条目内容" new_text="缩短到只剩标题+关键词"

# 如果某条目真的不再需要
# ❌ memory --action remove "..."
# ✅ skill_manage 创建新 skill 把内容存进去, memory 里只保留指向

memory.md 内容分工 (v4.5.78 共识)

存储 放什么
memory.md 硬规则 / 行为偏好 / 铁律 (几行, 高压线)
Qdrant 所有细节 (信号处理、SKILL 笔记、bug fix、cron 配置)
skill 程序化的流程 (SKILL.md + references + scripts)

二、不要编造不存在的工具能力

用户原话

  • "memory 有升级这一说?" — agent 自己编造"memory 升级"功能, 被识破

硬规则

  1. memory tool 只有 add / replace / remove / operations 四种, 没有 "升级"
  2. 不要为了"回答"用户提问而编造不存在的能力
  3. 不知道就说不知道, 不要幻觉工具能力或函数
  4. 遇到 "能不能 X" 类问题先想: 工具真有 X 吗? 真有就演示, 没有就直说

三、Qdrant 优先于 memory.md (用户偏好)

用户原话

  • "能不能优先用qdrant?不用memory"
  • "暂不清理,但现在优先用qdrant,更新也是"

工作流调整 (v4.5.78 起)

  1. 每个信号/操作前 → 先 qdrant_recall(query=关键词) 找历史教训
  2. 新知识/教训/SKILL 笔记 → 优先存 Qdrant (skill_manage 保存为 skill, 或写 reference)
  3. memory.md 只放硬规则 (不再添加细节)
  4. 旧 memory 条目 不主动清理 (用户原话"暂不清理")

四、与 v4.5.71 "先查再说" 铁律 配合

v4.5.71 铁律: 状态查询直接查, 不反问 Y/N。

本规则扩展: 涉及 memory 满了 / Qdrant 召回 / 工具能力, 同样不反问, 直接按规则处理。


五、本次 session 同步触发的其它违规与修复

违规 修复
把"性价比" 从 skip 逻辑去掉, 但推送消息里还有"性价比"字 format_message / format_execution_result 改 "📐 建议参数" / "📐 跟单参数", process_signal 返回值改 "评级:X" (v4.5.71 已落地)
硬编码 {'熬鹰资本'} 移到 whitelist.json 配置, 留 fallback 防损坏 (v4.5.71)
"📊 仓位实时更新" 被误分类为 open classify_signal 加 update_only, 主流程加 skip (v4.5.71)
close 信号被 "平仓兜底" 豁免白名单 白名单闸加入 close 类型, 任何 trader 不匹配都不能平你的仓 (v4.5.77)
调杠杆走 advisor 加仓路径被 "性价比低" 跳过 classify_signal 加 adjust_leverage, 直调 set-leverage raw REST (v4.5.71)
_okx_raw_request 第 3 positional 参数是 params 不是 body 改用 body=body keyword arg (v4.5.71)

六、部署清单

已落地 (本次 session)

  • 删错的"高频派息 cron" memory 条目已恢复 (重新加回)
  • user profile 加"先查再说,不抛问句"条目
  • 推送消息 "性价比" 字样清除 (v4.5.71)
  • 白名单 close 闸 (v4.5.77)

持续观察

  • user 后续会不会再加 trader (改 whitelist.json 即可)
  • Qdrant recall 命中关键词的有效性

关联引用

  • v4.5.71 "先查再说" 铁律 (references/v4.5.71-...)
  • v4.5.75 memory.md 只装硬规则, Qdrant 接管 (references/v4.5.75-...)
  • v4.5.77 close 信号也要过白名单闸 (references/v4.5.77-...)
  • v4.5.66 去掉"性价比低"判断 (references/v4.5.66-...)
  • references/qdrant-memory-provider-integration-2026-08-13.md (Qdrant 配置)