文档
03 平台03 运行时01_总览

RT-01-001 OceanWay Runtime与共用运行规则

独立运行时的执行、媒体接入、产品隔离、迁移与平台授权边界

本页对当前Platform、Runtime与产品共享原件开发链按ADR-0025、ADR-0023与ADR-0024执行:统一新契约,一份原件、多处引用;旧版兼容、开发备份、数据库dump、备份副本、三库联合恢复及DR门禁均已取消,不是本期或默认后续任务。原持久状态上的重启、未知写入ACK确认、独立续签、可信解绑和可靠释放继续验证。new-api-new-oceanway已有客户的生产服务及原生产发布自动数据库备份等既有保护保持;历史验收只代表其原批次。

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

本页维护公共运行规则。公共部分独立为 OceanWay Runtime,工程为 runtime/oceanway-runtime;Studio是首个消费者,Drama按ADR-0022作为第二消费者并行开发;Commerce仍为原型,ADR-0004其余产品范围保持,废弃控制台不参与改造。中性PG核心、Artifact/ResultSink、持久Agent、薄SDK与最小固定串行流程已有实现;Studio首消费和既有生产灰度、双入口新候选分别登记,不以源码或合并替代发布。首期交付沿 WP-RT-001,具名版本/验证/待验见 PROC-02-005;完整DAG、独立API/Worker与第二真实产品另按后续Gate交付。

Studio已具名交接共享Agent/Run、文本/异步图/基础视频和Canvas,不能将下方早期分步“待实现”记录当成当前整体状态。S3 provider代码已有,线上仍本地媒体;完整能力和规模未全部验收。最新架构、开发批次与验收见多应用升级方案。

共享层与依赖约定

产品现行源码在Studio web/src/shared/,新增中性实现位于独立Runtime;Studio路径是已验证实现与抽离来源,不再定义公共能力的长期归属。目标现在就建立独立命名的模块、可构建包与依赖边界,首阶段可由Studio同进程加载,后续以独立API/Worker承接共同执行。产品可暂时保持同一Next.js应用构建部署,部署合并不改变Runtime与各产品的逻辑权威。

runtime/oceanway-runtime/      已建立的独立工程,以下为逻辑职责示意
├─ contracts / tools           输入输出版本、能力引用、受控执行处理器
├─ jobs / attempts / events    公共任务、派发恢复、租约、持久事件
├─ agent / workflows           开放规划与固定依赖编排
├─ artifacts                   稳定产物与交付状态
├─ media                       通过合同分批迁入的通用实现
├─ platform                    正式授权、Operation和原结果适配
└─ sdk / ui                    产品及其他获准调用方的接入件

产品工程或同部署领域模块        Studio / Drama / Commerce平级
└─ 领域对象、上下文、权限、业务引用、候选采纳和专业界面

产品不能互相import,Runtime不能反向import产品、App入口或旧本地权威模块。领域处理器、上下文解析和结果接收器通过受控注册与端口接入;SDK及共享UI不包含另一份数据库、调度器或执行器。现有shared/platform保持为当前路径事实,独立模块经正式适配器请求Platform;注册表和Agent配置不能决定Host、凭据、模型许可、管理员或数据权限。依赖基线先登记,新抽离模块必须保持可独立构建。

新代码和运行时持久层只支持PostgreSQL,不恢复文件数据库Provider;现有local/object媒体Provider不属于文件数据库退出范围。10-14对新建clean模块“schema直接改、不建产品迁移框架”的约定只解释当时切片,不能套用于10-15已有上线Job、资产、Operation与未知任务。后续抽离按版本扩展、兼容读取和具名接管或排空进行,保留原身份、输入快照、幂等键与Operation关联,不因迁移重新生成或重做资金操作。每条记录切换前沿用原Writer,切换后只允许一个Writer;兼容读取不产生双写权威。

