文档
03 平台03 运行时02_需求与工作包

RT-02-001 OceanWay Runtime 实现计划

首期范围、12个合并交付包、并行开发流、源码提取点、验收与切换顺序

2026-10-18 更新(ADR-0022):Drama 已解除冻结并恢复开发,是 Runtime 的第二消费者,与 Studio 并行推进;Commerce 保持原型。下文涉及 Drama 的段落按现行计划理解。

制定日期:2026-10-15(北京时间)。本页维护首期范围、合并包与执行顺序。WP-RT-001的RT1~RT5已按首期限定范围完成,源码/制品、正式CI、生产切换、已付费链备份恢复、同原单/原件/费用、三宽UI、原账号灰度与上线后核对、Docs1发布回读及最终完整双机归档统一见PROC-02-005。此前发布验收仅使用原账号2;本次结项不关闭完整UP-T、独立API/Worker、完整DAG或第二真实产品,旧UNKNOWN供应终态与尾费边界保持。Docs2自身发布与回读由独立publication proof登记。

**现行准入政策(2026-10-18 用户确认):**取消仅验收账号2的名单限制,Studio当前已验入口(全页与Canvas侧栏)中的Runtime范围向正常登录、具备对象权限并经Platform授权的用户开放。生产配置已于2026-10-18 11:07 CST生效,实际检查见准入政策回执;其他调用方/产品作用域、收费、UNKNOWN及媒体能力范围保持。

此前上线收口批次记录原产物恢复、固定制品、预发与单账号灰度。公开过程按用户选择“简单自动、复杂/缺信息先澄清、额外或高消耗先确认”,接入中性checkpoint与Studio Host/UI;旧切片范围见 PROC-02-004。PR-07双入口/薄SDK及最小流程的当前验收转由WP-RT-001/PROC-02-005登记,PR-09独立服务仍属后续,不用旧候选状态代表当前首期进度。

本页维护首期范围、可合并交付包与执行顺序;工作包状态仍只在UP-T01~18开发清单维护,验收正文仍只在UP-AC01~12维护。下列“PR-01~12”是建议合并包编号,不是已创建的GitHub PR,也不增加另一套产品需求编号。

公开过程候选切片的执行顺序

以下保存原公开过程切片的执行顺序,关联 UP-T03/08/10/14,沿用 UP-AC01/02/05/06/09/12;当时不扩大账号准入、产品范围或资金授权,现行账号准入按上述用户确认政策执行。

  1. 冻结公共合同:公开阶段与步骤、澄清/批准 view 和回答命令;内部思维、供应响应和冻结工具输入不进入公开投影。中性 checkpoint 只写 Runtime 独立 schema,保留原迁移与旧意图。
  2. 验证 Runtime 等待、回答、批准/拒绝、命令幂等与 scope 隔离;批准只放行冻结原工具,等待不消耗下一 Planner 或生成 Job。以真实隔离 PG、独立进程恢复及 stop/UNKNOWN 竞争验证。
  3. 接入 Studio Host 的专用澄清/确认工具、历史重放和正式授权恢复;公开 GET 只读执行状态,公开快照的 revision 与 SSE bigint cursor 分开。多输出按全部实际预期产物推进。
  4. 接入 /create 公开步骤、问题选项/自由回答、批准/拒绝、丢回执恢复与授权恢复入口;桌面、390px、430px 验证真实点击、刷新、重连、迟到事件和终态历史无可执行按钮。
  5. 固定候选源码与 Runtime 包制品,完成 Host 整套 fresh DB、适用单测/类型/构建及浏览器回归。部署或真实模型动作按既有用户授权核对环境、范围、累计预算、具名制品与适用发布 Gate;候选完成不自动触发收费请求或扩大 cohort,也不撤销既有授权。早期hosted CI billing为历史事件,现行自托管实际执行按PROC-02-005逐source记录,不能用旧失败推断新run阻断,也不能用本地通过替代远端通过。

当前高消耗审批的边界为 Planner 策略加持久人工屏障,未包含 Platform 原子 quoted-price/budget 绑定。该后续合同不得被写成既成硬金额阈值,也不增加 Run 预算表单或第二套钱包;详见公开过程设计。

