用途:构建、编辑或调试 OpenAlgo Flow 工作流,即以 JSON 图形式定义的无代码节点图,在 /flow 导入或直接写入 flow_workflows。
主要能力:说明工作流结构(nodes 节点 + edges 边);列出 61 种节点类型及其必填字段和实际读取的数据键(见 reference/nodes.md);提供导入前校验脚本;说明 webhook 请求触发与执行记录查询方式;总结常见陷阱。
必要用法:先读取 reference/nodes.md,再选择唯一触发器(start、webhookTrigger、priceAlert、orderUpdateTrigger),连接图并校验。校验命令为:uv run python .claude/skills/flow-builder/validate.py <workflow.json>。退出码 0 表示可导入;警告表示可导入但行为可能异常。随后在 /flow 导入,或 POST /flow/api/workflows/import。
触发器与外部值:webhook body 通过 {{webhook.<key>}} 暴露,支持嵌套路径和数组索引,如 {{webhook.legs[0].qty}}。订单节点各字段均可使用引用。未解析的订单字段引用会导致节点失败,不会回退默认值。
测试:可向 http://127.0.0.1:5000/flow/webhook/<token> 发送 POST,查询 SELECT id, status, logs FROM flow_workflow_executions ORDER BY id DESC LIMIT 1。日志会显示各节点实际使用的值。需先检查 settings.analyze_mode:1 为 Sandbox,0 为实盘经纪商。
限制与陷阱:无人读取的数据键会被忽略而非拒绝;source 不是价格字段(价格字段为 sourceField);期权到期有 expiryType 与 expiryDate 两种形式;webhookTrigger 不携带标的;读取失败不等于 False,会报错而不走 FALSE 分支;gate 等待 inputCount 而非连线数;timeWindow 可跨午夜;unsubscribe 需 symbol 除非 streamType 为 all;订阅随工作流结束释放;condition 每次运行只评估一次;waitUntil 上限 30 分钟;schedule 按时钟对齐并有市场时段限制,需显式设置 marketHoursOnly 等字段;1 分钟策略需将 FLOW_HISTORY_CACHE_TTL 设为 2-3;应读取已收盘 bar 而非形成中 bar;tuple 指标返回 out0、out1 等;条件节点出边必须设置 sourceHandle。完整字段契约见 docs/prompt/flow-import-format.md。