Runtime应覆盖direct、workflow、agent,共用Tool、Job/JobSet、Attempt、Artifact与事件;Agent不是所有任务的必需父对象。首批以MediaPort和ResultSink解开通用执行/保存对Studio对话的依赖,先允许现有媒体实现提供端口,不要求媒体数据库、存储、上传和清理器一次搬完。之后按合同迁入可复用media模块,产品归属、对象权限与业务引用仍由产品定义,Runtime media仅在受托范围写通用登记;原件/派生/引用与迁移均按记录落实单Writer。

旧本地账号、积分、支付、渠道和退款代码不迁入Runtime。未来Console、Admin等界面可以嵌入Agent UI,但须先确定正式调用方、动作及对象授权,不冒用studio凭据或因嵌入组件新增产品枚举。Runtime不替代Platform身份和资金权威。

2026-10-14 第 2 步本地实现已固定共享类型和显式 generation_tasks.authority;文本、创作资料与 Platform 对话移除文件 Provider,CI 增加强制隔离 PostgreSQL 文本门禁。当前授权与原请求凭证具备类型和运行时隔离;Run 只保留不可由产品构造的编号引用类型,该分步记录时点签发响应与执行适配器仍等待P2;10-15新交接以页首基线和具名报告为准。验证报告为 Studio docs/verification/shared-runtime-contracts-20261014/report.md,不代表通用生成服务、媒体或 Agent 迁移完成。

第 3 步文本部分已提取公共原请求状态机、PG repository、提交/恢复服务和文本适配器;文本与原结果 Worker 复用同一恢复服务,恢复类型不含提交方法。产品只即时展示原 operation 的 Platform 金额,不持久保存 financial 金额。Studio 强制 PG 文本 61、既有 PG 10、本地浏览器 138 项通过;正式 Go/TLS/Studio 联合复验 7 项已通过,4 个调用对应 4 次供应 POST、4 个 operation、8 条原预留/结算 ledger 和 4 个业务活动;产品与 Console 本人全域记录 API 的 operation 和精确费用一致,产品库无 financial 金额。Console 前端未重验;P1 媒体仍开放,见 Studio docs/verification/shared-generation-text-20261014/report.md。

第 4 步增量1已在可信 Drama Host 接入项目、TXT/Markdown/DOCX原文件与富文档分集。PostgreSQL命令回执、修订版本、原文不可变及锁后授权复核已实现;丢回执刷新恢复原请求、双页冲突保留输入、输入法、换账号与会话失效清理均有浏览器证据。代码完成待用户业务测试;文本分镜、媒体和Agent仍未完成。证据见 Studio docs/verification/drama-documents-20261014/report.md。

第4步增量2已接入当前会话文本分镜、候选保留、确认写入与工作稿历史,待用户业务测试。共享任务显式保存真实业务父对象,Drama不创建占位聊天;模型按正式目录published_text及可用价格状态筛选,产品不判断余额或计算费用。Platform明确402/insufficient_quota且没有operation时提示未开始,原请求不自动重发;UNKNOWN仍只恢复原结果,可另发明确逻辑请求。正式Go/TLS/两端PG联合8项通过,本域/Console全域记录API的operation与精确费用一致,注销重启后无SID常驻Worker保存原候选。证据见Studio docs/verification/drama-storyboard-text-20261014/report.md 和Platform docs/verification/T-13/drama-shared-text-20261014/report.md;Console前端未重验,媒体P1、Agent P2/P3和完整T-13/AC-16继续开放。

各平台共用Agent对话

OceanWay各平台都可按正式合同接入同一个Agent能力。Runtime持有中性Session/Thread/Message/AgentRun及其Job关联;产品原生Conversation是可选映射/投影,不要求创建Studio对话。每个入口以AgentSurfaceDefinition绑定Profile、ContextResolver、Toolset、ResultSink和renderer,SDK/可选UI支持完整工作区、侧栏或内嵌区域。

每轮上下文重新校验权限并固定来源修订;历史按subject/产品/调用方scope读取,跨产品续接或带入素材须明确授权交接。submit使用稳定clientRunId,冲突与丢回执读取原Run;steer/stop/continue使用正式命令,不改写已派发意图。Agent流结束不代表Job/保存/采纳完成。Console/Admin/Site等需先交接Platform合法调用方和动作委托,嵌入UI不授予权限。结合两站模式的设计与证据限制见跨平台Agent接入。

