ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

NOFX Hyperliquid 集成实现深度解析:从 Bounty 任务到落地源码

NOFX Hyperliquid 集成实现深度解析:从 Bounty 任务到落地源码 AI Agent金融科技后端前端【免费下载链接】nofxYour AI trading terminal assistant for US stocks, commodities, forex, and crypto.项目地址https://gitcode.com/gh_mirrors/nof/nofx点击查看免费下载导读本文以 NOFX 官方悬赏任务文档 bounty-hyperliquid.md 为核心主线深入讲解为 NOFX AI 交易终端接入 Hyperliquid 永续合约这一集成任务的全部技术要点。文章将 Bounty 文档中列出的任务要求、接口设计、验收标准逐一展开并结合当前仓库中已经落地的 trader/hyperliquid 实现讲清楚账户管理、行情数据、订单执行、仓位管理、WebSocket 实时流、风险控制适配与订单同步等模块的真实源码细节让你读完既能理解要做什么也能看懂已实现的样子。一、Bounty 任务全景要解决什么问题bounty-hyperliquid.md 是一份面向贡献者的集成悬赏任务书核心诉求一句话概括把 Hyperliquid 永续合约交易能力接入 NOFX作为现有 Binance Futures 支持之外的新交易所适配器。文档给出的背景是当时 NOFX 仅支持 Binance Futures而 Hyperliquid 作为高性能 DEX去中心化永续合约交易所被选为下一站。整个任务的悬赏金额标注为 To be discussed属于开放议价模式贡献者可以提交方案报价。从文档的 Checklist 结构看任务被拆成五个核心模块这也是本文后续章节的主线模块要求当前仓库落点Hyperliquid API 集成账户管理、行情数据、订单执行、仓位管理、WebSocket 流trader/hyperliquid/trader_account.go适配器层创建trader/hyperliquid_perpetual.go实现统一接口trader/hyperliquid/trader.go配置支持新增exchange: hyperliquid及密钥字段config/config.go 相关配置解析风险控制适配仓位限制、杠杆规则、强平价计算、资金费率trader/hyperliquid/trader_positions.go测试与文档单元测试、测试网集成测试、README 与排障文档trader/hyperliquid/sync_test.go 等测试文件说明仓库中实际落地实现的目录为trader/hyperliquid/而非 Bounty 文档最初设想的trader/hyperliquid_perpetual.go单文件——这一点是文档设想与最终实现之间值得注意的差异后面章节会详细展开。二、适配器层统一 Trader 接口设计2.1 Bounty 文档中的接口草案Bounty 文档给出了一份ExchangeClient接口草案覆盖账户、行情、交易、风控四类能力type ExchangeClient interface { // Account GetAccount() (*AccountInfo, error) GetPositions() ([]*Position, error) // Market Data GetKlines(symbol, interval string, limit int) ([]*Kline, error) GetTicker(symbol string) (*Ticker, error) // Trading CreateOrder(params *OrderParams) (*Order, error) ClosePosition(symbol, side string) error // Risk Management SetLeverage(symbol string, leverage int) error GetLiquidationPrice(position *Position) (float64, error) }这份草案的价值在于指明了接口需要覆盖的能力边界但它是与交易所无关的理想化抽象并未绑定 NOFX 内部实际使用的接口形态。2.2 仓库中实际落地的统一接口NOFX 内部真正的统一抽象位于 trader/types/interface.go接口名为Trader方法远比草案丰富且全部带有明确的语义注释。这里摘录核心签名type Trader interface { // Account GetBalance() (map[string]interface{}, error) GetPositions() ([]map[string]interface{}, error) // Trading OpenLong(symbol string, quantity float64, leverage int) (map[string]interface{}, error) OpenShort(symbol string, quantity float64, leverage int) (map[string]interface{}, error) CloseLong(symbol string, quantity float64) (map[string]interface{}, error) // quantity0 表示全平 CloseShort(symbol string, quantity float64) (map[string]interface{}, error) // Risk Management SetLeverage(symbol string, leverage int) error SetMarginMode(symbol string, isCrossMargin bool) error GetMarketPrice(symbol string) (float64, error) // Stop Loss / Take Profit SetStopLoss(symbol string, positionSide string, quantity, stopPrice float64) error SetTakeProfit(symbol string, positionSide string, quantity, takeProfitPrice float64) error CancelStopLossOrders(symbol string) error CancelTakeProfitOrders(symbol string) error CancelAllOrders(symbol string) error // Order History FormatQuantity(symbol string, quantity float64) (string, error) GetOrderStatus(symbol string, orderID string) (map[string]interface{}, error) GetClosedPnL(startTime time.Time, limit int) ([]ClosedPnLRecord, error) GetOpenOrders(symbol string) ([]OpenOrder, error) }相比 Bounty 草案实际接口有两个显著演进仓位语义从通用CreateOrder收敛为OpenLong/OpenShort/CloseLong/CloseShort——因为 NOFX 的自动交易核心 trader/auto_trader.go 需要的是开多/开空/平多/平空这种决策粒度而不是泛化的订单原语。补充了止损/止盈、撤单、已平仓盈亏ClosedPnL等高频交易必需能力——这些在草案中没有出现却是自动交易系统不可或缺的。另外trader/types/interface.go 中还定义了GridTrader接口用于网格交易场景的限价单支持Hyperliquid 也通过PlaceLimitOrder/CancelOrder/GetOrderBook三个方法实现了它这一点在网格与限价单章节详述。2.3 从草案到实现的差异分析对照 Bounty 文档的文件结构规划trader/ ├── binance_futures.go (existing reference) ├── hyperliquid_perpetual.go (NEW - to implement) └── exchange_interface.go (NEW - unified interface)而当前仓库的真实结构是统一接口独立成包trader/typesinterface.goHyperliquid 实现拆分为trader/hyperliquid/目录下的多个文件trader.go、trader_account.go、trader_orders.go、trader_positions.go、trader_sync.go、order_sync.go、client_init.go。这种接口独立、实现按交易所拆目录的组织方式正是为了支撑多交易所共存与多交易所竞争模式这类扩展需求与 Binancetrader/binance/、Bybittrader/bybit/等实现保持一致的代码风格。三、账户管理与余额解析Bounty 文档将账户管理余额、仓位、保证金列为 API 集成的第一项。Hyperliquid 的账户模型与 CEX 有本质区别——它没有传统的 API Key/Secret 体系而是使用链上签名EIP-712 风格的 L1 action 签名这在NewHyperliquidTrader的初始化逻辑中体现得淋漓尽致。3.1 初始化与 Agent Wallet 安全模型trader/hyperliquid/trader.go 中的NewHyperliquidTrader是整个集成的入口其签名与职责func NewHyperliquidTrader(privateKeyHex string, walletAddr string, testnet bool, unifiedAccount bool) (*HyperliquidTrader, error)初始化流程按顺序完成以下关键步骤解析私钥自动去除0x前缀大小写不敏感用crypto.HexToECDSA解析为 ECDSA 私钥用于后续所有 action 的签名。选择 API 端点testnet为 true 时使用hyperliquid.TestnetAPIURL否则使用MainnetAPIURL。强制 Agent Wallet 模式代码会明确要求配置hyperliquid_wallet_addr主钱包地址只持有资金与hyperliquid_private_keyAgent 私钥只用于签名并校验二者不能相同否则打印高安全风险警告。Agent 钱包余额安全门禁如果 Agent 钱包余额超过 100 USDC直接返回错误拒绝初始化超过 10 USDC 打印警告。元数据获取与并发保护通过exchange.Info().Meta(ctx)拉取交易对元信息含 szDecimals 精度并用metaMutex保护并发访问。客户端初始化容错由于底层 SDKNewExchange在自动拉取 meta/spotMeta/perpDexs 失败时会直接 panictrader/hyperliquid/client_init.go 用defer/recover把 panic 转换为可返回的错误避免 HTTP handler 因临时 API 故障直接 500。3.2 余额的三段式解析GetBalance()trader/hyperliquid/trader_account.go需要同时汇总三类资产因为 Hyperliquid 的账户体系远比单一永续合约复杂数据源说明调用方式Spot 余额现货 USDC 及 hold冻结Info().SpotUserStatePerp 合约账户永续保证金、仓位、未实现盈亏Info().UserStatexyz dex 账户美股/外汇/大宗商品永续如 TSLA、GOLD自定义 POST/info请求dex: xyz解析过程中有几个值得注意的工程细节保证金模式决定 Summary 字段跨仓cross读CrossMarginSummary逐仓isolated读MarginSummary二者字段结构不同。可提取余额优先用Withdrawable字段官方返回的 Withdrawable 比简单计算更可靠取不到时才回退为accountValue - totalMarginUsed负数归零。为兼容统一算法做逆向换算NOFX 的totalEquity totalWalletBalance totalUnrealizedProfit计算逻辑要求返回不含未实现盈亏的钱包余额因此代码用accountValue - totalUnrealizedPnl反推 wallet balance。统一账户Unified Account防重复计数当isUnifiedAccounttrue且现货 USDC 作为永续抵押品时xyz/perp 的账户价值不能叠加在 Spot 之上否则仪表盘会重复计算权益——这个判断由calculateHyperliquidBalanceBreakdown实现。最终GetBalance()返回的 map 包含totalWalletBalance、totalEquity、availableBalance、heldBalance、totalUnrealizedProfit、spotBalance、xyzDexBalance、xyzDexUnrealizedPnl、totalMarginUsed等字段直接对接前端的资产面板。四、行情数据K 线、价格与订单簿Bounty 文档要求市场数据获取K 线、订单簿、成交。在 NOFX 中行情数据有两层交易执行所需的实时价格由 Trader 层直接提供历史 K 线则由独立的 provider 层提供。4.1 实时价格GetMarketPricetrader/hyperliquid/trader_account.go 中的GetMarketPrice走Info().AllMids全市场中间价 map支持 crypto 与 xyz dex 两套查询func (t *HyperliquidTrader) GetMarketPrice(symbol string) (float64, error) { coin : convertSymbolToHyperliquid(symbol) // BTCUSDT - BTC, TSLA - xyz:TSLA if strings.HasPrefix(coin, xyz:) { return t.getXyzMarketPrice(coin) // POST /info, typeallMids, dexxyz } allMids, err : t.exchange.Info().AllMids(t.ctx) // ... }4.2 K 线与币种列表provider 层K 线数据由 provider/hyperliquid/kline.go 负责拉取而币种列表由 provider/hyperliquid/coins.go 的CoinProvider提供。后者实现了两个值得借鉴的缓存策略24 小时缓存币种列表GetAllCoins按 24h 缓存过期或为空时刷新按 24h 名义成交量降序排列主币列表固定取 top 20。5 分钟 TTL 的 perp-dex 行情缓存GetPerpDexCoins对每个 dex如 xyz单独缓存 5 分钟上游拉取失败如 HTTP 429 限流时降级返回过期数据而不是报错保证 UI 不中断。源码注释明确写明了这一权衡可交易符号列表极少变化短时陈旧远好于每次渲染都打爆被 429 限流的 API。provider/hyperliquid/coins.go 中还定义了XYZCategory函数把 xyz dex 的标的归类为stockTSLA、NVDA、AAPL 等、commodityGOLD、SILVER 等、indexSPX、NDX 等、forexEUR、JPY 等、pre_ipoOPENAI、ANTHROPIC 等——这正是项目描述中美股、大宗商品、外汇、加密多资产定位的实现基础。4.3 订单簿网格交易的 L2 快照trader/hyperliquid/trader_account.go 的GetOrderBook实现了GridTrader接口调用Info().L2Snapshot(ctx, coin)拿到 L2 深度快照按 depth 截断后以[][]float64{Px, Sz}形式返回 bids/asks 两个数组供网格引擎做价格校验。五、订单执行市场单、限价单与止损止盈Bounty 文档要求订单执行市价/限价单与仓位管理开、平、改。Hyperliquid 的实现有一个贯穿始终的核心策略用激进限价 IOC 单模拟市价单。5.1 市价单的激进限价模拟trader/hyperliquid/trader_orders.go 开头定义了两个关键常量const ( aggressiveBuyPriceFactor 1.01 // 买市价上方 1% aggressiveSellPriceFactor 0.99 // 卖市价下方 1% )OpenLong的执行流程trader/hyperliquid/trader_orders.go如下先取消该币种所有挂单避免残留单干扰将BTCUSDT之类的符号转换为 Hyperliquid 格式convertSymbolToHyperliquid→BTC在下单前调用SetLeverage设置杠杆对 xyz 资产失败仅告警不中断获取当前市价乘以 1.01买入得到激进价格再用roundPriceToSigfigs处理为5 位有效数字Hyperliquid 对价格精度的硬性要求数量按szDecimals精度取整roundToSzDecimals从 meta 元数据动态获取缺省 4 位构造 IOC 限价单Tif: hyperliquid.TifIocImmediate-or-Cancel提交因为买价高于市价 1%、卖价低于市价 1%可以立即成交同时把滑点控制在 1% 以内。OpenShort、CloseLong、CloseShort遵循同样的模式差别仅在方向、价格因子与ReduceOnly标志——平仓单一律ReduceOnly: true。5.2 止损止盈Trigger OrderSetStopLoss/SetTakeProfittrader/hyperliquid/trader_orders.go使用 Hyperliquid 的 Trigger Order条件单实现order : hyperliquid.CreateOrderRequest{ Coin: coin, IsBuy: isBuy, // 空头止损买多头止损卖 Size: roundedQuantity, Price: roundedStopPrice, // 同样 5 位有效数字 OrderType: hyperliquid.OrderType{ Trigger: hyperliquid.TriggerOrderType{ TriggerPx: roundedStopPrice, IsMarket: true, Tpsl: sl, // slstop loss, tptake profit }, }, ReduceOnly: true, // TP/SL 永远是 reduce-only }一个来自源码注释的已知限制Hyperliquid SDK 的 OpenOrder 结构不暴露 trigger 字段因此CancelStopLossOrders与CancelTakeProfitOrders无法区分止损单和止盈单只能整体撤掉该币种的全部挂单——实现中对此有明确日志提示。5.3 限价单与网格交易trader/types/interface.go 中定义type GridTrader interface { Trader PlaceLimitOrder(req *LimitOrderRequest) (*LimitOrderResult, error) CancelOrder(symbol, orderID string) error GetOrderBook(symbol string, depth int) (bids, asks [][]float64, err error) }Hyperliquid 的PlaceLimitOrdertrader/hyperliquid/trader_orders.go为网格单使用Tif: hyperliquid.TifGtcGood-Till-Cancel一直有效与市价模拟单的 IOC 形成对比。由于 Hyperliquid 的 Order 响应不直接返回订单 ID实现用time.Now().UnixNano()生成本地订单 ID注释说明网格场景下按价格档位跟踪订单即可。5.4 Builder Fee 与交易授权trader/hyperliquid/trader_orders.go 中还有一个容易被忽略但非常重要的机制——Builder Feevar defaultBuilder hyperliquid.BuilderInfo{ Builder: 0x891dc6f05ad47a3c1a05da55e7a7517971faaf0d, Fee: 50, // 50 5 bps 0.05% }所有订单都通过placeOrderWithBuilderFee提交若返回 builder fee has not been approved 错误会被wrapBuilderFeeNotApproved包装成请重新连接 Hyperliquid 钱包并完成交易授权的友好提示。这是 Hyperliquid 生态的 agent wallet builder 路由机制在 NOFX 中的落地——用户在官方前端连接钱包时需批准该 builder 的手续费之前 0.1% 的授权在 0.05% 下依然有效。六、仓位管理与风险控制适配Bounty 文档把风险控制适配单独列为一个模块仓位限制、杠杆规则、强平价计算、资金费率。6.1 仓位读取与符号归一化trader/hyperliquid/trader_positions.go 的GetPositions遍历accountState.AssetPositions关键处理符号归一化Hyperliquid 返回 BTC代码转为 BTCUSDT 与 NOFX 内部约定对齐xyz 仓位则保留xyz:前缀如xyz:SILVER并标记isXyzDex: true。方向判定Szisize为正 → long为负 → short负数绝对值存入positionAmt。标记价格推算由于 API 不直接给 mark price用positionValue / |posAmt|反推。零仓位跳过posAmt 0的持仓直接过滤。6.2 杠杆与保证金模式SetLeveragetrader/hyperliquid/trader_positions.go调用UpdateLeverage(leverage, coin, isCrossMargin)第三个参数由isCrossMargin字段决定默认跨仓。SetMarginMode在 Hyperliquid 上只记录模式不真正下发——因为杠杆设置接口本身就携带了 margin 模式参数这与 Binance 的独立 margin mode 接口不同是典型的交易所差异适配点。6.3 强平价Liquidation Price与 Bounty 草案设想自己计算强平价不同实际实现直接消费 Hyperliquid API 返回的LiquidationPx字段trader/hyperliquid/trader_positions.go 中position.LiquidationPx ! nil时解析不再自行推导。这是更可靠的做法强平价由链上清算引擎权威计算本地复算既容易出错也偏离交易所口径。6.4 资金费率资金费率相关的行情数据由 provider/hyperliquid/kline.go 等 provider 层数据源支撑配合 NOFX 的 market 模块进行指标计算与信号生成属于行情 → 指标 → 决策链路中的上游数据输入。6.5 已平仓盈亏Closed PnLHyperliquid没有仓位历史 API只有成交历史fills。因此 trader/hyperliquid/trader_account.go 的GetClosedPnL从GetTrades拉取成交记录只保留RealizedPnL ! 0的平仓成交再按方向推算入场价entryPrice trade.Price ± RealizedPnL/Quantity组装成统一的ClosedPnLRecord。这个实现细节对应了 Bounty 文档中计算准确 P/L的验收标准。七、订单同步与对账Sync 链路7.1 为什么需要 SyncHyperliquid 是去中心化交易所部分订单可能由用户在链上/官方前端手动操作NOFX 本地状态会与链上真实状态脱节。Bounty 文档的验收标准要求获取实时账户余额和仓位、准确计算 P/L这就需要一个从交易所回填本地的同步机制。7.2 实现细节trader/hyperliquid/order_sync.go 的SyncOrdersFromHyperliquid是同步主入口回看窗口 7 天拉取最多 2000 条近期成交UserFills。选择UserFills而非UserFillsByTime的原因在源码注释中写得很清楚后者单次响应硬上限 100 条高频账户一天超过 100 笔成交时会静默丢失约 20% 的 fills导致记录的 PnL 和手续费偏离交易所真实值2000 条覆盖多日历史再在客户端按 startTime 过滤。成交按时间升序排序逐条通过GetOrderByExchangeID(exchangeID, tradeID)去重保证幂等再写入订单表并用PositionBuilder重建/更新仓位记录保证订单、成交、仓位三者一致。Hyperliquid 的成交Dir字段Open Long/Close Long/Open Short/Close Short被解析为OrderAction是订单语义还原的关键Hyperliquid 只有单向持仓模式故PositionSide固定为BOTH。7.3 测试佐证trader/hyperliquid/sync_test.go、trader/hyperliquid/trader_account_test.go、trader/hyperliquid/trader_race_test.go 等测试文件覆盖了同步、账户、并发安全等路径与 Bounty 文档单元测试 集成测试的验收要求一一对应。八、WebSocket 实时数据流Bounty 的加分项与当前实现边界Bounty 文档将 WebSocket 实时流列为Bonus Points加分项同时在必选清单的 API 集成里也提到 Websocket real-time data stream。需要如实说明当前仓库的实现边界交易执行路径trader/hyperliquid目前以 REST/签名请求为主订单提交、余额查询、仓位拉取均走 HTTP。深度行情order book depth同样通过 L2Snapshot 的 HTTP 快照获取用于网格价格校验。仓库中确实存在 WebSocket 相关实现但位于行情数据提供层provider/hyperliquid/kline_ws.go 附近的 WS 能力具体以该目录源码为准面向 K 线等市场数据的实时推送而非交易接口的实时订单流。因此若你是想接这个 Bounty 的贡献者订单/成交的 WebSocket 实时流仍然是一个可切入的加分方向——这既呼应了文档的 Bonus Points也契合多交易所竞争模式 性能对比面板的后续想象空间。九、多交易所竞争模式与扩展Bounty 文档的 Bonus Points 中有两条与架构强相关多交易所竞争模式Binance vs Hyperliquid性能对比面板从仓库现状看这一方向的架构基础已经具备统一接口Trader/GridTrader接口让所有交易所适配器可互换trader/auto_trader.go 的交易循环只依赖接口而非具体实现。统一存储store 层的订单、仓位、已平仓记录均以ExchangeID ExchangeOrderID关联天然支持跨交易所对账与对比。配置多 trader用户可配置多个 trader 实例不同交易所、不同 AI 模型前端的 CompetitionPage.tsx 等页面已经承载了多 trader 对比展示的能力。要落地Binance vs Hyperliquid竞争模式贡献者的工作重点在于补充竞争模式的编排逻辑与对比数据聚合而不是从零搭建交易所接入。十、配置接入把 Hyperliquid 装进 NOFXBounty 文档给出了配置草案{ traders: [ { id: hyperliquid_trader, name: Hyperliquid AI Trader, exchange: hyperliquid, hyperliquid_api_key: xxx, hyperliquid_secret_key: xxx, ai_model: deepseek, initial_balance: 1000.0 } ] }对照仓库实际配置字段有两处需要修正密钥字段不同Hyperliquid 没有 api_key/secret_key取而代之的是链上签名所需的hyperliquid_private_keyAgent 私钥与hyperliquid_wallet_addr主钱包地址。源码 trader/hyperliquid/trader.go 的初始化错误信息中直接给出了正确配置范式hyperliquid_private_key Agent 私钥仅用于签名余额应≈0hyperliquid_wallet_addr 主钱包地址持有资金绝不暴露私钥入口不同实际项目通过 api/handler_hyperliquid_wallet.go 等 HTTP handler 与前端钱包连接流程web/src/lib/hyperliquidWallet.ts配合走前端连接钱包 → 后端生成/保存 agent 钱包的路线而不是在 JSON 里手填密钥。前端引导文档见 docs/getting-started/hyperliquid-agent-wallet.md。此外Hyperliquid 特有的unifiedAccount开关现货 USDC 作为永续抵押品也会在配置中体现具体字段以 config/config.go 的实际解析为准。十一、贡献指南与验收自查Bounty 文档的贡献流程五步走在 issue 留言 → fork 建分支 → 按规范实现 → 测试网充分测试 → 提交 PR含代码、测试、文档、演示视频/截图。文档特别强调四条红线先在测试网验证不要一开始就用真实资金保持向后兼容不能影响现有 Binance 用户代码质量遵循既有风格与模式安全密钥绝不硬编码。对照当前仓库的落地情况贡献者可以把 trader/hyperliquid 目录作为已实现形态的参考基线单元测试对齐trader_account_test.go/sync_test.go的写法文档对齐 docs/getting-started/hyperliquid-agent-wallet.md 的体例并把WebSocket 实时订单流作为最值得投入的加分项。十二、总结Bounty 文档与仓库实现的映射关系Bounty 文档要求仓库实现关键差异 / 亮点trader/hyperliquid_perpetual.go单文件适配器trader/hyperliquid/多文件目录按职责拆分account/orders/positions/sync通用ExchangeClient接口trader/types的TraderGridTrader决策粒度OpenLong/CloseLong优于泛化原语api_key/secret_key 配置Agent Walletprivate_key wallet_addr链上签名替代传统 API Key自己计算强平价直接消费 APILiquidationPx字段以交易所权威口径为准市价单IOC 激进限价模拟±1%兼容 Hyperliquid 限价单体系并限制滑点准确 P/LUserFills2000 条→ ClosedPnL 过滤规避 100 条上限导致的成交丢失WebSocket 实时流加分项provider 层有 WS 行情能力交易路径以 REST 为主订单级实时流仍是可切入的加分方向从一份开放议价的 Bounty 任务书到仓库中一套完整的trader/hyperliquid实现这条链路本身就是一个极佳的开源协作案例任务文档定义了做什么与如何验收而源码给出了实际怎么做以及过程中踩过的每一个坑——无论是 100 条 fills 上限、spot-meta 索引 panic、还是 builder fee 授权都被写进了注释和错误信息里。对于想参与 NOFX 生态、或想在自己的项目中接入 Hyperliquid 的开发者本文梳理的这张映射表就是最实用的索引。赞分享AI Agent金融科技后端前端【免费下载链接】nofxYour AI trading terminal assistant for US stocks, commodities, forex, and crypto.项目地址https://gitcode.com/gh_mirrors/nof/nofx点击查看免费下载相关推荐终极指南NOFX多交易所集成技术实现——从Binance到Hyperliquid的无缝对接方案终极指南NOFX多交易所集成技术实现——从Binance到Hyperliquid的无缝对接方案 NOFX作为您的个人AI交易助手实现了跨交易所的无缝集成让AI Agent金融科技后端前端Serial Studio 发送脚本编辑器Spec 0079实现全解从任务拆解到源码落地Serial Studio 发送脚本编辑器Spec 0079实现全解从任务拆解到源码落地 导读 本文以 Serial Studio 仓库中 doc/cla桌面应用数据可视化物联网Serial Studio 项目编辑器事务式 Undo/Redo从任务清单到源码落地的完整实现解析Serial Studio 项目编辑器事务式 Undo/Redo从任务清单到源码落地的完整实现解析 本文以 Serial Studio 规格 0031 的第三桌面应用数据可视化物联网创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表