trading skills: 文档同步 (单币上限规则/平仓盈亏字段/静默规则/推送模板)
This commit is contained in:
@@ -1,15 +1,25 @@
|
||||
# TG信号群 Channel Prompts 配置
|
||||
|
||||
## 当前配置(2026-07-04 命令版)
|
||||
## 当前配置(2026-08-21 改: 防重复推送)
|
||||
|
||||
config.yaml 中的 channel_prompts **必须给出具体可执行命令**,不能只说"加载skill":
|
||||
⚠️ **历史问题**: 之前 prompt 让 agent 收到信号就调 format_signal.py + push_to_qq.sh。但 gateway inline hook (signal_inbox.py → process_signal.py) 已经会自动处理信号 + 推"执行结果"。**结果同一信号推两次**:一次自动开仓的"✅ 执行结果",一次冗余的"⚡ 跟单建议"。
|
||||
|
||||
**修复**: channel_prompts 改为先**检查信号是否已被 inline hook 处理过**(查 signal_queue.db status='done'),**已 done → 静默**;否则走 fallback format_signal.py。
|
||||
|
||||
```yaml
|
||||
telegram:
|
||||
channel_prompts:
|
||||
'-1003966251111': '交易信号处理规则(必须严格执行): 收到含【币种】的消息后,第一步:用terminal工具执行python3 ~/.hermes/skills/trading/okx-auto-position/scripts/format_signal.py --symbol {从【币种】提取} --side {做多=long/做空=short} --leverage {从【杠杆】提取数字} --trader {从第一行【】提取名字} --trader-pos {从【仓位大小】提取} --trader-value {从【仓位价值】提取} --trader-entry {从【开仓价】提取} --trader-pnl {从【未实现盈亏】提取} --signal-type C。第二步:用terminal工具执行bash ~/.hermes/scripts/push_to_qq.sh {脚本输出}。禁止自己编排版模板,必须用脚本输出。非交易消息忽略。'
|
||||
'-1003966251111': '交易信号处理规则(必须严格执行): 收到含【币种】的消息后,第一步:用terminal工具执行 `sqlite3 ~/.hermes/trading/signal_queue.db "SELECT status FROM queue WHERE raw_text LIKE '%' || '{从【币种】提取}' || '%' ORDER BY id DESC LIMIT 1"` 检查最新队列状态。第二步:如果 status='done' (已被 inline hook 处理过, 即已自动开仓或已跳过) → 静默返回 "⏭️ 已处理", 不做任何推送。第三步:如果 status='failed' 或 'pending' → 用terminal工具执行python3 ~/.hermes/skills/trading/okx-auto-position/scripts/format_signal.py --symbol {从【币种】提取} --side {做多=long/做空=short} --leverage {从【杠杆】提取数字} --trader {从第一行【】提取名字} --trader-pos {从【仓位大小】提取} --trader-value {从【仓位价值】提取} --trader-entry {从【开仓价】提取} --trader-pnl {从【未实现盈亏】提取} --signal-type C,然后执行 bash ~/.hermes/scripts/push_to_qq.sh {脚本输出}。非交易消息忽略。'
|
||||
```
|
||||
|
||||
### 关键变化
|
||||
|
||||
- ✅ 新增第一步:查 signal_queue.db 状态
|
||||
- ✅ status='done' → 静默(`⏭️ 已处理`),**不重复推送** — 这是修复重复推送的核心
|
||||
- status='failed' 或 'pending' → 才走 format_signal.py fallback 推人工确认
|
||||
|
||||
⚠️ 注意: inline hook 处理的信号会自动推"✅ 执行结果"(开仓成功)或"⏭️ 跳过"(被拦),这些才是真正的推送。agent 走 format_signal.py 是给 inline hook 没处理的信号做兜底,例如 cron retry 或人工补单。
|
||||
|
||||
### ⚠️ 极简版channel_prompts("加载skill按流程处理")实测失败
|
||||
|
||||
**教训(2026-07-04)**:agent不会主动加载skill。写"加载skill okx-auto-position按流程处理"时,agent无视指令,继续用硬编码模板推送错误金额。
|
||||
|
||||
Reference in New Issue
Block a user