首期要交付的结果

首期交付 独立Runtime核心+薄SDK/可选AgentPanel+Studio首消费+全页与Canvas侧栏+非Studio宿主夹具。沿Higgsfield工具/Job分层和Krea会话/工作台上下文模式,统一Session/Thread/Message/AgentRun、Job、Artifact及持久事件;各入口通过Profile、ContextResolver、Toolset、ResultSink和renderer接线。设计依据见跨平台Agent对话。

首期必须证明:

  1. Runtime在没有Studio源码、Next路由、产品数据库bootstrap的环境独立构建;客户端制品不带数据库、调度器或Worker。
  2. 一个免费direct工具、受控Agent流程与最小固定流程调用同一个Job服务,重启、丢回执和重复提交均能恢复原身份。
  3. Studio真实BFF/身份/对象权限接入Runtime,全页和Canvas侧栏读取获准的同一Session/Thread;Canvas只需上下文与结果挂载子集。
  4. 一个现有已验模型/规格完成真实产品接线联验,生成、资金、保存、投递与采纳分态;费用与原Operation可追溯。
  5. 非Studio独立宿主使用相同SDK/Panel及受限适配器完成对话与交付,证明公共能力可嵌入其他平台。

真实产品接线先用隔离PostgreSQL和受控供应验证。具名真实供应/文件/费用验收单独登记,需要执行会话对应授权;前次Higgsfield/Krea各一次生成及US$5限额不延用为新测试额度。

首期与后续分开排期

首期必须后续按具名能力交付
独立模块/构建、正式合同、可信scope、Session/Job/Artifact、命令回执、旧任务兼容全部历史数据搬库、所有媒体模块与清理器一次迁出
现有Agent循环接共同Job;受理/等待Job与实际saved分开;停止/继续沿现行能力任意线程分叉、跨产品完整续聊、完整Skill市场、Memory、Connector、Schedule、团队
Studio全页/Canvas侧栏、稳定Run受理、历史/事件恢复、结构化问题与候选选择完整Canvas图编译、任意DAG、并行扇出汇合、可视化工作流编辑器
当前已验小结果的原输出保存、AssetPort、ResultSink及授权引用新参考图/首尾帧/音频、长视频、大文件流式与对象回填的完整范围
新任务首次启用就有单Writer、任务分区和派发屏障独立Runtime API/Worker部署、额外副本和故障域专项

独立代码边界现在建立,独立部署在首消费通过后交接。AgentPanel及Canvas侧栏不依赖完整可执行Canvas;当前小结果切片不依赖全部大文件或新参考媒体能力。 后置范围保留原任务及门禁,首期子集通过不关闭完整UP-T06/07/09等工作包。

首个文本Agent可沿现有正式文本Run合同接入;无LLM的收费后台媒体direct/Workflow必须先交付Platform纯媒体Run合同。Console/Admin/Site真实调用必须先交付合法调用方/scope/动作授权,不借用studio身份。

开发流与合并顺序

按职责分为五条工作流,不预设人员姓名或同时投入人数:Runtime核心、Platform合同、Studio/SDK/UI、结果交付、恢复与运维。主开发人可按下面合并顺序串行执行;可并行开发的分支使用冻结合同和夹具,合并前再联合验证。

PR-05不阻塞PR-02~04、SDK夹具和现有文本Agent;只阻断缺少正式授权的新执行模式。PR-07不等待完整UP-T09。PR-10可先用夹具接线;独立API的真实消费者等待PR-09,新的调用方等待各自授权交接。指标、备份与恢复从PR-01随包交付。

12个可合并交付包

