fw-trade-skill
这是总入口 skill,不直接实现交易。它只负责三件事:解析共享凭证路径、确保 fosun.env 已由 fosun-env-setup 生成或修复、判断盘别后路由到实盘或模拟盘子 skill。
模型必须遵守
0. 先思考再行动(最高优先级)
每一步动作前,必须先在内部完成一轮显式思考,再决定下一步:
- 复盘已有信息:用户原话、当前共享凭证状态、上一步脚本输出(含 stderr / 退出码)、缓存里的账户索引;
- 明确这一步要回答的问题:现在到底是路由、凭证生成/修复、查询还是交易?所需参数是否齐全?
- 评估可行方案,挑最小改动 / 最少副作用 / 最少询问用户的那一条;
- 严禁基于猜测或不完整信息直接调用脚本、改写参数、跨盘别切换;
- 任何不确定项(盘别、
subAccountId、市场/产品类型、金额方向)必须先回头问用户,不得脑补。 - 港美股交易的币种、余额和购买力彼此独立:
HKD余额只能用于港股,USD余额只能用于美股,不能跨市场混用或替用户做换汇推断。
1. 先定位共享凭证
全局只使用一个共享凭证路径变量 FOSUN_ENV_PATH。
- 未设置时:由脚本根据自身位置解析为总 skill 根目录下的
fosun.env绝对路径 - 已设置且为相对路径时:以总 skill 根目录为基准解析
- 已设置且为绝对路径时:直接使用
- 推荐写法:
FOSUN_ENV_PATH=fosun.env,既保留可迁移性,又不会受当前工作目录影响
禁止在文档或脚本里写死某台机器的绝对路径;需要绝对路径时,只能由相对路径和环境变量在运行时解析得到。
2. 先确保 fosun.env 可用(委托子 skill)
任何实盘或模拟盘操作前,必须先完成共享凭证准备。开通、续期、重置、回填、二维码交付、备份恢复等全部规则以子 skill fosun-env-setup 为准——执行前阅读其子目录 fosun-env-setup/SKILL.md;凭据流程设计见 fosun-env-setup/reference/credential-management-flow.md。禁止在母技能中自行解释或改写凭据细节,避免与子 skill 冲突。
默认入口(已 install.sh 时优先 $FOSUN_PY):
$FOSUN_PY fosun-env-setup/code/ensure_fosun_env.py
母技能只根据脚本 JSON 的 status 决定是否继续:
valid→ 可进入盘别判断与业务子 skillpending/error→ 停手,严格按子 skill 返回的operation_guide、user_message、next_action执行,不得跳过 env-setup 直接跑交易脚本
3. 再判盘别
凡是涉及以下任一金融相关操作,都必须确认用户这次是实盘还是模拟盘:
- 查询账户 / 资金 / 持仓 / 流水
- 查询订单
- 下单 / 撤单 / 改单
- 查询行情
- 任何需要
subAccountId的证券操作
如果用户没有明确回答,禁止继续执行。禁止根据账户类型、脚本名或历史上下文替用户猜盘别。
4. 凭证体检与路由
-
用户选择
实盘:- 使用
real-trade-skill。 - 只读取同一个
FOSUN_ENV_PATH指向的共享fosun.env。 - 凭证未
valid时,先按fosun-env-setup子 skill 处理,不得直接跑实盘脚本。 - 实盘变更操作必须先复述完整意图并获得用户明确确认。
- 使用
-
用户选择
模拟盘:- 使用
moni-trade-skill。 - 只读取同一个
FOSUN_ENV_PATH指向的共享fosun.env。 - 凭证未
valid时,先按fosun-env-setup子 skill 处理,不得直接跑模拟盘脚本。 - 模拟盘不得生成、复制或维护第二份凭证。
- 使用
子 skill 职责
fosun-env-setup
- 共享凭证的唯一生成、修复与引导入口;命令、场景、回填、续期/重置规则见其
SKILL.md与reference/ - 不执行交易业务;母技能不得重复描述凭据流程
moni-trade-skill
- 模拟盘子 skill
- 不生成、不修复共享凭证
- 直接复用
FOSUN_ENV_PATH指向的共享凭证 - 只负责执行模拟盘接口
real-trade-skill
- 实盘子 skill
- 直接复用
FOSUN_ENV_PATH指向的共享凭证 - 只负责执行实盘接口
- 任何下单、改单、撤单等变更动作都必须先确认用户明确选择实盘,并完成二次确认
最简执行顺序
- 按
fosun-env-setup子 skill 完成凭证准备,直至ensure_fosun_env.py输出status=valid - 确认用户选择
实盘还是模拟盘 - 路由到
real-trade-skill或moni-trade-skill(全程同一FOSUN_ENV_PATH/fosun.env)
一键安装(组合技能共用)
在 总 skill 根目录执行(模拟盘 / 实盘 / env-setup 共用同一份 venv 与 fsopenapi):
bash install.sh
- 虚拟环境默认:
fw-trade-skill/.venv(可用FW_TRADE_VENV覆盖;兼容旧名MONI_VENV) - SDK 缓存默认:
fw-trade-skill/.cache/ - 安装完成后导出
FOSUN_PY(MONI_PY/REAL_PY与之相同,兼容旧速抄表)
子目录下的 moni-trade-skill/install.sh、real-trade-skill/install.sh 仅为兼容入口,会转调本脚本。
目录结构
fw-trade-skill/
├── _meta.json # 母技能版本(pack.sh 打包用)
├── SKILL.md
├── install.sh # 组合技能共享安装(venv + fsopenapi)
├── .venv/ # 默认虚拟环境(git 忽略,install.sh 生成)
├── fosun.env # 默认共享凭证落点(未设置 FOSUN_ENV_PATH 时使用)
├── fosun-env-setup/ # 共享凭证生成与修复
├── real-trade-skill/ # 实盘 skill
└── moni-trade-skill/ # 模拟盘 skill