三种授权与执行上下文

产品作用域由“产品、平台主体、创作资料”三元组组成,只能来自可信 Host 映射或持久化任务,没有默认产品值。它说明由谁在哪个产品执行哪次业务任务,不能授予付费调用权限。

授权种类来源允许的动作
当前用户调用当前有效 Platform 会话和对应产品凭据,服务端校验动作与对象用户明确提交新的单次调用
原请求凭证原不可变业务请求与 Platform 关联;从已验证文本 recovery proof 推广为 branded 类型定位、核对、读取、恢复和保存原结果;类型上不能调用提交入口
Run 授权用户发起 Run 时由 Platform 在内部签发;产品只持授权编号并展示 Platform 返回的状态授权限定主体、产品、Run、动作、模型范围、有效期和并发;后续每次调用由 Platform 重新核对当时可用余额或权益

activityGrant 只授权业务摘要,不授权模型调用。提交与恢复是两个入口,恢复、核对和只有原请求凭证的 Worker 不能首次派发或重新派发。具备 Run 授权的 Worker 可以按授权继续 Run,不依赖当前会话或重新验证浏览器 creator;P2 未交接时此能力保持关闭。

2026-10-14 用户进一步确定资源核对由系统自动完成。Run 授权不绑定首次发起时的余额/权益库存,也没有独立 Run 金额预算。产品不提供填写、确认或追加 Run 预算、总金额上限、钱包支出上限和付费偏好的表单,不自行选择或冻结资源。Platform 按现行权益与资金规则自动选择当时适用资源,沿每次调用的预留、结算和原操作恢复执行;资源不足返回可理解原因。发起前不足则提示,运行中不足则暂停并保留已有结果,用户补足余额或权益后主动继续原 Run,由 Platform 再次核验;补足不会自动重发 UNKNOWN。普通 Platform 单次调用的既有付费设置和独立 Key 预算规则保持各自范围。

共用 Agent 的运行约定

当前实现的shared/agent/engine使用标准工具调用循环,负责步数、停止和事件流,并根据Platform的资源不足原因暂停;grant管理Run授权编号;tools的文本、图片、视频工具调用shared/runtime生成服务;音频是待交接目标,不因工具声明开放;context处理会话、素材引用和摘要。这些是现行产品路径与抽离来源;独立Runtime已交付可验证内核,尚未接管这里的Writer。Studio v1本轮逐工具检查点与授权检查加固不等于Runtime产品接线。

目标由Runtime维护共同执行循环,产品通过profile、上下文端口、领域工具和ResultSink提供提示词/Skill/默认值、获准数据读取、候选与版本化采纳。Agent负责规划和工具选择,Workflow负责固定依赖与人工检查点,direct负责已知意图,三者进入同一Job合同;领域项目、完整业务上下文与采纳规则不迁入Platform或通用任务JSON。profile不提供建议预算或默认金额预算,Commerce也可选择直接工具或固定流程。

模型输出不可信,领域工具按与界面命令相同的权限和版本规则校验。Drama 结果先成为候选,用户选择或确认后才能写入。工具从 Platform /me/models 与 invocation_status 读取当前可调用模型,配置只给默认值,不迁旧逻辑路由或一次规划任务列表模式。

退出登录、修改密码和安全重置不撤销 Run 授权,授权有效且 Platform 核对资源足够时 Run 继续执行和扣费,重新登录后可查询原进度、结果与精确费用。余额或权益不足时暂停,补足后用户继续原 Run;授权到期、账号停用、产品访问或产品凭据撤销阻止新调用。用户停止后进入“停止中”,不再发起新调用,已提交图像/视频继续完成、结算、保存,再进入“已停止”;已有结果保留。UNKNOWN 保持原调用的资源占用,不释放、不重发,只按原操作核对;没有需要另行释放的 Run 金额预算。

生成进度和取消语义按平台核心PRD保持三端一致。停止通过正式命令阻止后续派发;已经发给供应的图像、视频或文本按原调用继续核对结果、保存和真实账务,不能把页面停止等同于上游取消。连接或交付中断由后台自动恢复原任务,不要求用户技术复核;生成状态与资金状态分别表达,调用明细以Console为准。