合并包 / 优先级主要改动与明确产物前置与完成依据工作包 / 验收
PR-01 / P0 基线与合同冻结源码/镜像/配置/schema/工具链清单;未终态/unknown/待保存任务清单;当前Writer;首期模型规格;Session/Job/事件/端口字段与版本决策首包;合同评审、原单定位、备份恢复基线可用,注明本机与线上差异T01/16/17;AC01/10/12
PR-02 / P0 独立工程与端口建立runtime/oceanway-runtime,独立构建/类型/测试入口;server-core与client制品分离;Context/Planner/Platform/Media/ResultSink/持久层portsPR-01;无Studio/Next反向依赖,客户端依赖树无DB/执行栈,非Studio空宿主可加载T03/14;AC02/12
PR-03 / P0 中性会话与JobSession/Thread/Message/AgentRun、Job/Attempt、命令回执、事件/游标的PG模型;clientRunId+指纹唯一约束;旧身份唯一映射/兼容读取PR-02;隔离PG验证双发、冲突、重启、scope拒绝、状态不退回;不触发收费入口T03/08适用子集;AC01/02/05/10
PR-04 / P0 产物与交付Artifact与输出序号;拆通用保存和Studio对话关联;AssetPort沿用现有provider,ResultSink独立回执/outbox;稳定资产身份PR-03;无Conversation可保存,保存与投递分态,重复/失序/丢回执不多建候选,失败只恢复原产物T05/08;AC04/05/10
PR-05 / P0并行 Platform执行合同纯媒体Run版本、首动作准入、旧text版本兼容;正式授权类型与OpenAPI/client;列出新callerScope扩约,分消费者交接PR-01起并行;隔离PG/HTTP证明逐调用资源、停止、撤销、到期、原单恢复保持;后台direct启用前完成纯媒体子项T04;AC01/05/06
PR-06 / P0 共用Agent与最小流程抽取现有Responses工具循环;基础工具转共同Job;工具结果v2区分accepted/awaiting_job/saved;持久等待/继续;固定串行步骤+一个人工检查点PR-03/04;脚本化Planner与受控真实协议分别验证;不靠saved=true伪造受理,流结束后原Job继续;v1按旧合同解释T02/08/10及T09流程子集;AC02/05/06
PR-07 / P0 SDK/Panel与双入口薄SDK:历史、消息、原Run/Job、事件、正式命令;可选Panel/renderer;Studio全页与Canvas侧栏;独立非Studio宿主PR-03合同稳定可并行;两个真实入口同Runtime,切入口不新建任务;上下文可见、逐轮重验;fixture不假扮真实新调用方T10/14;AC01/02/09/12
PR-08 / P0 Studio首消费联验产品组合根、ContextResolver、Toolset、ResultSink及旧记录映射;现行文本Agent和已验单图;direct不额外规划;候选/素材/下载回显PR-04/06/07;后台direct加PR-05;受控供应全链、故障矩阵、原Operation/费用/文件具名核对通过;真实供应单列T03/04/05/08/10/17子集;AC01~06/09/10/12
PR-09 / P1 独立API/WorkerRuntime受限API、服务端SDK、独立启动/健康/租约/配置;按合同版本或任务分区交接Writer;兼容恢复器和回交步骤PR-08;关闭Studio后Runtime仍完成原Job;旧Worker围栏有效;回退不双派发,跨边界回执/原授权闭合T08/16/17;AC01/05/06/10/11/12
PR-10 / P1 第二真实消费者默认建议Commerce单张概念图候选:文本brief→现行已验生成→候选→显式采纳;仅新增领域对象和适配器;Drama/其他入口后续PR-08后可先fixture,远程消费等PR-09;无Studio会话/内部表/import,不复制引擎;不承诺参考商品保真或完整Commerce上线T12及适用T11/13;AC08及01~06/09/12
PR-11 / P1 能力与数据面扩展分成typed references具名动作、Platform流式/对象结果、产品直传/Range/旧文件回填三个独立子包共同Job/AssetPort稳定后并行;每包按真实输入/输出/费用/恢复验收,新能力未验不开放,不重写旧receiptT06/07;AC03/04/05/06/10/12
PR-12 / P1~P2 完整图与全平台完整Canvas可执行图/扇出汇合;Console本人只读Agent、Admin/Site分别接入;供应背压/多Worker/故障域与高级能力按包推进对应场景的合同、权限与实测门禁;保留未启用范围,不将“全平台可接入”记作全入口已上线T09/13/15/16/18;适用AC01~12

表中T/AC均指UP-T/UP-AC。P0指首期依赖,P1为首期后扩展,P2为选定范围再做;PR-09独立部署是明确后续交付,不因MVP同进程通过而取消。真实第二消费者默认次序为实施建议,不自动启动整个原型平台或导入原型数据。

