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;当时不扩大账号准入、产品范围或资金授权,现行账号准入按上述用户确认政策执行。
- 冻结公共合同:公开阶段与步骤、澄清/批准 view 和回答命令;内部思维、供应响应和冻结工具输入不进入公开投影。中性 checkpoint 只写 Runtime 独立 schema,保留原迁移与旧意图。
- 验证 Runtime 等待、回答、批准/拒绝、命令幂等与 scope 隔离;批准只放行冻结原工具,等待不消耗下一 Planner 或生成 Job。以真实隔离 PG、独立进程恢复及 stop/UNKNOWN 竞争验证。
- 接入 Studio Host 的专用澄清/确认工具、历史重放和正式授权恢复;公开 GET 只读执行状态,公开快照的 revision 与 SSE bigint cursor 分开。多输出按全部实际预期产物推进。
- 接入
/create公开步骤、问题选项/自由回答、批准/拒绝、丢回执恢复与授权恢复入口;桌面、390px、430px 验证真实点击、刷新、重连、迟到事件和终态历史无可执行按钮。 - 固定候选源码与 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对话。
首期必须证明:
- Runtime在没有Studio源码、Next路由、产品数据库bootstrap的环境独立构建;客户端制品不带数据库、调度器或Worker。
- 一个免费direct工具、受控Agent流程与最小固定流程调用同一个Job服务,重启、丢回执和重复提交均能恢复原身份。
- Studio真实BFF/身份/对象权限接入Runtime,全页和Canvas侧栏读取获准的同一Session/Thread;Canvas只需上下文与结果挂载子集。
- 一个现有已验模型/规格完成真实产品接线联验,生成、资金、保存、投递与采纳分态;费用与原Operation可追溯。
- 非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/持久层ports | PR-01;无Studio/Next反向依赖,客户端依赖树无DB/执行栈,非Studio空宿主可加载 | T03/14;AC02/12 |
| PR-03 / P0 中性会话与Job | Session/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/Worker | Runtime受限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稳定后并行;每包按真实输入/输出/费用/恢复验收,新能力未验不开放,不重写旧receipt | T06/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.ts | Platform协议与用户/产品授权 | 按正式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 首期MVP | PR-06~08;收费后台direct加PR-05 | Studio全页/侧栏、非Studio宿主、现行能力真实接线及适用故障通过;真实供应验收单列 |
| G3 独立运行 | PR-09 | API/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/媒体原调用适配已进入验收,按以下顺序收口:
- 固定Runtime源码、包版本和不可变制品;Studio干净候选只包含本批增量,原未提交文件按指纹保留。独立Runtime、产品PG/存储、端口与组合根各出具回执。
- 验证新旧Writer互斥,包括无conversation的相同首次clientRequestId以共同表原子认领,以及旧Run失败重试/续权与新Run并发;授权HTTP期间已增加持久占位,5项隔离受限PG验证模糊原命令保留/同命令恢复、Runtime挡旧retry、并发stop,以及实际retry共享guard释放后迟到grant不回写;UNKNOWN不能因超时或回退获得新派发资格。关闭新lane后,原任务读取和恢复必须继续,独立服务交接另验。
- 将正式Go服务、Studio本批组合根及受控供应放入同一具名链,核对同Run/Operation、授权与账务、原文件/hash和候选回执。Go的独立契约套件通过与Studio受控TCP通过不能拼成此项通过。 首次联验已发现74字符媒体执行身份超出Go原request ID的64字符上限;新请求已在冻结前增加64位稳定映射,修复后独立新Run的正式Go+合成供应联验通过;原UNKNOWN保持原envelope并仅核对,不自动缩键重派。真实模型证据仍单列。
- 已使用具名独立Studio环境、原有普通客户与合法产品key完成真实同Run:2Planner+1图像,原PNG与Artifact/候选/inbox闭合;本轮含失败首请求合计¥0.180454、冻结归零,使用原余额,未超过用户授权US$10上限。旧失败UNKNOWN另保留,不新增渠道/余额伪装成功。
- 完成干净构建、适用浏览器回归和文档发布,将源码/制品/受控链/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、不全站铺入口、不直接切生产。