以上能力依赖正式平台合同;早期P1/P2/P3准备记录保留当时时点。当前Studio已有Agent/Run和基础媒体闭环,新增参考生成、独立音频、直接工具后台Run与完整Workflow仍按各能力交接。缺正式付费授权的执行器只做不付费准备,不借用恢复或摘要凭证执行。公共task与保存对Agent/Studio对话的解耦见目标架构。

职责归属

对象或能力权威归属其他服务如何使用
用户、会话、角色、余额、价格快照、资金流水平台产品查询身份与权限,调用平台记账
套餐/活动规则与发布、订单、支付、订阅、权益及资金审计平台产品通过受限接口运营本产品对象并展示本人状态;中央Admin/Console提供全域视图
产品项目、文档、分镜、上下文、业务素材引用、候选采纳与领域任务产品工程按平台用户ID和产品归属验证访问;Runtime只接收获准引用与执行快照
Tool执行合同、Job/JobSet、Attempt、Agent/Workflow实例、Artifact与执行事件OceanWay Runtime(目标)产品及其他获准调用方通过模块或API/SDK接入;迁移前原Writer继续处理旧版本
通用媒体登记、不可变版本、字节交付与存储适配现有产品媒体模块;按合同切换至Runtime media受托写入产品保留归属、权限与业务引用权威;先用MediaPort/ResultSink解耦,再逐记录切Writer
平台客户任务、模型操作和开发者 API 结果授权平台产品保存平台任务引用;开发者从平台访问本人结果
产品使用、业务生成和结果保存的全域摘要平台的只读业务投影;原事实属产品或Runtime各自Writer各事实来源可靠交付版本化业务事件,平台与原操作联接;不以事件重新记账或迁入完整项目/素材
供应任务、Provider查询、结果获取及供应侧对象现行供应服务;图/视频当前native接new-api-new-oceanway平台以服务凭据读取,客户不访问内部管理接口

平台不建立通用创作Project、组织成员或共享资产领域。Runtime维护通用任务和受托媒体登记,也不替代产品领域权威。共用存储代码、同库或同桶都不表示所有用户或产品能互相读取素材。

2026-10-08确认的产品运营与全域可见要求见统一运营与产品运营,关联PL-021 / T-13 / AC-16。平台统一权威与产品保留运营界面并存;本页补充公共运行职责,具体商业规则不另行定义。