首三个合并包如何落地

PR-01:先固定可恢复的起点

  • 核对Studio当前HEAD/工作树、Platform版本、实际运行镜像和供应revision;将当前源码与线上报告分栏记录。
  • 盘点shared_agent_runs/steps/events、媒体task/attempt、Conversation/Canvas映射及资产/原Operation;只保留脱敏身份和版本,不导出正文或凭据。
  • 固定一个本地fixture工具和首个已验小结果组合;合同冻结Session、Thread、clientRunId、Job、Attempt、Artifact、decision、ResultSink回执及事件水位。
  • 建立“当前记录→当前Writer→拟接管方→旧恢复器”的清单。给旧任务明确drain或兼容接管策略,不复制成可重新执行的新Job。
  • 同步相关AGENTS/产品行为中的旧实现位置、强制规划范围和本次MVP门禁;保留当前功能与原任务回归基线。

产物为合同决策、Writer/未终态manifest、来源/版本清单、隔离PG/供应夹具方案及备份恢复记录入口。没有这些记录不启用新任务写入。

PR-02:独立工程只提取已明确的共用部分

建议最小发布边界为server-core与client:client含合同/SDK,server-core持执行与持久化;可选UI在PR-07交付。物理上可采用同仓workspace包,客户端合同是唯一类型源,服务端引用它;不另建Contracts仓或多个运行服务。具体包名与锁定工具链在本包固定,下面为目标位置而非当前文件事实:

runtime/oceanway-runtime/
  packages/client/          合同、SDK、事件与错误;无数据库/执行器依赖
  packages/server/          Job、Agent、Workflow、Artifact、ports、PG
  packages/ui/              PR-07可选Panel与renderer
  fixtures/consumer/        非Studio宿主及合成数据
  tests/postgres/           必需实库、租约、并发与恢复测试
  docs/verification/        每次交付固定版本与证据

先提纯shared/runtime/request-fingerprint.ts、状态合同与原操作不可替换规则;保留旧版本指纹测试向量。DB/Platform/Planner/Context/Media/ResultSink都由端口接入,恢复端口没有dispatch方法。Studio当前@/路径别名、server-only框架标记和全局数据库bootstrap留在产品适配边界。

产物应包括独立的build/typecheck/test/PG门禁脚本、显式exports、客户端制品依赖审查和来源LICENSE/NOTICE。脚本在新工程创建后才成为可运行命令,本页不冒充现有入口。

PR-03:新模型与旧记录并存,单条记录一个Writer

Job不要求AgentRun、Thread或Conversation父对象;新Runtime PG模型不外键依赖Studio Conversation或creator_profiles;保存可信subject/product/callerScope、来源引用及不可变版本。用事务和唯一约束保护clientRunId、输入指纹、活跃执行、事件序号与回执;实际动作仍由Platform授权。

现有shared_agent_*及shared_media_*继续按原合同处理。Studio侧提供版本化legacy-reader/兼容适配与唯一身份映射,Runtime不import产品SQL或schema初始化。新任务只进入新合同分区,旧领取器不能认领;同一记录不被两套执行器推进。需要接管旧记录时另做明确Writer/fencing交接。

PR-03先证明持久受理、租约执行、事件与原身份恢复;早期PR-04的免费fixture为合成文档快照→本地工具Job→文本Artifact→产品候选/回执,当时不请求Platform收费授权、不创建Operation。脚本化Planner验证控制与恢复协议,不计作真实LLM验收;最小固定流程现已复用共同Job实现,其具名验收与发布边界统一沿WP-RT-001/PROC-02-005登记。

PR-03退出要求:干净环境独立构建、非Studiofixture成立、双发去重/异意图冲突、跨subject/scope拒绝、租约围栏、重启读回与上下文版本固定。上一批Artifact保存、待交付恢复和候选回执见零模型消费纵切证据,当时模型调用/供应POST/资金写入均为零。PR-04 Studio存储/接收器和PR-06正式Planner协议适配的原增量见正式接线证据;后续人工 checkpoint 候选单列验证,不能回填为早期交付,最小固定 Workflow 仍按原工作包验收。

