OKX Strategy Factory — Agent Team
协调 5 个专家 Agent 完成交易策略全生命周期。Lead 只协调不写代码。
CODEBLOCK0
这是文件夹 Skill。按需读取 roles/、references/、assets/,不要一次性加载全部。
Strategy Selection
Lead 启动 Pipeline 时必须指定策略名称 {strategy},所有路径和状态按策略隔离。
- - 已有策略:
grid-trading、 INLINECODE5 - 新策略: 指定新名称即可,自动创建
Strategy/{strategy}/ 工作空间 - 每个策略拥有独立的
Strategy/{strategy}/state.json,互不干扰 - 同一时间可有多个策略处于不同阶段(如 grid-trading 在 LIVE,cl-lp-rebalancer 在 BACKTEST)
When to Use
- - 开发新交易策略 → Lead 指定
{strategy} 名称,读 roles/lead.md,spawn strategy + backtest - 回测 → spawn backtest,读
roles/backtest.md,指定 INLINECODE11 - 部署到 VPS → spawn infra,读
roles/infra.md,指定 INLINECODE13 - 发布为独立 Skill → spawn publish,读
roles/publish.md,指定 INLINECODE15 - 迭代/复盘 → spawn iteration,读
roles/iteration.md,指定 INLINECODE17 - 全流程 → spawn 全部 teammate,Lead 指定
{strategy} 后协调
示例:
CODEBLOCK1
Pipeline: Execution Steps
CRITICAL RULE: Steps MUST execute in order. Do NOT skip steps or proceed past a gate.
Step 1: Strategy Development
Load: roles/lead.md(第一跳流程)+ roles/strategy.md + references/api-interfaces.md + INLINECODE22
Actions:
- 1. Lead 从主窗口讨论中提炼需求,填写
templates/requirements.md 模板,写入 INLINECODE24 - Lead 展示需求给用户确认(用户可修正)
- 确认后 spawn strategy teammate,prompt 指向需求文件
- Strategy agent 输出到 INLINECODE25
- Lead 验证产出完整性
Gate (ALL must pass):
- - [ ]
strategy.js 或 .ts 存在,无硬编码参数 - [ ]
config.json 存在,所有可调参数已外置 - [ ]
risk-profile.json 存在且字段完整(校验 references/risk-schema.json) - [ ]
README.md 存在,含收益预期和适用市场条件
Step 2: Backtest Validation
Load: INLINECODE32
Input: Step 1 输出的 INLINECODE33
Actions:
- 1. Spawn backtest teammate
- 拉取历史行情数据
- 运行回测,输出到 INLINECODE34
- 执行 Compliance Check:实际指标 vs
risk-profile.json 声明值
Gate:
- - [ ] Compliance 全部 PASS + Sharpe > 1.0 + Win Rate > 40% → PASS
- [ ] 任一 Compliance FAIL → FAIL,退回 Step 1 附失败详情
- [ ] Compliance PASS 但指标 borderline → CONDITIONAL,请用户决定
Step 3: Local Validate + Deploy to VPS
Load: INLINECODE36
Input: 通过回测的策略版本
Actions:
- 1. Spawn infra teammate
- 本地验证:
./deploy.sh {strategy} validate — 3 tick dry-run,验证启动 + RPC + 钱包 - 本地验证通过后,
./deploy.sh {strategy} production — 部署到 VPS - 健康检查通过后更新 INLINECODE39
Gate (Local):
- - [ ] 本地 3 tick dry-run 全部成功
- [ ] onchainos 连接 + 价格/余额查询正常
- [ ] 失败 → 退回 Step 1 修复
Gate (Production):
- - [ ] 进程存活(pm2 status → "online")
- [ ] 启动 10s 内无错误日志
- [ ] 失败 → 自动回滚到上一版本
Step 4: Publish as Skill
Load: roles/publish.md + INLINECODE41
Input: 通过回测的策略 + deploy 成功确认
Actions:
- 1. Spawn publish teammate(可在 Step 3 并行开始抽象)
- 从
assets/product-skill-template/ 读取产品 Skill 模板 - 生成独立 Skill 包到
{strategy}/(仓库根目录下,与策略同名) - GitHub release 等待 Step 3 成功后执行
Gate:
- - [ ]
manifest.json 存在(Single Source of Truth) - [ ] 三平台 adapter 均已生成(SKILL.md / agents.md / openclaw.yaml)
- [ ]
install.sh 存在且可执行 - [ ] GitHub tag + release 创建成功
Step 5: Iteration (Post-LIVE)
Load: INLINECODE46
Input: 链上交易记录 + 行情数据
Actions:
- 1. Spawn iteration teammate(定时或手动触发)
- 分析表现、提取因果关系、输出优化方案
- 输出到 INLINECODE47
- 用户确认后 → 回到 Step 1 生成新版本 → 必须重走 Step 2
Gate:
- - [ ] 优化方案已输出
- [ ] 用户在聊天中确认 — 绝不自动执行
- [ ] 新版本回到 Step 1,必须走完整 Pipeline
State Machine
每个策略独立维护状态,互不影响。
CODEBLOCK2
Track in Strategy/{strategy}/state.json。Log every transition: INLINECODE49
Failure & Rollback
CODEBLOCK3
Anti-Patterns
| Pattern | Problem |
|---|
| Lead 自己写代码 | Lead 只协调,代码由 Strategy agent 写 |
| 跳过 Backtest 直接部署 |
包括 Iteration 新版本也必须回测 |
| 自动执行 Iteration 优化 | 必须用户确认 |
| risk-profile.json 缺失 | 直接 reject,不要"帮忙补全" |
| 同时部署两个版本 | 同一策略同一时间只有一个 DEPLOYING |
| 修改已发布版本目录 | 版本不可变,只能创建新版本 |
| 2 次迭代未改善仍继续 | 应建议暂停策略或重新设计 |
| 启动 Pipeline 未指定策略名 | Lead 必须先明确
{strategy},否则拒绝执行 |
OKX Strategy Factory — Agent 团队
协调 5 个专家 Agent 完成交易策略全生命周期。Lead 只协调不写代码。
Strategy → Backtest → Infra(deploy) → LIVE
↑ ↑ (并行)
│ Publish → GitHub Release
│
Iteration ← (定时/手动复盘)
这是一个文件夹技能。按需读取 roles/、references/、assets/,不要一次性加载全部。
策略选择
Lead 启动 Pipeline 时必须指定策略名称 {strategy},所有路径和状态按策略隔离。
- - 已有策略: grid-trading、cl-lp-rebalancer
- 新策略: 指定新名称即可,自动创建 Strategy/{strategy}/ 工作空间
- 每个策略拥有独立的 Strategy/{strategy}/state.json,互不干扰
- 同一时间可有多个策略处于不同阶段(如 grid-trading 在 LIVE,cl-lp-rebalancer 在 BACKTEST)
使用场景
- - 开发新交易策略 → Lead 指定 {strategy} 名称,读取 roles/lead.md,生成 strategy + backtest
- 回测 → 生成 backtest,读取 roles/backtest.md,指定 {strategy}
- 部署到 VPS → 生成 infra,读取 roles/infra.md,指定 {strategy}
- 发布为独立技能 → 生成 publish,读取 roles/publish.md,指定 {strategy}
- 迭代/复盘 → 生成 iteration,读取 roles/iteration.md,指定 {strategy}
- 全流程 → 生成全部 teammate,Lead 指定 {strategy} 后协调
示例:
启动 grid-trading 策略的回测
为 cl-lp-rebalancer 执行全流程 Pipeline
新建策略 momentum-breakout,从 Step 1 开始
Pipeline: 执行步骤
关键规则: 步骤必须按顺序执行。不得跳过步骤或在未通过关卡时继续执行。
步骤 1: 策略开发
加载: roles/lead.md(第一跳流程)+ roles/strategy.md + references/api-interfaces.md + references/strategy-lessons.md
操作:
- 1. Lead 从主窗口讨论中提炼需求,填写 templates/requirements.md 模板,写入 Strategy/{strategy}/requirements.md
- Lead 展示需求给用户确认(用户可修正)
- 确认后生成 strategy teammate,prompt 指向需求文件
- Strategy agent 输出到 Strategy/{strategy}/Script/v{version}/
- Lead 验证产出完整性
关卡 (全部必须通过):
- - [ ] strategy.js 或 .ts 存在,无硬编码参数
- [ ] config.json 存在,所有可调参数已外置
- [ ] risk-profile.json 存在且字段完整(校验 references/risk-schema.json)
- [ ] README.md 存在,含收益预期和适用市场条件
步骤 2: 回测验证
加载: roles/backtest.md
输入: 步骤 1 输出的 Strategy/{strategy}/Script/v{version}/
操作:
- 1. 生成 backtest teammate
- 拉取历史行情数据
- 运行回测,输出到 Strategy/{strategy}/Backtest/v{version}/
- 执行合规检查:实际指标 vs risk-profile.json 声明值
关卡:
- - [ ] 合规检查全部通过 + Sharpe > 1.0 + 胜率 > 40% → 通过
- [ ] 任一合规检查未通过 → 失败,退回步骤 1 附失败详情
- [ ] 合规检查通过但指标临界 → 有条件通过,请用户决定
步骤 3: 本地验证 + 部署到 VPS
加载: roles/infra.md
输入: 通过回测的策略版本
操作:
- 1. 生成 infra teammate
- 本地验证: ./deploy.sh {strategy} validate — 3 tick 空跑,验证启动 + RPC + 钱包
- 本地验证通过后,./deploy.sh {strategy} production — 部署到 VPS
- 健康检查通过后更新 VERSION
关卡 (本地):
- - [ ] 本地 3 tick 空跑全部成功
- [ ] onchainos 连接 + 价格/余额查询正常
- [ ] 失败 → 退回步骤 1 修复
关卡 (生产):
- - [ ] 进程存活(pm2 status → online)
- [ ] 启动 10s 内无错误日志
- [ ] 失败 → 自动回滚到上一版本
步骤 4: 发布为技能
加载: roles/publish.md + assets/product-skill-template/
输入: 通过回测的策略 + 部署成功确认
操作:
- 1. 生成 publish teammate(可在步骤 3 并行开始抽象)
- 从 assets/product-skill-template/ 读取产品技能模板
- 生成独立技能包到 {strategy}/(仓库根目录下,与策略同名)
- GitHub release 等待步骤 3 成功后执行
关卡:
- - [ ] manifest.json 存在(单一事实来源)
- [ ] 三平台适配器均已生成(SKILL.md / agents.md / openclaw.yaml)
- [ ] install.sh 存在且可执行
- [ ] GitHub tag + release 创建成功
步骤 5: 迭代(上线后)
加载: roles/iteration.md
输入: 链上交易记录 + 行情数据
操作:
- 1. 生成 iteration teammate(定时或手动触发)
- 分析表现、提取因果关系、输出优化方案
- 输出到 Strategy/{strategy}/Iteration/v{version}-review-{date}.md
- 用户确认后 → 回到步骤 1 生成新版本 → 必须重走步骤 2
关卡:
- - [ ] 优化方案已输出
- [ ] 用户在聊天中确认 — 绝不自动执行
- [ ] 新版本回到步骤 1,必须走完整 Pipeline
状态机
每个策略独立维护状态,互不影响。
草稿 → 回测 → 通过 → 本地验证中 → 本地已验证 → 部署中 → 上线 → 迭代审查
→ 失败 → 草稿 (修订)
→ 有条件通过 → (用户决定)
本地验证中 → 本地失败 → 草稿 (修复问题)
部署中 → 部署失败 → 回滚 + 草稿或重试
迭代审查 → 已批准 → 草稿 (新版本,必须重新回测)
→ 已拒绝 → 上线 (保持当前)
在 Strategy/{strategy}/state.json 中追踪。记录每次状态转换: [状态] {策略} v{版本}: {旧状态} → {新状态} | {原因}
失败与回滚
如果策略 {strategy} 的步骤 N 失败:
1. 将失败原因记录到 Strategy/{strategy}/state.json
2. 步骤 2 失败 → 退回步骤 1(策略修订),附失败详情
3. 步骤 3 失败 → Infra 自动回滚到上一版本
4. 步骤 4 失败 → 不影响线上运行,可重试发布
5. 步骤 5 失败 → 保持当前版本,通知用户
6. 不得继续执行下一步
反模式
| 模式 | 问题 |
|---|
| Lead 自己写代码 | Lead 只协调,代码由 Strategy agent 写 |
| 跳过回测直接部署 |
包括迭代新版本也必须回测 |
| 自动执行迭代优化 | 必须用户确认 |
| risk-profile.json 缺失 | 直接拒绝,不要帮忙补全 |
| 同时部署两个版本 | 同一策略同一时间只有一个部署中 |
| 修改已发布版本目录 | 版本不可变,只能创建新版本 |
| 2 次迭代未改善仍继续 | 应建议暂停策略或重新设计 |
| 启动 Pipeline 未指定策略名 | Lead 必须先明确 {strategy},否则拒绝执行 |