跨模块与部署的数据隔离

  • 每个业务对象记录所属用户与产品;项目表按产品分组,公共任务和媒体表也必须保留作用域。读取、修改、结果登记和下载都在服务端校验归属,不能仅依靠页面路由或客户端传来的产品名。
  • 子站入口由受控域名映射确定,Worker 使用任务中保存的产品归属;未登记的 Host 不成为新产品作用域。三个子站分别校验产品管理员角色。
  • 产品后端按可信Host映射选择对应服务凭据,不接受浏览器传来的product改变权限;平台再校验凭据作用域、当前用户会话或员工产品动作权限及对象归属。产品读视图须在服务端强制本域范围,不能把Console本人全域接口加一个可移除筛选器当作产品隔离。
  • 当前src/shared/是公共实现的抽离来源,src/products/*是产品规则的当前路径;目标Runtime与产品模块保持单向依赖。跨产品素材复用需要明确授权和引用,不因共用PostgreSQL、SDK或Worker自动开放。

使用与生成摘要的可靠交付

平台已有的模型调用、非模型收费、支付和权益事实直接使用平台原记录。产品补充业务任务发起/状态、业务生成结果、保存与导出等已定义的摘要,关联平台用户、可信产品、稳定业务任务ID、父任务/子调用关系及原operation_id列表。Agent规划、优化和最终生成可以形成多个真实模型操作,业务生成计数按业务对象身份计算,不将联接后的多行重复汇总。

产品领域事实由产品事务落持久待交付事件,通用执行与受托媒体事实由Runtime相应Writer事务落事件;迁移期间不重复声明同一事实来源。后台发送需获得平台持久回执后再确认交付。事件保留稳定事件ID、对象ID、对象版本/序号与发生时间,平台按事件去重并按对象版本应用,支持重复、乱序、离线补发和可核对的历史重建。同步延迟在界面可辨认,旧摘要不覆盖更新状态;未收到事件或加载失败不能当作零使用。事件接收只更新摘要,不能触发生成、扣费或重新履约。

摘要只传全域统计和记录所需字段;项目正文、剧本、完整聊天、内部规划提示词、对象存储密钥及私密签名链接不进入摘要。需要预览或详情时,经产品受限接口重新校验内容权限并签发短期访问,员工资金/统计读权限不自动获得内容权限。原业务状态、原生成成功、费用结算和素材保存分别记录;保存失败不能改写生成成功或触发第二次收费。

产品删除内容或收回公开权限后,摘要呈现准确的内容不可访问状态,金融与执行事实按各自规则保留。摘要不是长期素材存储或创作领域的第二Writer,具体事件字段、回执与保留契约须在平台OpenAPI和产品接入验证中落实。

上传与结果交付

  1. 用户上传由产品后端确认用户、项目和产品归属,再经当前媒体模块或已接管的Runtime MediaPort创建上传记录及受限上传凭据。浏览器不持有对象存储长期密钥;上传完成校验后才登记为可用素材,通用登记与领域业务引用分别提交。
  2. 模型调用仍通过平台。参考素材以供应协议支持的受限引用传递,不将产品存储凭据交给网关或供应商。平台 API 的独立开发者上传需求单独审计,不依赖 Studio 登录或数据库。
  3. 现行供应服务提供原任务与结果,Platform native适配器登记并核对原任务。平台验证客户任务归属后交付客户结果;不得把供应管理 Token、任意内部对象 Key 或供应商临时链接作为永久公开资产。
  4. 当前媒体Writer或已切换的Runtime media按产品授权将需要长期保留的结果登记为素材,保存稳定引用与来源任务;产品ResultSink关联项目、候选、对话或Canvas。当前共享原件由文件Owner唯一保存,Runtime及产品只增加同一文件的元数据与独立保留,不复制物理原件;不能依赖即将到期的URL,也不因对话关联失败重新生成。
  5. 获取或保存失败只重试原结果的读取与登记。任务显示可恢复的结果保存状态,原生成成功事实与费用保留。

生成 Worker、媒体保存和平台结算各有持久状态及幂等回执;浏览器离开后仍能恢复。任务恢复采用原任务身份和租约,不重复创建付费任务。

文件访问与保留

  • 产品媒体入口校验产品、用户与引用归属后读取对象或签发短期链接;开发者 API 的结果由平台校验客户任务归属。平台账户停用不等于可以直接删除历史创作或资金证据。
  • 删除业务引用、删除物理对象和停止Run分别处理;停止不撤销已发送的供应调用,也不删除其原结果与账务。仍被作品、候选、在途任务或历史记录引用的对象不能因单个页面删除而清理。
  • 当前共享原件由new-api-new-oceanway文件模块复用既有TOS并唯一管理,Platform保存原Operation映射,Runtime持独立claim并受托登记和交付,产品持领域归属、权限及可信解绑事实。开发链不要求备份或副本复制;保留、续签与释放按各自原命令执行。本次不变更现有客户桶、密钥或清理器。
  • 旧网关文档中“Core 持有 file_id、所有产品经 Core 上传”的方案已被当前归属替代。历史对象、在途任务及来源证据保留,不能把该计划恢复成新系统前置。

验证场景

上传后刷新可读、跨用户和跨产品越权拒绝、过期链接可重新授权、网关成功后产品保存失败可恢复、Worker重启不重做生成、仍有引用的对象不会提前删除。新增AC-16场景:三产品可信Host/服务凭据隔离、本域运营回读中央规则、摘要重复/乱序/离线恢复、Agent多调用汇总、免费业务使用与付费操作区分、权限撤销后的内容读取拒绝,以及摘要未同步时准确呈现。具体场景纳入平台集成验证。

On this page