现有源码的具体拆分点

来源当前耦合实施处理
web/src/shared/agent/schema.ts共用Run外键依赖creator资料,同文件有Studio文档schema通用PG schema进入Runtime;Studio领域schema/bootstrap留产品,不整文件复制
web/src/shared/media/task-schema.ts、repository.ts媒体task强绑AgentRun,派发/尝试身份已持久化新Job先独立;旧task保持原行/指纹/envelope/Operation,经兼容适配读取
web/src/shared/media/storage.ts通用保存必须查Studio对话并返回对话资产link ID拆稳定Artifact/资产保存与ResultSink关联;先沿用provider,不一次搬完上传/清理
web/src/shared/agent/engine.ts必需工具以saved:true判完成v2增加accepted/awaiting_job及持久检查点,实际saved保留真实含义;旧v1不暗改
web/src/products/studio/agent/worker.ts固定Studio领取与Conversation/Canvas投影Studio组合根注入适配,后续再交接Runtime独立Worker;首包不启动第二套旧队列消费者
web/src/shared/platform/*-client.tsPlatform协议与用户/产品授权按正式OpenAPI封装进Runtime平台port;保持提交/恢复类型分离,不复制资金逻辑

以上路径相对products/oceanway-studio,为10-15读取时点定位。web/src/products/studio/runtime/ 已在本批创建,包含正式 Planner/媒体适配、compose、ContextResolver、AssetPort、ResultSink 与产品投影;旧 Writer 回读继续沿原服务。交付与验证边界见正式接线证据。

Platform并行交付的最小范围

分项开工与依赖必须先于什么交付可独立后置的部分
Run v2 / 首动作合同PR-01即可设计;保留旧text解码、准入与授权快照无LLM的收费后台媒体direct/Workflow不阻塞独立模块、免费工具或沿现有text合同的Agent
新callerScope / 动作委托先冻结调用方来源、subject/产品适用关系、权限与撤销语义对应Console/Admin/Site真实调用Studio继续现有合法产品scope;非Studiofixture不冒充生产授权
typed references先定义资产身份/版本/角色/顺序、意图指纹及供应支持矩阵对应图生图/首尾帧等具名工具发布文生图小结果切片不等所有参考输入开放
原结果对象化/流式先新增输出版本、长度/hash/授权及旧receipt读取超出现行限制的大文件/长视频上线首期沿已验小文件,仍检验原输出保存和交付恢复

Run扩约同时覆盖create/resume/retry解析、指纹和授权快照,保留v1旧解析器。媒体预检提取同源准入/报价逻辑并回滚预检事务;不调用实际CreateMediaTask占资或派发,预检不建立整Run预算或锁定未来价格。新callerScope区分调用身份与实际资源产品,冻结policy/主体/scope/凭据/动作版本,旧授予不原地改写。

主要源码落点为Platform的service/platform_runs.go、controller/platform_runs.go及身份/授权服务;参考输入在platform_product_media.go、admission/catalog和native adapter;结果交付在native execution/output transport。复用Run、product-media、recovery/output transport、授权账务的现有PG/HTTP套件,补新旧合同矩阵,不以mock账务替代实库。

每项交付包括平台仓OpenAPI、实现/兼容版本、隔离PostgreSQL与正式HTTP授权/幂等/恢复证据,以及Runtime消费端联验。新调用仍逐次自动核资源;不增加Run预算、全局二次审批或Runtime钱包。UNKNOWN不重发,保存失败只恢复原输出。

交付门槛与失败处理

里程碑所需交付GO依据
G0 可开工PR-01合同、Writer/未终态、工具链、回归/恢复基线完整
G1 独立核心PR-02~04及免费fixture无Studio依赖、共同Job、真实PG持久化、幂等与交付恢复通过
G2 首期MVPPR-06~08;收费后台direct加PR-05Studio全页/侧栏、非Studio宿主、现行能力真实接线及适用故障通过;真实供应验收单列
G3 独立运行PR-09API/Worker正式授权、单Writer切换与回交、关闭Studio后原任务继续、备份恢复通过
G4 真实复用PR-10第二消费者仅新增领域适配,候选/采纳/权限正确;原型完整上线另判
G5 能力扩展PR-11/12按子包每个新模式、图能力、平台入口和负载profile分别有证据

G2表示首期工程与真实产品接线的具名通过;具名真实供应、费用/文件核对、用户业务验收及生产切换分别记录。缺对应证据时保留未验或不开放,不能以受控供应结果登记真实供应/生产已通过。

详细故障矩阵见验收页的首期子集门槛。至少覆盖:丢受理回执、供应受理后丢响应、双Worker/旧租约、进程重启、资源不足、停止后在途媒体、保存成功但投递失败、接收端提交后丢回执、乱序/重复事件、切号/撤权、上下文版本冲突及切换回退。

任何正式授权缺失、UNKNOWN可新发、旧Worker绕过围栏、原付费结果不可读、重复结算/生成或恢复备份不可执行,均阻断受影响能力上线。失败先关闭新提交,保留原结果和恢复器;回退明确交还Writer,不能启动新旧两套执行器争抢。数据库回到旧时间点后不重放收费请求。

每个合并包提交源码/合同版本、测试与未覆盖项、schema兼容说明、回退动作和具名证据入口。文档构建不计业务通过;fixture、正式产品接线、真实供应、用户业务验收和生产发布分别登记。

既有正式接线批次的收口顺序

PR-02/03核心、PR-04零模型消费纵切和PR-06持久串行Agent子集已有上一批证据。本批PR-08 Studio组合根、ContextResolver/AssetPort/ResultSink及PR-06正式Planner/媒体原调用适配已进入验收,按以下顺序收口:

  1. 固定Runtime源码、包版本和不可变制品;Studio干净候选只包含本批增量,原未提交文件按指纹保留。独立Runtime、产品PG/存储、端口与组合根各出具回执。
  2. 验证新旧Writer互斥,包括无conversation的相同首次clientRequestId以共同表原子认领,以及旧Run失败重试/续权与新Run并发;授权HTTP期间已增加持久占位,5项隔离受限PG验证模糊原命令保留/同命令恢复、Runtime挡旧retry、并发stop,以及实际retry共享guard释放后迟到grant不回写;UNKNOWN不能因超时或回退获得新派发资格。关闭新lane后,原任务读取和恢复必须继续,独立服务交接另验。
  3. 将正式Go服务、Studio本批组合根及受控供应放入同一具名链,核对同Run/Operation、授权与账务、原文件/hash和候选回执。Go的独立契约套件通过与Studio受控TCP通过不能拼成此项通过。 首次联验已发现74字符媒体执行身份超出Go原request ID的64字符上限;新请求已在冻结前增加64位稳定映射,修复后独立新Run的正式Go+合成供应联验通过;原UNKNOWN保持原envelope并仅核对,不自动缩键重派。真实模型证据仍单列。
  4. 已使用具名独立Studio环境、原有普通客户与合法产品key完成真实同Run:2Planner+1图像,原PNG与Artifact/候选/inbox闭合;本轮含失败首请求合计¥0.180454、冻结归零,使用原余额,未超过用户授权US$10上限。旧失败UNKNOWN另保留,不新增渠道/余额伪装成功。
  5. 完成干净构建、适用浏览器回归和文档发布,将源码/制品/受控链/live范围分别写入正式接线证据。本批chat切片不能关闭完整G2。

上述顺序保存原接线批次的实施背景。当前PR-07薄SDK、Canvas第二入口、非Studio宿主fixture及最小固定流程已有实现候选,统一由 WP-RT-001推进正式CI、制品、兼容交接、恢复与灰度验收,实际通过/未验见 PROC-02-005。PR-05纯媒体合同在收费后台direct启用前交接;独立API/Worker、非Studio真实生产消费者和全平台入口各过自己的后续Gate,不扩成Drama/Commerce原型正式上线。

当前没有固定人员投入或实测开发吞吐,不填写缺乏依据的完成日期。后续按实际变更量、PG/恢复验证和首消费结果滚动排下一批;每批以上述GO门槛交付。第一批不开发完整Drama/Commerce、不全站铺入口、不直接切生产。

On this page