LUBAN-2.0
离线完整阅读版 · 总体架构、运行时、协议与分工共四部分。保存本 HTML 即可阅读;时序图运行所需脚本已内置。2026-11-03 打包,本版包含 ContextDB 两库与 RSI 阶段目标追踪,待用户审阅。
设计评审稿 · 服务内模块与信息流同图;原RSI执行链已存在,新增仿真/确认/采集接线为设计。

LUBAN-2.0 · 任务执行、仿真试验与经验程序资产

2026-11-03 R9 更新 · 设计审阅稿。DSH内部模块与分工已按本轮官方源码展开;新增接线尚未实施。本轮已核World“手臂装配搬运”与Agent对应记录,以此作为业务接入样本;R204仅作为RSI研发仿真验证资料,补实运行改进、论文支持的经验/程序筛选和仿真数据集利用;在线动态改稿、每型号唯一当前发布、数据无限期保存继续保持。只修改方案与阅读页,没有运行模型、仿真或机器人,没有实施新接口或发布新经验。10月30日已部署的是上一版设计文档。

运行时与动态装配 · 接口协议、库表与核心时序 · 四方向分工

1. 这次改什么,哪些已经存在

把现有 RSI 原子能力调用作为 LUBAN-2.0 的执行基础;在它外面补任务运行时、仿真批次试验、资产确认发布和数据归集。 不再为“直接使用 Capability”重建一套底层调用服务。模型通过 Tool 查现场和知识、编写程序;程序通过已有 step 调用 Capability,Framework 执行并返回真实反馈。step 在这里是程序的能力调用函数,不是被取消的五类 Action 固定编排。

项目 当前可核实的代码 2.0应该怎样使用或补齐
程序使用原子能力 当前 Agent 已接受 step 的 Capability 名称和参数,沿原 Stage 服务调用 Framework;规划和控制分开 沿现合同适配 DSH 的程序 Tool,保留内部身份/计划关联;撤销旧方案“默认新增 CapabilityExecutionService”的建设包
手部与规划 已有手部命令、运动规划、轨迹执行等;手势预演和真实控制不同 手部原语使用当前真实命令入口和手型支持,不另造 execute-primitive;P13 R209已提交并记录部署五项规划上下文能力、手部驱动设置及SDK六维力投影;按真实后端支持使用,实际GPU消费、驱动物理效果和完整抓取闭环仍待验收
经验与程序模板 Lesson/Procedure 在线保存、读回、私有版本采用已有;应用层有候选验证/发布逻辑 复用现有实体、仓储和版本;当前独立验证器在装配处仍不可用,审核/发布没有可直接使用的管理接线,需补齐
仿真 SimService 有环境控制、复位、观测及模型评测等能力 增加 Agent 程序试验接入;模型评测运行器不能直接替代程序试验,控制权不能重叠
会话记录 RSI 已有程序、步骤、观测与媒体记录;DSH 有原生 Session 事件和持久化 保持原始数据权威,补关联、落盘确认、断连补读、压缩血缘和完整性说明;不再复制第二份消息历史

11月2日的底层能力取证以P13项目已登记的Agent d7dccb6a、Framework 6cf303c0、SimService dd617b25及对应R209工作树为准;本轮计划工具另以 P13 Agent R233 de74ed39 为准。已回读的部署状态来自P13记录,不代替本轮现场物理复验。当前RSI仍用自身TaskLoop;下图DSH为2.0拟接入,不把底层已部署写成DSH已接通。完整SHA与行号见当前RSI增量核对。

此前取证的来源与边界保留在RSI此前源码核对、仿真核对、DSH核对为依据。P13 当前 R209 设计不新增 World Tool/数据库,也不把 World 接入作为抓取前置;2.0保留 World 的业务位置,但不借本轮改造扩大它的职责。

2. 服务、服务内模块和核心信息流

服务内模块与两条任务执行路线:原业务、DSH程序、能力执行和后台改进原尺寸查看 ↗
服务内模块与两条任务执行路线:原业务、DSH程序、能力执行和后台改进
目标架构图;服务内模块表示职责,不意味着各建一个服务。

本图按入口、核心、执行与存储分层;Agent及内嵌DSH位于左侧,Framework固定在右侧。保留外部任务控制与DSH程序两条真实粒度的执行路线。箭头文字标明服务内模块的交接,红色为记录归集和后台改进,不能将后台分析会话回填成原任务经历。按宽度阅读可展开模块文案;接口细节见P13/Q13–Q14。外框表示服务或已有服务内的受管作业,内框表示功能模块;箭头表示调用和交付物。DSH 是 Agent 内的引擎,原生模型循环、Tool/Skill、Session、压缩和子代理能力继续使用。试验控制和经验审核是业务模块,不是另一套 Agent 框架。

服务 有什么,负责什么 给其他模块什么
入口与任务宿主 用户任务、原完成判据、机器人与模式绑定、继续/取消 本次任务目标及实际许可范围;一次会话可以包含多个任务/运行,不用一个 Session ID 代表全部业务身份
World 场景、对象/物料、位置关系、工艺、Mission与分配/报告 带来源与时间的业务记录;不是实时传感器,也不是本轮新增规划场景服务
Hub / LubanAsset 机器人纳管与运行制品交付;模型/场景文件和准确资产版本 按需准备的身份、制品和资产,不串联每次 Capability 调用
Agent + DSH 任务运行时、模型循环、原生 Tool/Skill、程序宿主、能力适配、生命周期监督 模型 Tool 结果、原程序结果与新观测;任务、程序、调用和原操作关联
外部机器人任务执行器 现有external_linkerbot任务合同和安装配置的控制通道;不等于Framework原子能力 原任务状态、控制器报告及实际可得证据;未接DSH/程序时不补造经历
Framework 原任务/Stage作业、能力目录、资源与参数校验、Provider/后端 状态、感知、规划、手部/轨迹执行和查询取消;原结果不被适配层改成“成功”
SimService 环境实例、场景/资产加载、复位、控制/观测、仿真媒体 本试验实例的实测反馈;复位/seed/快照的可用性以实际后端支持为准
OpenViking(ContextDB)内的知识库 原语、能力接口手册、操作方法和已批准的引导 Skill 资料 知识工具按范围检索和读正文。引导 Skill 按批准目录供 DSH 装配
OpenViking(ContextDB)内的经验模板库 已发布的 Lesson(经验)及 Procedure(程序模板)、适用条件、版本和验证来源 经验工具按任务型号及许可读取当前发布。模板须绑定本次现场并通过程序校验
Agent 任务计划与进度 正式目标及验收进度、模型阶段计划的独立记录 task_read 提供正式任务与进度,task_plan_read 和 task_plan_update 管模型计划版本
试验与经验管理模块 批次规格、实例分配、试验记录、候选筛选、独立验证、策略确认与发布 有验证范围的准确资产版本;仿真结论保留仿真范围,不自动声称真机有效

2.1 Agent内部的DSH怎样拆,哪些由我们建设

DSH作为一整块内嵌在Agent中;下面按真实源码模块展开,模块名称与图和分工对应。图中不放分工编号;分工表再按模块列主责。 原生模块直接组合,LUBAN补业务供给、任务监督和必要的SDK桥,不另写模型循环。图内“原生”表示源码已有,不表示LUBAN已接通。

DSH核心展开:原生模块、LUBAN插件与分工接口原尺寸查看 ↗
DSH核心展开:原生模块、LUBAN插件与分工接口
目标架构图;服务内模块表示职责,不意味着各建一个服务。
模块 具体组成与职责 本轮工作归属
启动与插件装配 Cordis、dsh-scope及应用profile;SDK JSON-RPC入口启动并等待依赖就绪 A0定义专用组合及启动检查;SDK是访问口,不独立部署一个业务服务
Agent与模型循环 dsh-agent创建Agent/句柄,dsh-agent-loop驱动模型→工具→结果→下一次判断 A1a接原任务和Session身份,保留原生循环;外部执行器任务不补造DSH会话
模型路由 dsh-llm、所选provider及dsh-llm-retry;选择模型、处理模型流和重试 A0/A1a配置;模型重试不重放已发生的程序动作
提示与上下文 dsh-system-prompt、dsh-session-projection组成模型可见上下文 A2a供给原目标、批准目录和合同;C1提供知识正文,业务输入经过可追溯渠道
Tool注册与执行 dsh-tools和dsh-tool-executor-native解析原生调用,经过检查,执行真实handler并配对结果 A2a注册与范围控制,B1提供业务handler,B2执行程序,D2保存必要原结果
引导Skill dsh-skill注册provider,dsh-tool-skill提供skill({name});dsh-skill-filesystem是可选文件来源 A2a接批准版本provider,C1/C4维护正文、资源和current;读取不授予机器人执行权
Session dsh-session仅追加模型事件;投影可重建 A1a绑定业务身份,D1关联真实Session/seq;不另存可编辑消息副本
持久化 dsh-session-persistence、dsh-session-persistence-jsonl、dsh-session-checkpoint-policy负责原日志存储与flush A0配置已有后端/政策,A4桥接原writer落盘和读取,D3接收durable cut后封存
上下文压缩 dsh-token-meter、dsh-compaction、dsh-compaction-basic按上下文压力保留/摘要/替换模型视图 A0配置,A4/D记录来源;完整原日志保留,不能由业务层自行剪掉
子代理(按需) dsh-subagent、spawn/fork provider和控制Tool负责原生父子协作 A3a关联作者/独审;A3b/B3另管仿真worker和控制权,子代理不是物理隔离

生命周期检查由LUBAN可信插件挂在DSH原生接点,程序内每次Capability另在B2边界检查。 正常回合准备结束可交业务监督补证;异常、取消和设备停止独立处理。tools/post-execute只能处理反馈,不能撤销动作;Session释放也不证明设备已停。具体接点及顺序见运行时第2.1节、协议P14/Q15。

2026-11-02本轮已核官方HEAD ce7073d51254c26cd63b22a60835b8f948deb447并读取该提交源码。SDK新增session/query不等于增加任意扩展RPC;它处理压缩/权限/计划/目标等原生命令。LUBAN业务任务正文明确走session/prompt,管理命令另做授权。默认SDK应用已启用@deepseek-ai/dsh-plugin-manager/tools插件管理工具(配置项tool-plugin-manager),LUBAN专用profile关闭模型自行安装/启停插件的入口;启停profile和单任务动态Tool/Skill装配不是同一件事。选择哪些包以当前上游为准,不永久锁旧版本;实施/升级时重新核兼容。

DSH核心源码证据 · 集成工作包依据 · 官方原件来源

2.2 ContextDB 两库与任务内追踪

知识库回答“怎么理解和调用”,经验模板库回答“哪些做法已经在什么条件下验证过”。 两库放在同一 OpenViking(ContextDB)服务下,各自使用独立目录、查询范围、发布入口及读写权限。后台 RSI 将获批的经验和模板写入经验模板库。知识维护流程单独审批并写入知识库。经验若要变成手册条目,由知识维护者核证后另行发布,并保留来源链接。

OpenViking 保存两库可读正文及索引。Agent 的发布账本记录候选、批准、撤回和各型号当前发布清单,清单指向 OpenViking 正文的准确版本和摘要。执行原件、仿真记录、原始私有候选和运行期计划留在各自的记录系统,供审查和追溯。

每次任务可同时追踪正式进度和模型计划。 以搬运为例,模型先用 task_read 读原目标和验收要求,再用 task_plan_update 记录“确认物料位置、完成搬运、核验到位”三段。取得观测或动作结果后,模型可修订计划并记原因。上下文压缩或会话续接后,task_plan_read 读回当前步骤的计划。需要核对正式进度时,用 task_read({view:"progress"}) 读取已经记录的验收和执行进度。例中的三段由模型按现场生成。正式完成由原验收规则根据观测和实际执行证据判定。

P15 对齐 R233 的源码与部署依据

3. 业务任务主线与RSI研发样例分别说明

已核实World“手臂装配搬运”及其Agent对应记录,作为2.0业务接入与数据关联的样本;不能确定就是用户此前所指的那条旧任务,也没有独立核验其物理效果。R204不是该业务样本,R208也不是业务执行。 R204仅是P13 RSI研发中实际运行过的仿真抓取试验:对6B目标完成抓取、抬升3cm并保持2s。这里的目标和数值来自原任务,不是新增框架阈值。R204有一次目标两指接触,但试抬后失接触;最终由模型HTTP429自然结束,原物理目标没有完成。局部程序复用已发生,也不能据此把整轮写成成功。

3.1 原任务到底从哪里下发

已有入口 谁发起与经过哪里 2.0如何承接
World业务任务 World提交/调度Mission,分配Robot;MissionDispatchWorker授权、签短期操作permit,优先LAN调用Agent,尚未连通时可由Hub中继 原world/mission/robot/row_version及permit保留,Agent受理后建立运行时;ACCEPTED不是完成,沿原状态回报
Hub 核Robot身份/World绑定,提供受限dispatch/cancel中继 不是所有任务的创建者,也不替World调度;中继没有query-mission通路,不能编造Hub查询接口
Agent本地原任务启动 原任务执行客户端提交计划/任务请求,Agent持久化受理并执行 R204实际走此路:POST /api/mission-plan-execution/start。本轮只读原submit脚本与历史回执,未再下发任务

任务按实际安装的执行器分流,并保持各自的授权、幂等和来源;不为学习另造统一任务下发平台,也不把R204改写成经Hub投递。World/Hub当前现场制品版本未核,不把源码路径当在役证明。准确路由、请求字段与历史身份见任务来源核验。

此前只读当前工作站Agent库得到7条direct任务,其中10月16日api-smoke-test属于接口冒烟;这仅覆盖一台Agent。用户恢复Hub登录后,本轮又查询World:北京World接口可见802条world来源任务、昌平本次可见0条,已将下述搬运任务与另一台Agent对应。列表未匹配lingfei-4090,不代表其他机器人没有业务任务。查询范围和后续Agent两次502均见现场任务核验;前轮有限库证据保留在本机历史核对。

3.2 已发生的World搬运任务怎样进入2.0

样本为mission-dashboard-e649f1e325f5f28dd5ede978a297dd5f:“手臂装配搬运”。北京时间11月2日15:26:43创建,目标为把指定物料从一个工作台S4搬到另一工作台S1,分配给0930-搬运-1。World和Agent的同任务身份、位置参数及15:30:02完成时间已对应;原始派发请求的具体网络通道、底层控制回执和物理效果仍未取得,不能写成完整物理验收。

过程 已发生的记录 2.0怎样承接
接任务 World原Mission、MANUAL来源、原物料/位置、机器人分配 A沿原入口受理和绑定,不另造direct副本;Hub提供访问或实际配置的中继,不冒称它一定是本次派发通道
执行 机器人登记为real/external_linkerbot,轻量Agent保留同一world任务;本次未取得RSI/DSH程序运行证据 按实际安装executor保持原任务控制;只有已接Framework/RSI+DSH的任务才进入程序/Capability链,不能同时向两条路径派发
回报与核验 World结算SUCCEEDED,Agent说明“搬运完成”;完成合同检查项和确认快照为空,未提供停止证明 保留业务原状态,D另记物理证据/停止/媒体缺口;不把空检查项视作物理验收通过,也不推定现场仍在运动
改进和仿真 已有任务结构可供分析,但未核本案仿真场景、初态和低层控制合同 A/B先核覆盖与可重建条件,再申请隔离试验;资料问题可先回放,不能拿原任务再跑一遍补录像或成绩
经验与程序 只读记录可说明任务来源和接口使用,不足以证明某搬运方法或程序有效 C允许有证据的资料类候选;物理方法Lesson和Procedure须绑定真实程序/控制及独立效果验证,D不编造缺失DSH/程序/Stage ID

该样本在北京lab环境中发生,不自动升级成已核商业生产订单。外部执行器将来若只公开Mission级接口,就按该真实粒度适配;迁入RSI前核实任务所需能力和运行手册,不虚构关节/原语调用。见独立源码与分工依据。

3.3 R204仅用于说明RSI执行与改进机制

以下是研发试验机制示例,不能替代线上业务任务验收。R208为空间供给只读分析/推演,未执行现场任务。来源见任务类别纠正。

  1. 承接原请求。 保存原request、parent execution、run、Session和原目标;World来源另保Mission关联。本轮不复制原控制permit到后台试验。
  2. 装配当前运行。 按真实型号/模式供给唯一current中的Tool/Skill、知识和能力合同;保持DSH原生循环,程序仍在Agent执行。
  3. 观察、读资料、改程序。 R204实际已有程序多步执行、经验全文读回与局部程序采用;2.0沿此能力持续在线修订,原物理现场不自动复位。
  4. 沿原Stage执行。 程序组合规划、控制、感知和手部能力;结果先回程序,需要重新判断才回模型。规划与执行分开,内部计划紧邻单次使用。
  5. 核原目标而非ACK。 接触passed只说明接触;对原3cm/2s目标使用后续实际位移/保持证据。未完成、未覆盖和unknown按原结果报告。
  6. 封存本次真实运行。 关联实际源码、模型可见输入、Stage、观测、媒体及缺项;R204为历史记录,不能补造新录像或冒称已有DSH原生日志。
  7. 后台分开分析。 将HTTP429归外部模型可用性问题;将接触后未稳定抬升归任务效果问题;资料反复读取、支持面几何歧义和局部程序复用分别核查,不把它们直接写成限流或失败原因。
  8. 派生独立改进案例。 从已封存证据提出可检验假设,按实际支持的场景/初态在另一仿真worker执行;不接管或复位原在线环境。新案例有新身份和新证据,不替换R204历史。
  9. 验证后发布并服务后续任务。 原始经验保谱系,候选经过独审和所需实跑;发布端更新型号唯一current。下一真实任务读取最新方法和模板、按新现场改写并执行,再回流效果。

已有公开复盘记录R204共72次模型请求、95次Tool、39个Stage。它只说明研发运行和改进材料已经存在,不证明线上业务任务下发或完成,也不能据这些数量诊断模型能力或推定抓取成功。原任务链未改;本轮不新增World Tool作为抓取前置。

4. 怎样充分使用仿真,并发产出经验和模板

4.1 在线改进和离线试验分别做什么

在线运行始终允许模型依据反馈动态改程序。 在线指Agent正在执行当前任务,环境可以是真机,也可以是仿真;离线指从原任务旁边另起隔离的仿真试验,与是否调用在线模型API无关。

用途 程序能否修改,在哪里运行 结果说明什么
在线执行与探索改进 当前任务Agent中持续观察、编程、执行和修订;每次执行记录实际源码;不复位正在服务的现场 说明该任务如何被完成、经历哪些失败与修订,形成候选经验/程序
离线检验一个程序模板 独立仿真worker中,对送检程序和约定的参数绑定做可重复测试;需要改逻辑就提交后继版本继续测,所有尝试保留 比较修改前后的具体程序,回答当前送检版本在所列案例上是否有效;不限制在线改写
离线评测整套RSI Agent 独立仿真worker中允许模型观察、查资料、改程序、恢复;记录模型、Skill、Tool与完整修订轨迹 回答整套Agent能完成多少任务、花多少代价;修订后的成功计入Agent任务结果,同时关联真正成功的程序版本

这些是试验要回答的三个问题,不是三套Agent架构,也不要求模型先把修改分成“参数/逻辑/派生”再允许执行。模板被如何改写由系统保存来源和源码差异,服务于经验分析;在线正常路径仍是“运行→反馈→改程序→再运行”。

一个试验批次记录用途、任务与判据、场景/资产当前发布、案例集合、被比较的程序或Agent配置、实际资源和必采配置。杯子任务的几何、破损、初位与手型来自真实支持的场景配置;改进程序不能偷改质量、摩擦或粘接物体来通过。评价代码和留出答案不进入候选作者上下文。具体样本和容差随任务定义,不编造框架统一数字。

4.2 改进任务实际运行在哪里

在线改进在当前任务的Agent程序宿主中;额外试错、对照和模板验证在独立仿真worker中;候选整理与审查在不直接持现场控制权的DSH任务中。

入口可提交改进任务,在线模型也可在失败/低效后提出试验建议。Agent内的试验控制模块接收建议、创建批次并申请仿真资源;普通模型不能凭建议直接占用另一真机。首版由原运行封存事件自动产生改进工作项,已有记录通过同一账本带游标补扫;人工也可引用source_task_ref及适用时的真实run发起。持久认领和幂等由Agent业务模块承接,DSH原生任务/子代理执行分析与验证,不另建Agent调度框架。具体触发和恢复见4.4。

位置 做什么 不共享什么
当前在线任务运行时 观察现场、动态改程序、恢复并完成原目标 不让后台试验复位或控制当前现场
Agent试验控制/worker池 展开案例、排队、分配、取消与核回执;不执行物理引擎 分配身份和DSH会话身份分别保存
独立仿真worker 一个案例尝试占用一个案例Agent、程序进程、Framework进程和Sim实例;运行同一条真实能力链 独立可写目录、端口、ROS域、环境状态和控制权;只读资产可共享
候选作者与独审任务 读取固定案例资料,提炼、核反例、请求验证并生成报告 不继承原现场控制权;独审不继承作者对隐藏测试的答案

每个worker同一时间只运行一个case attempt;其任务Session可包含多次模型回合和多次程序修订,不是一改代码就开新Session。案例核清停止并封存后,worker才可交给下一案例;下一案例使用新任务身份、Session和程序环境。DSH引擎实例可由Agent进程承载多个隔离Session,首版每worker独立Agent/DSH受管进程,避免共享取消或工具绑定。

并发量按实际CPU/GPU/显存、渲染、规划与存储能力测定;不可隔离的后端排队。seed/reset/快照只有真实支持并读回后才记已应用,同seed不等于动力学严格复现。

4.3 复用什么,补什么

复用已有环境加载/复位/观测、资产版本、逐步执行、录像与原始结果;新增的主要是“案例规格→Agent程序运行→证据回执”的试验适配。现有模型评测合同的输入是模型/检查点,并且它可以独占控制环境;它不是 LLM 程序执行入口。 不同时让模型评测循环和 Framework/Agent 写同一环境。

程序试验应实际执行模型提交的程序:用批准模板绑定当前案例,经过原程序校验、执行和效果核验;不能只运行语法检查就产生“成功经验”。收集基线、候选、失败、未知、重试和环境异常。可独立恢复的案例重新核原操作后继续;无法确认现场已停止的 worker 不回收给其他案例。

4.4 后台改进怎样真实运行

运行点 输入与动作 失败/重启后怎么办
原运行归集 原任务的可封存进展/终态形成manifest并产生来源事件;有实际run或阶段时一并关联 事件不是唯一入口;从已保存manifest的连续游标补扫,不能只靠内存通知
认领与去重 以source_task_ref、manifest摘要、分析器版本和改进目标生成唯一工作项;source_run只在真实存在时关联;按持久状态认领 同键返回原工作,不重复生成候选;不同物理尝试不因文字相似被合并;部分失败不丢弃历史
原生DSH分析任务 按可信source_requirements读取适用的原任务/控制证据;实际有模型/程序/Stage时再读取,分故障类别提出候选与竞争假设 缺资料记waiting_evidence;已有物理操作unknown先对账,不能将unknown当新仿真失败或自动重跑原动作
分流 资料投影问题用封存输入回放;真实动作效果问题申请隔离仿真;额度/网络故障不直接送控制训练 R204的429不触发“重跑整轮抓取”来补数据;抓取未达标可独立研究,不假定是限流导致
案例执行 worker池核资源/控制独占,真实准备初态和录制,Agent经原Stage执行新程序 已受理操作只按原ID核;停止未确认不还池;环境不满足标不可比较,不能用同seed假称复现
结果收口 独立报告回原工作项,满足发布规则才更新current;处理完成后推进该项完成水位 报告/索引未知查原请求;失败或无改进归档理由,新增证据或源码变化才形成后继修订,不定时反复研究同一输入

在线改程序不必等待后台;后台资源不足只排试验队,不阻塞正常在线反馈修订。普通任务同一失败可以先恢复继续,已知闭合片段可供分析;涉及未决物理状态的重跑仍须原ID核清。以上后台事件、账本和任务接线为拟建,不是已经启用的周期任务。

5. 经验和程序模板怎样筛选、验证和确认

经验和程序模板:从原始案例到确认发布,再到后续采用原尺寸查看 ↗
经验和程序模板:从原始案例到确认发布,再到后续采用
目标架构图;服务内模块表示职责,不意味着各建一个服务。

原始案例完整保存,候选经过筛选;共享目录只收有明确版本、依据和适用范围、并被确认发布的内容。 当前代码已有私有经验和候选验证/发布的部分函数。本方案补独立验证与管理接线,获批正文进入 ContextDB 的经验模板库,发布和撤回由既有经验服务管理。

阶段 谁做,输入是什么 产出与下一步
收集案例 采集模块汇总任务、程序、调用、观测、媒体、效果和成本 保留成功/失败/未知及采集缺项;没有成功也可以形成有依据的失败经验
归并和提出候选 候选作者读取原始证据,按问题/适用条件去重归并 Lesson提出方法/限制;Procedure提出完整源码、参数/依赖/状态与验证范围;只登记私有候选
核查依据 独立审查者回读候选准确版本与证据,不让作者自行签通过 supported/需补证/驳回及理由。因果不足写观察到的现象;不能把同时发生写成原因
按类型验证 Lesson核主张与反例;Procedure在隔离仿真执行准确源码/绑定。声称更优时用固定判据的基线对照与留出案例 通过/失败/无法判断、适用和不适用范围、全部案例分母与实际成本;非运行型Lesson不一律强制机器人试验
策略确认 确认模块核准确候选、独立报告、用途及当前发布策略;常规通过项自动处理,例外转维护者 发布/补证/拒绝/待人工;保存机器或人工身份与依据,内容变更绑定新报告,不默认每条都等人点击
发布与索引 受控发布模块复用原仓储/版本,写已确认的不可变版本并更新目录 数据保存、发布状态、检索索引回执分别记录;索引失败可补,不重复创建新版本
后续使用和反馈 新任务按型号当前发布目录读最新内容,按现场绑定后校验运行 分别记录读过/选择/实际运行/效果;回归和反例交后台验证与发布流程处理;运行时只读当前发布,不做版本竞选,已发动作保原身份

本方案采用自动提炼、独立核查、真实验证、按策略自动发布的设计,人工处理例外和发布规则变更。 自动确认是业务模块调用可信发布工具,不是让候选作者自己宣称通过。验证无法判断、证据冲突、超出当前用途或涉及未覆盖硬件时转补证/人工;仿真范围内通过不自动扩大到真机。发布策略由管理端配置并留版本,具体样本和成功条件来自任务族。本轮只修改设计,不表示自动发布已接通。外部依据与本项目取舍见自动筛选调研。

仿真验证通过的 Procedure 先进入型号唯一current目录中、用途限定simulation的当前成员;要声称真机适用,需针对实际手型/后端完成独立验证并形成新适用版本。经验可以提示真机任务参考,但不能带来执行权限或跳过现场确认。

5.1 自动筛选发布按哪些规则

论文取料直接围绕“什么可收录、怎样检查退化、怎样用仿真数据”提问,并回读作者原文。RoboRSI支持按潜在调用依赖扩展回归;RoboAuto区分带条件/证据的知识与已验证程序,并用独立任务判据裁决。这里借鉴机制,不照抄论文的试验次数、重合率或成功率作为通用门槛。论文证据与边界

要判断什么 自动检查与下一步
是否重复 同来源/同内容幂等归并;Lesson比较主张和适用条件,Procedure比较源码与参数/依赖合同。语义相近只标待比较,不删原件,不把程序相似当行为等价
是否冲突 适用条件有交集且建议/约束不相容才进入冲突组;条件不同保留场景分支,同条件矛盾定向补证,没有证据不按日期或模型票数选赢家
依据是否充分 格式/hash/权限/真实结果先核;独立判断区分已观测、推断、未测。描述性Lesson可用它实际覆盖的证据;声称某方法更好必须另做运行对照
程序是否有效或退化 原触发任务、历史成功/失败/恢复例、受影响调用者共同形成回归集;相机/手型/Tool/知识或程序依赖改变就扩范围。记录全部尝试、目标与约束,不让平均得分遮盖关键失败
何时自动发布 候选内容/报告/范围一致、独审通过、该类型所需验证通过且无未解决退化,按现发布策略推进current;样本/容差来自任务与评价合同,证据不足继续候选,不猜阈值
何时撤回 关键前提已被证伪、关键约束违例或证据身份失配,按策略停止该成员的新供给;普通单次失败先复核。后台重新验证后形成新current,运行时不挑旧版补位;旧原件永久保留

自动撤回、去重与冲突处置是本项目据机制设计的规则,不能声称论文已交付等价生产系统。撤回只改变未来供给,不能篡改已受理动作;涉及物理风险沿原取消/停止协议处理。资料可读仍不授设备执行权。

6. 一次会话的数据怎样采集,怎样结合 DSH

会话数据:DSH原生历史、Agent调用关联、Framework和仿真证据归集原尺寸查看 ↗
会话数据:DSH原生历史、Agent调用关联、Framework和仿真证据归集
目标架构图;服务内模块表示职责,不意味着各建一个服务。

实际运行了DSH,才采集它的原生会话历史;Agent保存原业务关联;Framework、外部控制器和Sim分别持有自己的执行证据。 归集模块按本次实际路线连接这些来源,不再复制一份可改聊天记录,也不给旧外部任务补造DSH会话。

后台DSH分析旧搬运任务时,要建立新的分析run和Session,引用原Mission及固定清单;这是派生分析,不是原任务当时的模型经历。原任务、后继程序试验和分析会话分别保留身份。

图中的DSH原生日志链仅适用于实际启动DSH的运行;其他路线按后文来源清单收集原任务/控制器证据,不要求补造聊天记录。

一次会话可包含多次 turn(模型处理输入直到交回控制的一回合)、多个业务任务/程序运行和子代理分支。每个试验案例单独标识实例/任务/运行,不能只靠同一段时间或同一个 Session ID 猜测归属。

采集在任务开始、模型/Tool往返、每次程序调用、压缩、分支和结束过程中持续进行。会话关闭、业务完成、物理停止、各源落盘以及数据封存是不同状态:Session结束时外部操作仍未知就保持“待对账”,不能给经验作者一份假完整数据。断连按同源游标补读,重复事件按源身份去重;缺失的子代理树由已登记关系和原生持久历史恢复,不能只等一条新的实时通知。

6.1 先分清该有什么、有没有采到

判断 谁提供依据,记录什么 本次搬运样本怎样处理
本路线应有哪些来源 任务宿主按实际执行器及可信采集配置确定;模型不能为了封存通过自行改成不适用 记录原Mission、外部执行/状态与实际观测来源;没有启动Agent内DSH就不要求其Session
每个适用来源是否取得 原服务提供cut、flush、文件/hash和缺项;预期有却未取得记missing/unknown 原派发/控制回执、独立效果与媒体未取得,不能填成空成功
业务系统怎样结算 保存原状态、版本、报告引用;不由归集改写原终态 World和Agent成功记录保持
物理效果和停止是否有证据 分别引用判据/实测报告与实际停止范围/回执,不互相代替 目前未独立核实;false停止字段既不是已停证明,也不单独证明仍运动

“数据ready”只对本次可信来源清单和用途成立;接口资料够用,不表示已经够验证物理程序。后台确认要求不反过来阻塞原在线任务继续执行或动态改程序,也不要求为补采重做现场动作。

6.2 录像是正式采集项,不靠任务成功顺便得到

旧Agent把录像作为可选项,Sim部分记录器保存的是关节/物体NPZ,不是可播放视频。因此“有业务结果但没有录像”是旧接口允许的状态,不是本轮已发现的丢失事故。新设计对可视化机器人执行和仿真试验默认必采任务相机原始帧/视频:准备时确认录制就绪,执行中记录帧号/时间,结束或取消后排空编码并确认文件/hash及覆盖区间。无动作的纯知识任务不凭空要求录像。

若录制在执行前就不可用,普通任务明确报告并按业务规则决定等待或带缺项继续;必采严格试验记准备失败且不启动,不能只标不完整后照常开跑;运行中采集故障不触发重复机器人动作,保留实际物理结果并标明媒体缺口。原帧仍在时补编码,原帧也不存在则说明不可补。成功判定需要的视觉证据缺失时,核验应返回无法判断;若独立有效证据已能证明目标,则保留物理成功和采集不完整两种真实状态。

6.3 保存与使用

原始会话、程序修订、能力调用、媒体、经验候选、报告和模板默认无限期保存,不设置自动过期删除或按年龄淘汰。压缩历史只改变模型读取方式,不删除源证据;冷热存储迁移保持原引用、hash和可回读性。权限按任务/项目管理,是否可用于训练另记用途资格;保存完整不等于自动进入训练集。

只采集原生协议实际可访问的推理/用量信息,不声称能取得模型隐藏思维链;凭据和受限资料沿原权限处理。正式经验面向后续任务,原始会话/媒体保留原访问范围,不因为入候选就自动共享。

6.4 仿真数据集怎样用,哪些数据才能训练

现仿真平台有两类不同数据:感知图像/掩码/COCO数据,以及含episode、judge报告和可选LeRobot/HDF5包的机器人示范。Portal现接口可列数据集、读元信息/episode/视频和下载已有包;这些接口主要读已落盘产物,不能把“下载”说成“自动生成”。界面降采样曲线不是训练原件,NPZ状态也不自动包含实际动作。现接口核验

用途 从真实任务与仿真数据取什么 必须排除的误用
改经验和程序 任务、可见输入、程序修订、支持/失败/恢复证据;原始仿真episode可补反例和场景覆盖 回放历史观测不能证明新动作的效果;新程序仍由Agent在独立环境执行
训练感知或动作模型 感知取图像/真实标签;动作模型需时间对齐的观测、本体状态、实际命令、单位/顺序/频率和有效mask COCO框不是动作标签;录像/关节状态不自动是控制示范;未知结果不填零回报
训练LLM程序/工具策略 实际模型可见输入、合格程序/调用及对应效果与修订原因,另定义模型训练合同 不采隐藏思维链,不把所有成功回复当专家答案;本轮不选择或启动LLM微调
独立评价与回归 冻结目标、案例谱系/场景、初态和评价配置;分别评价程序、整Agent或模型checkpoint 训练/选择器/候选作者不能读取最终测试答案;评价后用于改进的数据转开发,另建新测试版

数据构建先按真实任务、重试/恢复、同源录像和仿真派生关系分组,再切窗、扩增和导出;同一原任务的P1失败和P3成功不能随机拆成训练/盲测。原始记录永久保存,资格是用途视图,不合某项训练合同不等于删除数据。

Fleet论文说明失败上下文可指导选择成功动作片段;TUCO说明仿真成功不等于训练效用;Active Generative Simulation说明生成应围绕目标域缺口、限于已暴露参数。它们不证明本项目仅凭日志就能训练机器人,也不证明现平台已具备这些评分器。数据用途研究

首版先兑现“真实任务→经验/程序改进→独立评价”,同时导出有用途合同的数据集。现有仿真数据集可直接作为有权限的支持/反例和训练候选;新生成数据按真实支持的场景/资产/相机范围扩覆盖,保留实际参数/hash和源split。具体模型训练另交明确训练规格,模型checkpoint仍走现模型评价通道,不与程序模板发布混用。

7. 交付边界、顺序与待确认项

先沿当前RSI合同打通DSH程序Tool到原Stage能力调用,再接同一任务的原生历史与真实执行关联;随后用一个隔离仿真实例完成程序试验,验证后扩大worker池;最后接候选筛选、独立验证、策略自动确认/例外人工和目录发布。四方向工作包、接口和表结构见配套两文,不能只画图不说明交接。

本轮已落实用户裁定:在线动态改程序、运行时只读每型号当前发布、数据默认无限期保存。已选上述World搬运记录验证业务接入和关联;物理效果、原派发回执和本案隔离仿真条件仍待补证,不能拿R204研发目标替代;R204原3cm/2s仅用于技术试验分析。后续评价面板/采样跟随真正的业务目标;并发容量、初态恢复精度与新DSH桥以实测确认。自动确认策略的具体检查项由本设计和任务验收共同落实,不再列“每条是否等人批准”为默认前提。当前没有进行产品验收,没有证明并发吞吐或任何抓取成功率。

问题入口:执行接口旧判断更正与仿真/资产/数据缺口。RSI当前代码、P13已实现并记录部署的R209及其未完成现场验收、DSH本轮ce7073d官方快照与SDK/组合差量分别列于R8证据稿;不拿旧手册的接口示例替代当前执行合同。

设计评审稿 · 服务内模块与信息流同图;原RSI执行链已存在,新增仿真/确认/采集接线为设计。

LUBAN-2.0 · 任务运行时、仿真Worker与DSH会话

2026-11-03 更新 · 设计稿。当前RSI的程序/原子能力、经验保存读回和记录作为底座;新增DSH组合、动态装配、试验池和数据桥均单列待建设。没有运行或升级DSH、模型、仿真或机器人。总方案 · 统一协议

1. 运行时到底管理什么

Agent运行时是一次受管任务运行的组合,不是一台新的底层服务:它绑定原目标和判据、DSH Session/activation、实际Tool/Skill版本、程序环境、Framework父任务、所选现场和原操作。模型循环由内嵌DSH承担;业务监督决定继续、等待、取消和结束;程序在Agent执行,Framework通过原Stage执行具体Capability。

对象 保存和管理什么 与其他对象的关系
DSH Session 原生消息/事件、Tool往返、压缩和计量 同Session可多turn、多业务run;Session不是仿真实例,也不是程序解释器
任务run 本次目标、判据、模式、授权、原计划/阶段、当前状态 关联Session/activation、程序与原Framework上下文;真实业务状态不由DSH idle推导
程序环境 准入源码、持续namespace、受管回调、显式状态与调用记录 一次execute_code为一个program_run;每次step调用归该run,结果先回程序
仿真worker 独占Agent/Framework/Environment组合、目录、端口、ROS域和GPU资源分配 一个worker同一时间只交给一个case attempt;同一批次可使用多个隔离worker
场景/环境代 实际WorldRef/epoch/scene revision、资产、初态与复位回执 变更后旧观测和旧计划保历史,不能继续当当前环境使用
归集清单 各源cut、durability、水位、原件和缺口、压缩/分支关系 数据ready与任务成功分开;缺件形成partial,不重做现场动作来补记录

任务来源与执行系统分别绑定:已核World搬运样本由external_linkerbot轻量Agent接收,保留现有外部任务执行路径;只有实际装配Framework/RSI与DSH的任务才建立模型Session和程序环境。外部任务可仅建立原Mission的业务监控/数据关联,DSH、程序、Stage字段按实际经历记不适用;不能因为接入2.0就再次执行已完成任务。切换执行引擎只用于明确迁移后的新运行,不接管在途旧操作。详见现场任务核验。

后台统一以来源系统实例、World/Robot/Mission及其固定任务/清单引用识别原业务。source_run只在真实存在时关联;外部任务没有DSH run,也可进入同一改进账本。后继分析run、程序试验run与原Mission分别记录,不能借分析会话补成历史执行会话。

业务任务由既有World Mission派发或Agent本地原任务入口发起;R204实际是后者的RSI研发仿真试验,不是已核实的线上业务来源。R208为空间供给只读设计分析,不是一次任务运行。Hub只在实际配置的中继路径转发,不作为统一任务源。仿真试验案例从原run证据与批次规格产生,新分配simulation身份,不复制原控制permit或更改原Mission状态。二者共用执行模块,但试验worker只能连接本案例的simulation后端,不能因某个Tool支持field就自动切到真机。原Framework资源锁仍保留;它只在进程内生效,worker池另外保证跨进程/设备独占。

1.1 用一个案例解释Session、回合和程序进程

杯子案例C01的一次尝试有一个任务run、一条专用DSH Session、一个持续程序子进程。模型先提交P1并调用execute_code;程序抓取失败回模型,模型提交P2再执行;又补一次观察并提交P3。三版程序、三次program_run都属于同一任务和Session,进程可持续保留获准变量。程序内十次step不会自动变十条模型Tool调用,也不自动新开十个会话。

turn是一次输入交给模型后,到模型交回控制的回合;同一turn中可有多次Tool往返。activation是原生子代理从启动/恢复到停止活动的一段执行标识;一个子Session可先后激活多次,采集要分别记,业务无需据此新建任务。程序子进程是实际运行生成程序和保留变量的地方,与模型会话不是同一对象。

离线C02使用新任务/Session/程序环境,独立验证也另开上下文;worker只在C01的实际动作核清停止后复用。当前真实产品还缺该批次装配,这是目标关系,不是已部署进程清单。

R209 是本稿的底层能力取证基线。计划工具以 R233 de74ed39 为准。Agent程序worker与Stage/Capability主链不变;P13实际模型入口仍创建自身TaskLoop,下面DSH原生模块是2.0要组合的引擎。六项能力增补已实现并记录部署,物理/GPU结果仍待验。见当前版本与精确源码。

2. DSH已有模块与Agent补的部分

原生模块/接口 实际负责 Agent补什么,哪些尚未有SDK桥
core/agent、Agent Loop 原模型循环、turn/step、取消与dispose 绑定业务任务和原目标;DSH回合结束不替代物理验收或外部停止
core/tools register、pre-execute/approval/guard/execute/post-execute/result和调用配对 Agent提供具体业务Tool schema/handler。策略版本和原执行证据另关联;post改变输出不撤销已执行动作
原生Skill供给 摘要发现、正文/资源读取、按需引导 数据库SkillProvider和固定目录权威选择、版本读取;当前RSI固定guide目录不是已建动态Provider
core/session、session-persistence append-only事件、seq、只读历史handle、writer flush 可信插件提供read/flush桥和数据归属,不另写一套消息数据库。SDK通知是live,缺历史/flush现端点
compaction、compaction-basic 原生压缩与sourceEventSeqs来源映射 保留目标、未决操作、准确程序/资产引用和可回读长结果;不自行剪掉历史
subagent、subagent-fork-in-process 原生子任务/分支、activation runId、父子消息 案例推理/候选作者/独审用原生能力;物理资源分配由业务模块负责。SDK子代理树/activation信息不完整,需可信桥
SDK server / Python client 已有Session操作、approval与事件通知 沿官方SDK调用;只有实际暴露的接口才当现能力,管理装配、完整树和历史补采需接原生内部接口

拟建 luban-runtime 是Agent加载的可信业务插件,挂接DSH原生注册/Session读写权与生命周期,向任务宿主提供小范围控制桥。它不接管模型循环、不从数据库执行任意模块,也不建立另一套子代理调度器。

DSH本轮已核官方HEAD ce7073d51254c26cd63b22a60835b8f948deb447并读取官方归档源码;旧f3803c9仅保留历史。新SDK query及组合差量见源码证据。实施前优先重新核官方最新与接口差异,不永久锁旧版本、不自动升级运行实例。

2.1 DSH组合、任务插件和生命周期

运行时由三个边界组成:官方DSH负责模型循环和唯一Session日志;可信luban-runtime插件负责批准Tool/Skill、任务政策和原生数据桥;Agent原有程序宿主负责程序变量与逐Capability调用。SDK客户端与DSH进程之间是官方访问协议,不把编程语言或通信实现命名成业务模块。

选择专用profile,而不是原样开放默认产品组合。 sdk-minimal本身是独立组合,仍包含shell/jobs等,且未自动包含全部Skill/子代理能力;sdk-app基于base还会启用插件管理等工具。A0逐项列出实际装入、禁用和获准工具:核心agent/loop、tools/native、llm、system-prompt、Session/投影、持久化/checkpoint、token/compaction;另显式加入Skill及需要的子代理provider。关闭模型插件安装/启停及未经批准shell/文件/网络入口。配置maxTokensAsSuccess=false并保真实finish reason;输出上限、错误或取消不能当完整动作请求。注册回执、最终模型Tool集合及原provider就绪分别读回,不以包已下载表示可运行。

生命周期位置 DSH真实能力 LUBAN在此检查/交付什么
创建Agent/Session 原生工厂、agent/created、session/created A1a绑定可信任务和实际实例;A2a在scope内供给批准Tool/Skill;创建事件不代替组合ready
每次模型step前 agent/pre-step及system-prompt/Session投影 检查原目标、任务许可、预算、待更新装配和上下文压力;使用已有压缩,模型选择在step准备前配置,不新增已弃用agent/request监听
每个模型Tool前 tools/pre-execute、单调拒绝guard 核任务范围、参数、当前合同和资源;要求补充/拒绝/取消均保原调用配对,不暗中发另一个业务动作
Tool执行中 tools/execute及native批次执行器 B handler接原调用;程序内每个step另核current和权限;B保存外部原请求,结果先回程序再回DSH
Tool执行后 tools/post-execute、最终tools/result 核结果格式并保真实原结果;后置检查不改变已经发生的设备效果;canonical value需B/D另外可靠保存
正常turn将结束 awaited agent/turn-stopping 监督模块核原任务判据和证据,可steer要求补证;不是所有异常/取消都必经的统一出口
模型错误 agent/request-error与原生重试政策 保真实失败;重试模型请求不重发物理操作,预算和取消仍有效
取消/释放 Agent.cancel与AgentHandle.dispose、原Session flush/disposed 先封新派发,B核原动作停止/unknown,D接固定cut,再释放;未知保隔离。普通turn/idle维护保留程序环境

原生session/created、session/disposed是具体事件,不使用虚构的SESSION_START/SESSION_END API。会话结束、原任务结算、程序进程关闭和设备停止各有独立依据。自动checkpoint已在模型请求/顶层Tool/step前提供flush政策,A配置该政策并检查真实后端,D通过桥消费落盘回执,不重复开发第二套模型日志写入。

首次业务绑定先通过拟建runtime.prepare_task保存,官方initialize只确认协议/模型配置就绪。首个session/prompt调用创建Session/Agent时,SDK最小兼容patch将可信绑定和批准资产交入原生factory setup;创建或恢复均在首个followup前完成装配与发布边界校验,失败则不驱动模型。setup只组合不驱动。任务更新先登记pending,外层Tool批次结算后用原生runMaintenance在真空闲执行装配;不得在执行中的Tool内部等本Agent idle。CURRENT_CHANGED在程序step返回,让程序交回外层Tool后再维护;已受理原操作不换实现。数据桥与局部取消/释放所需SDK扩展统一在P14,不让业务层直接调用未暴露的内部对象。

3. Skill和Tool怎样从数据库加载

管理入口支持录入/导入Skill文件与资源、Tool描述/schema、可信实现引用、依赖和适用范围。Skill发布前验证名称/入口/资源路径/正文完整性;Tool发布前确认handler已通过代码交付,输入输出schema与实现匹配。数据库只保存定义、文件和版本引用,不把用户提交代码eval成Tool。

录入draft→校验→发布不可变版本→批准目录渠道。每型号只有一份当前发布目录;每个逻辑资产在目录中只有一个当前实现/正文。目录可包含多个不同Tool、Skill、经验和模板,不是每型号只能有一个工具或一种操作方法。发布后台负责验证、替换和淘汰,运行时不比较新旧候选。历史正文不可改,保留作追查。手册、引导Skill、模型Tool、程序Capability描述和实际后端实现各自有版本,不用一个version覆盖全部。引用与准确文件hash核对;错误hash、同名冲突、缺依赖返回具体问题,当前发布缺失或损坏就返回具体错误,不暗中回退历史版本。

初始化时,任务宿主依据模式、机器人/后端支持与授权生成批准集合;Provider先从型号current目录解析最新发布,再从版本仓读取对应文件,可信插件用原生register/SkillProvider装配,核实际最终集合并保存applied回执。模型只看本任务允许的工具,Skill依赖声明不扩大调用权限。系统级工具组合根也需核集合,不能只验证一个局部Provider。

每次新读取都解析当前发布;每次新step派发前也核current generation,长程序不能因已启动就继续使用已被替换的旧实现。发布CAS与调用受理有明确先后:新发布前已受理的操作保原身份,发布后尚未受理的调用用新current;不能只在execute_code开始时检查一次。合同改变时让程序交回模型修订,已发生动作不重放。若在execute_code内部的step发现current变化,尚未受理的该调用返回CURRENT_CHANGED和当前目录引用,程序宿主在受管边界交回原Tool结果;绝不在执行中的Tool里等待DSH idle。外层Tool批次结算后才维护同步,下一模型请求前明确提供变更和最新正文,再让模型改程序继续。排队输入保留,但不能据其旧到达时间使用旧实现。系统发现发布变化,按需装入最新可用定义。任务中按需变更是受控管理动作,拟接口沿用runtime_catalog_search/runtime_assets_update,不能误写成当前RSI已注册Tool。请求先保存pending,旧批次结算后到DSH idle维护;保护已领取/排队输入,切换准确定义/资源并读回集合,保存applied再继续。不要在该变更Tool内部等待它自己空闲。

已有程序依赖的Capability合同变化,先准备可兼容的新程序并校验再切换;纯Tool/Skill变更不无条件销毁程序环境。模型不提交任意历史版本作为执行选择;版本/hash由reader返回,用于证明实际读过什么。历史仅供授权追查、回放分析和隔离验证,不进入普通运行时选择。已发动作按原请求/实现身份结算,不把其回执改成新版本。旧Skill正文可能已进入原历史,撤回只能阻后续供给/派发并按风险处理,不能删除历史冒称模型没见过。激活回执丢失按原change核实际集合,不换ID重装。

3.1 ContextDB 两库怎样进入一次任务

Agent 在准入时绑定任务许可和型号。知识读取适配只查知识库,经验读取适配只查经验模板库。两条路径先核读权限,再用 ContextDB 索引找资源,最后按可信目录读取准确正文。知识路径依据已批准的知识版本,经验路径依据该型号当前发布清单。新任务能否装配引导 Skill 仍由批准的 Skill 目录决定,skill({name}) 沿 DSH 原生 provider 读取对应资源。模板走经验读取,再绑定现场和程序校验。

模型计划沿 RSI 原 Agent SQLite 保存。新任务按实际工具目录供给 task_plan_read 与 task_plan_update,并保留 task_read 的正式目标与进度查询。模型计划按会话和任务步骤隔离。压缩后或同一步续接时可主动读回最新计划,完整历史按版本查询。阶段的执行证据与验收仍随原程序、Framework 作业和宿主进度报告保存。完整入参与结算见 P15。

4. LLM程序、历史变量和Framework怎样相连

当前已有程序入口run()、get_observation()和step。step接准确Capability名称/参数,宿主经原Stage调用并形成六字段StepReply;等待仍走原Stage,由Framework本地有界可取消等待;它不是Capability,也不推进仿真或证明控制器已停止。模型不直接持设备client、URL或内部plan_ref。规划后显式执行沿现紧邻/单次消费规则,不为2.0增加新的任意RPC客户端。

在线模型可以在同一任务反复修订程序,不要求先判定是改参数还是改逻辑,也不因修改而强制新建DSH Session。当前persistent进程在同一namespace执行新源码,旧全局对象甚至未重新定义的旧函数可能残留,这是当前实现事实;2.0需补显式状态和代码绑定清理,不能冒称已实现。程序的四种状态要分开:同进程namespace可留;局部变量不承诺跨run保留;跨revision转交只接受声明的纯数据;跨崩溃恢复必须用显式checkpoint与原操作核验。纯数据checkpoint和更完整环境代管理是拟补能力,当前persistent namespace不能写成跨重启恢复任意Python堆。

模板源码读回后要绑定本任务参数、环境与当前Capability合同,生成新的ProgramRevision。旧任务的观测、计划、Stage、client和执行身份不能进入可复用变量。异常发生前的全局修改不自动回滚;恢复只重建代码与获准纯数据,不重放原动作。

原TaskLoop的环境回收要区分业务终态、DSH维护回合、模型回合和程序让出:当前源码TaskLoop返回finally仍会关闭程序进程,须按本条目标修改;维护和普通回合不回收任务环境;结束或取消先封新派发,再按原Stage核真实停止/unknown,最后释放解释器及DSH引用。未知操作保留查询入口和资源关联。

4.1 恢复按层负责

层 保留什么,谁恢复 建议行为
模型会话 DSH持消息、Tool结果、压缩来源;Agent恢复关联 网络断开按游标补历史,原调用已完成则读回结果;恢复会话不重发控制
程序环境 Agent程序宿主持源码、已声明纯数据和逐调用记录 进程还在则可续;崩溃则重建代码、装入兼容检查点、重新观察;不恢复设备client或旧计划
业务操作 Framework持原Stage/请求和结果;Agent保存关联 按原ID查受理/运行/完成/取消;停止未知则暂停依赖动作,不靠程序异常推定未执行
仿真资源 worker池掌握唯一分配记录;Framework/Sim各报本层真实状态 已确认停止且原操作核清才还池;进程不可达时由资源管理隔离/重建实例并记录新generation,迟到旧回执仅归旧尝试
真实设备 原设备控制器/安全与运维体系负责停止;Framework报告范围 Agent取消是请求,不替代设备停止证据;需要现场处置时保留人工接管入口,不假称重启Agent就停止机器人
数据归集 D采集模块持各源游标、文件/hash和缺项 独立补采与补编码,补件形成新清单;不能为补录像重做原动作

默认纯数据检查点包括状态schema、程序revision/hash、任务/环境generation、业务变量、已知完成操作引用及观测来源/时间;允许JSON对象/数组/字符串/布尔/有限数值,拒绝函数、client、句柄和凭据。宿主在程序明确交回控制且相关操作已核清的边界提交;它不是与物理动作原子保存。恢复先查原操作再补观察,跨revision按声明字段迁移,不兼容则让模型根据已知现场编写继续程序。

5. 仿真worker的创建、复位与回收

试验池是Agent的业务资源模块。DSH子代理负责某个案例的推理不等于它拥有一个隔离环境;启动必须先取得准确assignment,绑定到worker generation和Framework/Sim端点。原生父子关系与物理分配关系分别保存。

每个worker显式配置:Agent任务/数据命名空间、Framework进程与session/readiness目录、Environment状态根、physics/render socket、端口、ROS domain、录制/暂存/日志目录以及实际GPU分配。可共享按hash固定的只读资产,不共用可写状态根;不执行全局清理共享内存来“恢复一个实例”。无法隔离的规划/渲染后端排队使用。

环境准备先查实际GetCapabilities/Health,再LoadWorld或原Framework prepare。random_seed、WorldRef和配置读回都归档,但当前未证动力学确定性;私有overlay/材质/升降不是公开prepare参数,需场景适配器物化并保存准确hash。模型可见传感器与评价专用真值分开。

复位要列出实际效果:ResetWorld改变epoch/清缓存但保机器人姿态,ResetObjects也保机器人姿态。使用真实支持通路恢复并读回机械臂/手/物体初态;不支持就新建隔离实例,仍不能回到指定初态则标不可比较,不用精确snapshot/restore这类当前deferred方法补故事。

有真实停止证据且无未决原操作后才释放当前assignment。超时/断连/停止未确认时先隔离worker,按原请求核清,不用“租约到期”推断物理进程已经停止。DSH案例子代理结束也不能自动释放这个worker。批次取消只作用于本批次的任务与环境,不重启全机器人栈。

5.1 从原业务记录到后台DSH任务

归集写出不可变manifest后,Agent业务模块保存来源事件及唯一ImprovementWorkItem;DSH原生任务/子代理负责分析、候选作者与独审。事件到达和按连续游标补扫共用同一持久账本,进程重启不靠内存列表认定“做过了”。工作项保source_context(线上业务/验收联调/RSI研发/未知)、实际入口来源和仿真/真机环境;三者独立,不因经生产Hub、用了真机或确实执行过就自动标生产业务。工作项绑定source_task_ref、manifest摘要、分析器版本和改进目标,source_run只作真实可选关联,认领/完成分别落盘;同键只执行原项,补证或分析规则变化产生可追查后继项。

工作状态为discovered→claimed→analyzing→waiting_evidence或trial_pending→validating→decided;外部请求未知先reconciling,不把断连当未执行并另开任务。DSH任务ID、activation、仿真assignment和资产version各有独立关联。一个DSH分析任务可以不申请仿真;需要控制试验才经worker池分配。排队和独审不拥有在线现场控制权。

R204原HTTP429只触发模型可用性诊断,不能据此自动重跑原物理动作;接触后未稳定抬升可提出抓持/观测假设,经原物理证据区分后再申请隔离试验。对已完成无增益工作不按时钟反复分析;新源证据、候选修订或依赖发布变化才触发受影响工作。有限资源不足时排后台试验,不新增正常在线任务的任意轮次/时间拒绝门。

6. 会话采集的组合与封存

采集器按实际路线选取权威来源:原任务/外部控制器记录、Agent实际程序/调用、Framework/Sim执行与媒体;实际启动DSH时再读取其原生Session历史。不适用与缺采集分开,不能强制每条外部任务都拥有模型/程序/Stage。当前RSI自有模型日志在接入DSH前仍保历史;目标接入后DSH是该引擎消息的唯一写者,Agent原表保业务关联,不同时改写两份消息正文。

可信插件建立live订阅后按固定cut读原历史,补resume/fork seed、断连缺口和原生子树;保存runtime/source generation与activation runId。同一子Session多次activation不合并成一次运行。SDK通知没有全部信息时标live_only/partial,不能冒称完整。

DSH通知提交在内存之后但非durability;Tool canonical value也不自动进日志。插件用原writer flush确认cut,采集器将关联/原结果/游标持久化并记录各源回执。程序每次step的真实返回从原宿主和Stage采,原件引用可读且hash匹配;不只收Tool展示文本。视频流和关节NPZ不自动是可回放录像。新可视执行/试验需在首个控制前检查录制ready;必采严格试验未就绪则prepare_failed、未启动,普通业务显式按其业务策略决定等待或带缺项继续;持续记录,结尾确认flush与视频覆盖/hash;采集失败按独立数据状态报告,不靠动作重放补片。默认无限期保存所有原始和派生产物,不配置年龄过期删除。

先由任务宿主保存可信的来源适用清单:每个source的producer/instance、合同和采集要求;没有启动DSH的外部路线不生成Session/CaptureCursor。适用来源才核其cut、flush与原件;本应采集但没有取得是missing/unknown,不得改成不适用。来源未知时保留未核,不能由模型补填。后台分析产生的新Session另关联分析run。

封存时保存各源准确cut及格式/版本、任务与case、Tool/程序/Stage关联、压缩血缘、原件清单、缺项和未决操作。媒体原件损坏/未到保持partial;新增补件生成新manifest版本,不篡改已封存清单。ready只对所列必需数据政策成立,后续独审仍需核结论。

7. 生命周期如何协同

时间点 DSH原生动作 Agent/试验/采集要做什么
创建或恢复 session/created、agent/created、原生resume/fork 固定task/run/activation/版本,核原操作;恢复模型会话不恢复物理世界
模型请求前 agent/pre-step、原生工具集合与checkpoint policy 核批准装配与可继续状态,记录准确输入关联,不塞满全部底层手册
Tool前后 pre-execute/guard/execute/post/result 准入与原结果保存、策略证据、业务操作配对;hook不是自动持久事件
压缩 compaction/start/summary/end/prune 原日志与sourceEventSeqs保留,实际surface另投影;未知用量不填0
回合/维护 turn/end、idle、维护 保护原输入,维护不结业务;turn/end不能当落盘/物理停止证明
完成/取消/dispose 原生cancel/drain/dispose/flush 先核业务真实状态与停止,再结算worker;封存清单与业务终态分别回执

8. 实施验收与未确认事项

先接原RSI执行及DSH唯一消息权威,再完成单worker程序试验和完整数据;验证跨worker隔离后扩大执行并发;最后接独审/策略自动确认与例外人工/发布/新任务采用。相关字段、逻辑表和时序见统一协议,不能用页面演示替代真实验收。

本轮未确认实际GPU并发容量、精确初态复现、DSH新版本的组合加载实证、自动发布规则的实测覆盖及实际角色接线;数据无限期保存已定,不再作为待选项;这些不是靠设计中填一个值就算完成。问题P15-CAP-001、P15-SIM-001、P15-ASSET-001、P15-DATA-001及原动态装配/状态恢复缺口仍在问题台账。

RSI取证 · 仿真取证 · DSH取证

设计评审稿 · 服务内模块与信息流同图;原RSI执行链已存在,新增仿真/确认/采集接线为设计。

LUBAN-2.0 · 执行、仿真试验、资产确认与会话数据协议

2026-11-03 · 设计审阅稿。以下分清原有接口、拟扩展与拟增内部模块接口;没有实施 HTTP/gRPC、数据库或业务代码。总方案 · 运行时 · 分工

P1 · 统一规则:模型参数、管理参数与内部身份分开

原有模型 Tool 和 Framework wire 格式保持各自真实合同,不再包一层新的“统一万能调用”。模型填写任务相关参数;机器人、模式、权限、端点、父任务、原调用身份和内部计划引用由宿主绑定。下述统一外壳只适用于本轮拟增的管理/归集模块接口,不是现有 API 的自动包装。

合同 输入 输出及约束
新管理请求 request_id、目标资源引用、expected_revision(修改已有资源时)、input 身份/角色从可信调用上下文取得,不接受请求正文的 approved=true 或自报管理员身份
新管理回执 原 request_id、status、资源/操作引用、当前 revision、result、error、实际证据引用 status区分accepted/running/succeeded/failed/unknown;succeeded只表示本接口完成,不能表示机器人目标成立
同一管理请求重试 同一操作域、原 request_id、完全相同参数摘要 返回原回执;同键异参返回conflict。遇响应丢失先查询原请求,不换ID再创建试验、发布或控制
长操作 受理后返回operation引用;按该引用查询或订阅 原Tool若只回accepted就只闭合“提交调用”;后续查询是新的call_id,最终操作回执不伪造第二个原Tool结果
版本与权限 资源准确版本/hash、用途simulation/field、执行/读取范围 权限、内容版本、物理支持是三种检查;知识读取和Skill加载都不授设备执行权

业务ID各有用途:Session标识模型历史;run标识本次任务运行;Tool call_id用于请求/结果配对;program_run标识一次程序执行;Stage/操作ID定位实际执行;trial_case标识试验案例;asset_version标识不可变经验/模板。不能拿call_id替代实际操作查询ID,也不由模型拼接这些内部关联。

P2 · 当前模型Tool与程序Capability合同

R8 取证基线为18基础Tool(含skill)加1条件experience_record。P13 R233 在其新任务目录增量加入两项计划工具,见 P15。基础包括task_read、observe_scene、execution_read、code_read、experience_read、video_read、history_read、program_read、tool_call_result_query、knowledge_search、knowledge_read、tool_search、tool_read、grasp_pose_compute、skill、verify_effect、program_validate、execute_code。条件写入由现任务模式和策略决定。DSH接入后原生skill供给与现引导目录只选一个明确权威路径,不重复暴露两个相同名字。

原入口 已有输入/输出 2.0处理
program_validate source、reason、可选完整stage_contracts、private_experience_use 保存准确源码和合同;本轮共享经验采用证明的扩展见P5。不是只做语法校验
execute_code {},执行当前已准入程序 DSH注册为业务Tool,调用原程序宿主;不另接一份源码或从普通回复提取代码
程序 run/get_observation/step step({kind:capability,name,arguments});wait仍走原Stage,由Framework本地有界可取消等待,不是Capability 程序计算、循环、能力调用与反馈保持原实现;取消的是固定五Action编排,不删除step函数
StepReply status、capability、arguments、result、error、observation六字段 原始业务结果和观测按源保留;已知业务失败可分支,未决执行不伪装成未执行
motion.plan-pose/plan-joints → control.execute-trajectory 分别规划/执行;执行公开arguments为空对象,内部绑定本次run紧邻成功计划、单次消费 不把内部plan_ref变成模型参数;中间插入其他step或新run不得沿用旧计划
manipulation.hand-command 已注册手部命令,按真实side/手型/姿态或joint_targets分支 当前原语执行入口。plan-hand-command只nominal预演,不强制作为前置,不另造execute-primitive

实际路径:程序worker→现Agent反馈适配→原Stage执行端口→Framework现Stage capability分支→原Gateway/Provider/Backend。旧拟建CapabilityExecutionService和新cap SDK不再是本轮前提。P13 R209六项增补能力、动态规划几何与SDK新手力投影已进入当前源码并记录部署;2.0沿原Stage接入,按实际后端与返回有效性使用,不将注册或ready等同现场物理验收。当前RSI仍为原TaskLoop,内嵌DSH接线尚待实施。

当前R209增补属于程序可调用的能力合同,不是额外复制六个顶层模型Tool:

当前能力/返回 负责什么,保留什么边界
planning.scene-read / scene-update 读取/更新规划场景上下文;首版按cuMotion支持,不能据此改动物理世界
planning.contact-policy-set 配置规划接触约束;不等于传感器已测到接触
planning.held-object-attach / held-object-detach 维护规划器中的持物关联;不物理粘接物体,也不证明已抓稳
manipulation.configure-hand-drive 配置受支持手型的驱动;真机SDK可能只返回accepted_unverified,不能当效果已确认
geometry.project-pixels及手力投影 几何接口已有真实producer;六维力/力矩保单位、有效性及原时钟,无效返回null;未标定轴/参考点不用于编造摩擦结论

准确源码与版本见当前增量核对。注册/文档和P13部署记录分别说明软件交付,不代替本轮物理/GPU效果验收。

Q1 · 模型编程、原子能力与反馈
sequenceDiagram participant D as Agent内DSH participant T as 程序Tool participant P as 原程序宿主 participant F as Framework原Stage与能力 participant S as 所选仿真或真机 D->>T: program_validate提交准确源码与合同 T-->>D: 保存和校验结果、程序版本 D->>T: execute_code执行当前准入程序 T->>P: 绑定本次run与外层Tool调用 P->>F: step请求规划Capability F-->>P: 规划结果,内部保存本次计划关联 P->>F: 紧邻step请求轨迹执行,公开参数为空 F->>S: 已绑定的真实控制请求 S-->>F: 现场反馈与观测 F-->>P: 六字段StepReply及原件关联 loop 程序内计算、分支与后续能力 P->>F: 当前任务下一次step F-->>P: 实际结果与新观测 end P-->>T: 程序结果、记录与未决项 T-->>D: 配对到原execute_code的Tool结果
时序源文
sequenceDiagram
    participant D as Agent内DSH
    participant T as 程序Tool
    participant P as 原程序宿主
    participant F as Framework原Stage与能力
    participant S as 所选仿真或真机
    D->>T: program_validate提交准确源码与合同
    T-->>D: 保存和校验结果、程序版本
    D->>T: execute_code执行当前准入程序
    T->>P: 绑定本次run与外层Tool调用
    P->>F: step请求规划Capability
    F-->>P: 规划结果,内部保存本次计划关联
    P->>F: 紧邻step请求轨迹执行,公开参数为空
    F->>S: 已绑定的真实控制请求
    S-->>F: 现场反馈与观测
    F-->>P: 六字段StepReply及原件关联
    loop 程序内计算、分支与后续能力
        P->>F: 当前任务下一次step
        F-->>P: 实际结果与新观测
    end
    P-->>T: 程序结果、记录与未决项
    T-->>D: 配对到原execute_code的Tool结果

P3 · 仿真程序试验接口(拟增,Agent内业务模块)

在线运行允许模型持续修改程序,真机和仿真任务均适用;以下接口用于另起隔离仿真试验,不是在线修改的必经审批。网络路径/IDL实施时按现服务框架确定;相机、状态和控制仍用现接口,不让SimService执行模型源码。

接口/owner 主要输入 返回与实际交接
trial_batch.create / 试验控制 source_task/run或source_dataset/episode快照、task_spec、criteria_ref、cases、intent=explore / procedure_check / agent_eval、程序/Agent配置引用、型号current发布、capture_policy、资源配置 batch_revision和逐case身份;intent只决定评价对象/报告,不改变在线RSI许可;保存发起者/在线任务建议来源和全部attempt统计方式
trial_case.assign / worker池 batch/case、simulation模式、真实能力/环境需求 原子占有worker及generation、软件解析端点;首版worker独立Agent/DSH受管进程、程序子进程、Framework进程和Sim环境,控制权不共享
trial_case.prepare / 场景适配 assignment代、物化场景/hash、机器人初态、必采声明 WorldRef/epoch、初态读回、已应用/不支持/缺项;可视试验首个控制前关联capture ready;seed相同不当严格复现
trial_case.start / Agent适配 prepared_case、准确程序/方法、任务参数、当前Tool/Skill/能力目录 新任务run、专用Session和程序环境;同一attempt内可多turn、多revision、多program_run。procedure_check的改稿另记后继候选,agent_eval允许全过程修订
trial_case.result/cancel / 试验控制 原case/run/操作引用 独立返回目标结果、物理停止状态、data_status与实际成功revision;cancel先停新增派发再核停止,不把采集缺项改成物理失败
trial_evidence.seal / 采集 case、各源cut、capture_policy、录像覆盖/flush证据 固定清单、hash、缺项;ready/partial只对应数据,保存所有attempt和总成本,不覆盖失败
trial_compare.create / 独立评价 同一任务判据、baseline/candidate、cases/split、实际初态、evaluation_target=procedure / agent 逐例/逐attempt结果与修订轨迹;程序结论归实际执行revision,整套Agent结论包括动态修订;不可配对标unpaired,留出结果不泄露作者

探索可以不断产生新程序;送检程序修改后可继续测新版本,只是不能把新版本成功写成旧源码成功。无需模型事前区分参数替换、逻辑改写、派生类型;系统后台记录diff、来源和实际效果。

现有环境底座与限制:Environment有LoadWorld、ResetWorld、ResetObjects、GetWorldState和状态/传感/控制接口;Framework现prepare/reset适配可复用。ResetWorld是epoch fence并保机器人姿态,ResetObjects也保机器人姿态;二者都不是完整初态恢复。受支持时显式恢复并读回机器人初态;无法恢复则重建独立worker并读回,仍不能恢复准确初态的案例保不可比较。Isaac精确snapshot/restore/fault/trace尚不可用,不能作为本设计已可执行的步骤。

物化overlay、材质、升降和其他支持因子的独立摘要;它们并非现prepare的全部公开JSON字段。新增场景适配器只接真实支持参数。实际传感时刻/单位/坐标保留;仿真真值若用于独立评价,必须标evaluator_only,不能混入模型可见观测。

Q2 · 独立worker运行一个案例
sequenceDiagram participant B as 批次控制 participant W as Worker资源池 participant A as 案例Agent运行时 participant F as 案例Framework participant S as 案例Sim环境 participant C as 采集与独立核验 B->>W: 申请case的simulation资源 W-->>B: 独占分配与generation、软件解析端点 B->>S: 经场景适配加载/复位支持项 S-->>B: 真实WorldRef、epoch和缺项 B->>F: 恢复可支持机器人初态并读回 F-->>B: 实际初态、可运行/不可比较 B->>A: 固定任务、程序、场景与分配代后启动 A->>F: 原程序step能力请求 F->>S: 本案例控制与观测 S-->>F: 本案例物理反馈 F-->>A: 实际结果回当前程序 A-->>C: 程序/调用/原Stage与采集引用 S-->>C: 实际测量、媒体和环境版本 C-->>B: 验证结果、数据缺项和停止状态 alt 实际停止与原操作已核清 B->>W: 结算当前assignment并释放 else 未知或停止未确认 B->>W: 隔离该worker,保原ID对账 end
时序源文
sequenceDiagram
    participant B as 批次控制
    participant W as Worker资源池
    participant A as 案例Agent运行时
    participant F as 案例Framework
    participant S as 案例Sim环境
    participant C as 采集与独立核验
    B->>W: 申请case的simulation资源
    W-->>B: 独占分配与generation、软件解析端点
    B->>S: 经场景适配加载/复位支持项
    S-->>B: 真实WorldRef、epoch和缺项
    B->>F: 恢复可支持机器人初态并读回
    F-->>B: 实际初态、可运行/不可比较
    B->>A: 固定任务、程序、场景与分配代后启动
    A->>F: 原程序step能力请求
    F->>S: 本案例控制与观测
    S-->>F: 本案例物理反馈
    F-->>A: 实际结果回当前程序
    A-->>C: 程序/调用/原Stage与采集引用
    S-->>C: 实际测量、媒体和环境版本
    C-->>B: 验证结果、数据缺项和停止状态
    alt 实际停止与原操作已核清
        B->>W: 结算当前assignment并释放
    else 未知或停止未确认
        B->>W: 隔离该worker,保原ID对账
    end

P4 · 经验与程序候选筛选、独立验证、确认发布

复用原Lesson/Procedure、不可变版本、仓储、register_candidate/validate_candidate/publish/withdraw函数;新增的是管理接线、独立验证器及与试验的关联。现private与offline两处装配的validator抛unavailable,不能把函数存在描述成已可使用的线上管理端点。

拟增管理动作 主要输入 返回、权限和顺序
candidate.derive 私有源版本/案例清单、kind、proposal、程序版本(Procedure) 新共享候选及源谱系。原私有owner_run版本不原地改成共享
candidate.review 准确候选version/hash、审查范围、证据/反例引用 独立审查任务与不可变报告;审查者身份由系统记录,候选作者不能给自己签通过
candidate.verify 准确候选/程序hash、验证政策、trial或非运行证据范围 通过/失败/无法判断报告;结果与真实证据相符,候选内容变更使旧确认不再可用
candidate.confirm version/hash、独立报告hash、purpose、model_id、policy_revision、expected_head_revision;人工例外附action/reason 策略模块自动核完备性、独立身份、真实验证和范围,产生publish/needs_evidence/reject/manual_review及理由;例外由授权维护者处理,不让作者自行签通过
candidate.publish 已确认Decision引用、原version/hash、model_id、逻辑资产identity、原expected_head_revision 服务重核可信策略或人工身份、内容/报告/范围,以CAS调用原发布底座并推进型号current;索引晚到时仍以current为准。响应未知查原请求,不换ID重发
candidate.withdraw 准确版本、原因、expected_head_revision 停止后续目录供给、保留历史与已运行证据;停用与实际取消动作分开

自动筛选和评价政策的字段(拟扩)

CandidateAssessment保存准确候选/hash、主张/条件、observed/inferred/untested标记、支持/反例、duplicate_group、conflict_group、potential_dependents和待验证假设。相同正文/hash只去重发布,不删除来源;条件交集不相容才判冲突。无法证明完整潜在依赖时扩大回归范围,不能仅按当次调用轨迹缩小。

EvaluationPolicy保存原任务判据/硬约束、评价对象、原失败与历史回归集、开发/保留案例、初态要求、每项required检查、对照规则和证据不足处理。R204研发样例沿原3cm/2s目标,不作为线上首批业务任务或生产评价面板;接触力passed不等于lift_hold通过,HTTP429另记可用性故障。局部程序如只证明短距离运动,只能按该局部合同送检/发布,不能升级成完整抓取成功模板。

默认发布判断为:格式/来源/权限一致;独审主张不超证据;类型要求的真实验证通过;必需回归无未解决退化/关键违例;报告与current前提一致。已有失败也须保分母。声称提高成功率/成本时另按预先声明对照规则核,不足则inconclusive,不能用单次成功宣布更优;不编通用2次/60%之类门槛。送检修订不限制在线改程序。

WithdrawalAssessment区分confirmed_critical(关键证伪/约束违例/证据身份失配)与needs_review(普通失败/不明冲突);前者按策略撤下受影响成员并生成新current,后者定向复核,不默认一例失败永久淘汰。后台可选经当前范围重新验证的历史内容形成新发布,普通运行时不选旧版或暗退旧版;无有效替代就明确无该可用资产。新调用按current重核,已受理原操作按原身份结算,物理风险沿原取消/停止处理。

现有报告合同必须处理的差异

当前publish要求独立validation_ref与candidate_verification_ref;后者强制非空completed_stage_ids/future_stage_ids,Procedure还核程序revision/hash。不能把普通“审核通过”文档伪装成这些报告,也不能为了发布非运行Lesson编造stage ID。

目标在原ExperienceService增加按类型验证的报告适配:保留现程序修订报告路径;新增版本化 lesson_evidence 范围报告,只有kind=lesson可用,记录实际主张/证据/反例、用途、可信验证者和不适用运行阶段的理由;Procedure使用 program_trial 报告,绑定完整源码hash、参数/能力合同、场景与全部验证case及结果。发布端按kind、scope和policy精确匹配可信验证器,两个新范围均是待实施合同,不能让调用者任选scope绕过Procedure运行验证。旧版本报告保原始schema,不静默重写。

自动或人工确认都只授报告和发布策略所列用途和范围;自动化默认覆盖既定仿真范围内常规通过项,无法判断、冲突、用途扩展和新硬件转补证/人工,不把每条都交人点击。同一候选跨simulation→field须有对应field验证和对应策略授权;仿真通过不能给现真机自动执行权限。初次可靠性验证可不比较基线;若主张效率/成功率提升则必须提供公平对照、案例分母及留出结果。未知/环境失败单独统计,不剔除后只报成功。

发布持久化与检索索引不是同一事务。先保存不可变发布结果,再按该发布ID更新索引;索引失败标published_not_indexed并幂等补索引。已发布版本可准确读回;目录只供给授权用途的已确认版本,不能因为向量搜索命中私有候选就当共享批准。

Q3 · 自动筛选、验证与发布,例外转人工
sequenceDiagram participant A as 候选作者任务 participant E as 原经验服务与管理接线 participant V as 独立审查与仿真验证 participant P as 发布策略模块 participant H as 例外处理维护者 participant I as ContextDB 经验模板库 participant C as Agent 当前发布账本 A->>E: 从实际案例派生候选及准确源码 E->>V: 固定候选/程序/用途和证据,作者不自审 V-->>E: 独立报告、反例与全部尝试 E->>P: 核候选摘要、报告、发布策略和current序号 alt 在既定范围且检查通过 P-->>E: 自动Decision,绑定策略与报告hash else 缺证、冲突或范围扩展 P-->>E: 补证/拒绝/转人工及原因 opt 策略要求人工例外处理 E->>H: 完整候选、依据和未覆盖项 H-->>E: 授权决定或退回,不伪造验证通过 end end opt 存在有效发布决定且current未变 E->>I: 按发布身份写不可变正文并读回核摘要 I-->>E: 正文就绪或待核实 opt 正文就绪且摘要一致 E->>C: 按预期发布序号 CAS 推进唯一 current C-->>E: 发布完成或版本冲突 opt 发布完成 E->>I: 触发或对账索引 I-->>E: 独立索引回执 end end end
时序源文
sequenceDiagram
    participant A as 候选作者任务
    participant E as 原经验服务与管理接线
    participant V as 独立审查与仿真验证
    participant P as 发布策略模块
    participant H as 例外处理维护者
    participant I as ContextDB 经验模板库
    participant C as Agent 当前发布账本
    A->>E: 从实际案例派生候选及准确源码
    E->>V: 固定候选/程序/用途和证据,作者不自审
    V-->>E: 独立报告、反例与全部尝试
    E->>P: 核候选摘要、报告、发布策略和current序号
    alt 在既定范围且检查通过
        P-->>E: 自动Decision,绑定策略与报告hash
    else 缺证、冲突或范围扩展
        P-->>E: 补证/拒绝/转人工及原因
        opt 策略要求人工例外处理
            E->>H: 完整候选、依据和未覆盖项
            H-->>E: 授权决定或退回,不伪造验证通过
        end
    end
    opt 存在有效发布决定且current未变
        E->>I: 按发布身份写不可变正文并读回核摘要
        I-->>E: 正文就绪或待核实
        opt 正文就绪且摘要一致
            E->>C: 按预期发布序号 CAS 推进唯一 current
            C-->>E: 发布完成或版本冲突
            opt 发布完成
                E->>I: 触发或对账索引
                I-->>E: 独立索引回执
            end
        end
    end

P5 · 后续任务怎样真正使用模板

experience_read现源码已有query/kind/version_id/section/offset/limit(这是现状,不代表2.0继续给普通模型任意旧版执行选择),准确读回包含完整authoring正文和Procedure内容,不新增旧稿的view=program_template假参数。支持/反例读按原准确version条件使用。模板源码/参数/阶段合同缺失时返回缺项,不从普通知识代码块猜模板。

目标读取合同:普通任务先按model_id解析唯一current目录,选择的是逻辑经验/模板,返回最新发布的version/hash和完整内容。分页/支持反例读中回传的version只作一致性检查;目录已变返回CURRENT_CHANGED及新current引用,重新读取,不能退回旧版本拼接正文。后台审计/独立送检可查历史原件,但不开放为普通运行时版本选项。搜索索引命中旧项时也须回current解析并核权限;current缺失/损坏明确报错,不暗退历史。

“每型号一个”指一份当前发布目录以及每个逻辑资产唯一当前实现;其中仍有多个不同Tool/Skill/经验/模板,后端由任务已绑定的型号/模式确定,不让模型在多个老后端间竞选。目录淘汰和替换发生在后台发布,不发生在任务执行决策中。

当前私有采用证明:program_validate.private_experience_use记录version、applied/not_applied和reason;服务核本会话模型输入确实见过该准确完整版本,再关联读Tool/结果、模型输入和程序。共享版本的采用需要扩展此证明的可见性/归属条件,不能直接把private字段用于跨用户共享候选。

2.0拟给program_validate增加 experience_use={version_id,usage,reason},按已保存版本的实际private/shared类型核读取权限、发布用途、完整曝光和准确内容;保留原private字段用于原模式,二者同次不可混用。服务端仍复用原读取/曝光/采用记录,新增的是共享验证分支与字段映射,不新建经验使用真源。version_id在这里是已经读到的来源证据,不是装配旧实现的选择器;current已变则新采用先补读当前内容并重新核依赖,原历史曝光记录仍保留。没有合法完整读取证明则不登记applied,允许模型继续说明not_applied或补读,不伪造记录。

在线任务允许动态修改当前程序;模板产生新任务ProgramRevision,移除旧任务/操作身份、旧plan/观测引用,按当前参数、场景、Capability合同和状态环境重绑校验。不改写已经执行的源码和回执。新源码校验后在下一次execute_code生效,保留当前任务和Session;不在正在执行的调用栈中替换函数。系统自动保存来源版本/参数/源码差异,不增加模型对“参数替换还是派生”的前置分类Tool。读过、选中、实际执行、目标有效是四种统计。

Q4 · 准确模板进入新任务
sequenceDiagram participant D as 新任务DSH participant R as 经验读取Tool participant C as Agent 当前发布账本 participant E as ContextDB 经验模板库 participant L as 原采用记录 participant P as 程序校验与采用证明 participant F as 原程序执行链 D->>R: 查询适用Lesson或Procedure R->>E: 限定经验库范围搜索 E-->>R: 逻辑经验或模板候选 R->>C: 核权限与用途,解析型号当前发布 C-->>R: 准确资源引用和摘要 R->>E: 按引用读取完整正文并核摘要 E-->>R: 正文、源码/参数合同及来源hash R-->>D: 实际展示完整版本与读取结果 D->>P: program_validate提交本任务新源码和采用声明 P->>P: 核完整曝光、准确版本、权限与本任务重绑 P-->>D: 新ProgramRevision和采用回执 D->>F: execute_code运行当前准入版本 F-->>P: 真实调用、程序结果和目标核验证据 P->>L: 记录版本采用及实际效果
时序源文
sequenceDiagram
    participant D as 新任务DSH
    participant R as 经验读取Tool
    participant C as Agent 当前发布账本
    participant E as ContextDB 经验模板库
    participant L as 原采用记录
    participant P as 程序校验与采用证明
    participant F as 原程序执行链
    D->>R: 查询适用Lesson或Procedure
    R->>E: 限定经验库范围搜索
    E-->>R: 逻辑经验或模板候选
    R->>C: 核权限与用途,解析型号当前发布
    C-->>R: 准确资源引用和摘要
    R->>E: 按引用读取完整正文并核摘要
    E-->>R: 正文、源码/参数合同及来源hash
    R-->>D: 实际展示完整版本与读取结果
    D->>P: program_validate提交本任务新源码和采用声明
    P->>P: 核完整曝光、准确版本、权限与本任务重绑
    P-->>D: 新ProgramRevision和采用回执
    D->>F: execute_code运行当前准入版本
    F-->>P: 真实调用、程序结果和目标核验证据
    P->>L: 记录版本采用及实际效果

P5.1 · 两个 OpenViking 库的读写边界

以下为拟建逻辑目录,实际资源路径和权限配置在实施时按 OpenViking 实例核对。

内容域 写入与当前版本 运行时读取
知识库 知识维护者发布原语、接口手册、方法与批准 Skill 资料。按资源键维护版本与摘要 knowledge_search 和 knowledge_read 只查知识库。Skill provider 按批准目录读取准确正文与资源
经验模板库 ExperienceService 仅将获批 Lesson / Procedure 正文写入。记录资源引用、摘要、用途、适用范围及验证证据引用,按型号 CAS(比较并交换)更新当前清单 experience_read 的共享分支只查该库,再按权限及型号当前清单精确取正文。私有原案仍通过原会话授权读取

两库按可信服务身份限定目录,模型查询不能扩大范围。发布先核 OpenViking 正文可读且摘要匹配,再更新当前指针。索引异步就绪单独记录,候选搜索尚未就绪时仍可按已授权的精确引用读取。遇到旧索引命中,重新校验当前指针、用途和访问权限。撤回或替换当前版本后,旧索引结果不能继续供运行时采用。Agent 保留发布审批与幂等回执,执行证据和历史原件按原记录引用。

P6 · DSH会话采集与恢复接口(拟桥接原生能力)

采集接口 输入 输出及准确边界
capture.observe_session runtime_instance、session、权限上下文、可取消订阅 原生live事件和ready;不承诺历史、落盘或Session一定存在。接SDK通知须过滤租户/任务,不能广播全部Session
capture.read_session 同实例/session、from_seq、固定through_seq、分页 原header/format、事件、下一游标、source_revision;首版在DSH可信插件中复用原SessionController/SessionQuery观察接口;固定cut历史由sessionPersistence只读handle分页读取,禁止新增deprecated snapshotEvents/ownEvents调用;对外SDK尚缺此桥,不让采集器任选存储读法
capture.flush_session 原Session与request_id、through_seq,当前拥有写权的受管DSH插件 成功/失败/unknown、可证明的durable_through_seq与barrier引用;插件定位该Session原writer并调用flush,序号覆盖后才确认;不是采集器另开writer,不用turn/end当flush
capture.session_tree 根Session、已登记activation关系及查询范围 原生子Session目录、activation runId与缺项;SDK子代理通知未带内部runId,不能靠收到的树判断完整
capture.reconcile 原实例身份、连续游标、source cuts、原业务操作引用 缺失区间、补读和实际操作状态;不resume模型或重发任务来补采
capture.seal 原业务身份/真实run引用、可信source_requirements、固定各适用源cut、任务/案例、必需数据政策 ready/partial清单、每源durability/消费者落盘回执、未决操作和原件缺失。ready只指该数据政策下齐全,不表示物理成功

DSH保存tool/call与最终tool/result,但Tool的canonical value不默认入durable日志;pre/post/guard也不是自动同名持久事件。Agent必须把实际Framework返回和必要canonical字段作为原执行证据保存,策略判断另存版本/结果关联,不以模型投影文本替代原始结果。程序内部每个step可能没有独立顶层Tool事件,仍从原程序/Stage记录补齐。

原生实时事件在内存提交后fire-and-forget;resume/fork seed不重发通知。先订阅暂存live,再读固定cut历史,按(source instance,session,seq)归并;重复seq须摘要相同,断号标gap。flush由原writer串行确认一个明确cut的durability,采集器将对应关联和游标持久化后才推进自己的已落盘水位。原生持久化失败/崩溃未确认保持unknown。

压缩保留compactionId、sourceEventSeqs、实际shadowed节点集合和replacement;不要把可变化的surface顺序当连续seq区间。保留完整原生log与实际model-visible surface的对应关系。用量字段未提供标unknown,缓存token和reasoningToken分开;货币费用只有账单或价格版本估算,估算明确estimated。

Q5 · 订阅、历史补读、持久化和跨源封存
sequenceDiagram participant C as Agent采集关联模块 participant D as DSH可信插件桥 participant L as DSH原生Session持久化 participant X as Framework与Sim原件 participant M as 运行证据清单 C->>D: 订阅当前Session与原生子树 D-->>C: ready及live事件,暂存不当完整 C->>D: 从最后连续seq读取到固定cut D->>L: 只读原历史与header L-->>D: 历史前缀、来源版本 D-->>C: 分页事件,补齐seed与断连缺口 C->>D: 请求writer确认该cut已持久 D->>L: 原writer flush L-->>D: 持久化成功或失败/未知 D-->>C: 该cut的barrier回执 C->>X: 按原操作/实例与采样身份取实际结果和原件 X-->>C: 真实状态、媒体摘要与缺项 C->>M: 幂等保存关联、各源水位与不可变清单 M-->>C: ready或partial、原件/未决项列表
时序源文
sequenceDiagram
    participant C as Agent采集关联模块
    participant D as DSH可信插件桥
    participant L as DSH原生Session持久化
    participant X as Framework与Sim原件
    participant M as 运行证据清单
    C->>D: 订阅当前Session与原生子树
    D-->>C: ready及live事件,暂存不当完整
    C->>D: 从最后连续seq读取到固定cut
    D->>L: 只读原历史与header
    L-->>D: 历史前缀、来源版本
    D-->>C: 分页事件,补齐seed与断连缺口
    C->>D: 请求writer确认该cut已持久
    D->>L: 原writer flush
    L-->>D: 持久化成功或失败/未知
    D-->>C: 该cut的barrier回执
    C->>X: 按原操作/实例与采样身份取实际结果和原件
    X-->>C: 真实状态、媒体摘要与缺项
    C->>M: 幂等保存关联、各源水位与不可变清单
    M-->>C: ready或partial、原件/未决项列表

P7 · Skill/Tool动态装配与程序环境

仍在Agent内建设管理录入、数据库资产版本和任务装配,不把当前固定Skill目录写成动态DB已接通。录入draft→校验真实文件/合同/依赖→不可变release→批准用途/范围→运行时applied receipt;Skill摘要发现后读正文,Tool schema与handler为可信代码发布后的引用,数据库文本不exec成插件。

每型号唯一current manifest由发布端推进;当前成员含各逻辑Skill/Tool/能力描述/已发布经验模板的唯一版本。普通入口只解析current,不接受历史版本选择;目录内容版本、读取权限和现场能力支持仍分别检查。每次读取取最新,每次新step/独立Tool派发前也核current generation,不只在长execute_code起点检查。发布CAS和派发受理须线性化:若受理在CAS之前则为已受理旧操作,若CAS先发生则新请求必须新current;读取旧版但尚未受理不得延迟绕过。step在派发前发现变化时返回CURRENT_CHANGED,受管程序交回原execute_code结果,外层批次结束后再进入idle维护;禁止活动Tool等待自己的idle。下一模型请求前提供最新变更/正文,必要时让模型修订未来源码;排队输入也重新核current。下一批次据current变化受控切换;已受理原操作保原实现身份查回执,不能换成新实现继续同一请求。若程序合同已不兼容则把问题返回模型正常修订,不暗选旧后端,也不把新源码变更当失败。

任务的模型Tool/Skill集合与程序Capability许可分开登记。运行中变更申请先pending,保护已领取输入,等完整Tool批次结算和DSH idle维护,再用受控原生register/provider切换,读回最终集合后续办;不能在变更Tool内部等自己的idle。已用Capability合同变化必须先准入替换程序;只改无关Tool不必销毁当前程序环境。原始消息中的旧Skill正文保留,不通过删除历史假装撤回已见知识。

程序宿主仍是Agent,Framework执行原Stage能力。当前持续namespace可留同进程全局对象,但locals、崩溃堆和异常回滚没有保证。拟建显式纯数据状态checkpoint与环境代,跨revision重建代码并转交已声明状态;计划、设备client、凭据和旧观测不做可恢复变量。解释器崩溃先对账原Stage;没有有效纯数据checkpoint则补观察、生成继续程序,不重放整段动作。

任务结束/取消先停新派发,再核外部操作与停止范围,最后结算DSH和环境引用。维护回合不等任务完成,Session disposed不等机器人停止;采集封存与物理结算分别记录。

Q6 · 数据库资产进入运行时的安全切换(拟建)
sequenceDiagram participant H as 管理入口 participant V as 资产版本仓储 participant A as Agent任务运行时 participant D as DSH可信插件 H->>V: 录入、校验并发布准确Skill或Tool定义版本 H->>A: 请求按型号current同步,不能选择历史版本 A->>A: 保存pending、保护排队输入与原业务操作 A->>D: 原完整批次结算后进入idle维护 D->>V: 解析唯一current并读取最新成员及handler V-->>D: 文件、合同与hash D->>D: 原生注册/Provider切换并核最终集合 D-->>A: applied回执或失败、实际集合 A->>A: 保存applied后续办;失败按原change对账
时序源文
sequenceDiagram
    participant H as 管理入口
    participant V as 资产版本仓储
    participant A as Agent任务运行时
    participant D as DSH可信插件
    H->>V: 录入、校验并发布准确Skill或Tool定义版本
    H->>A: 请求按型号current同步,不能选择历史版本
    A->>A: 保存pending、保护排队输入与原业务操作
    A->>D: 原完整批次结算后进入idle维护
    D->>V: 解析唯一current并读取最新成员及handler
    V-->>D: 文件、合同与hash
    D->>D: 原生注册/Provider切换并核最终集合
    D-->>A: applied回执或失败、实际集合
    A->>A: 保存applied后续办;失败按原change对账

P8 · 数据结构、权威位置与约束

以下为逻辑结构,不是本轮已创建的物理表。能扩现有SQLite/仓储的就扩,不把每一行都新建数据库,也不跨服务建SQL外键。

记录 关键字段和关联 权威及约束/改动
ContextDB 知识正文与经验模板正文 各自资源域、资源键、版本、正文摘要与来源 OpenViking 维护已发布内容和索引。知识与经验分别检索和鉴权
RSI 模型阶段计划 agent_task_plan_revisions 按 session_id / step_id / revision 保存整版计划,原 call_id 去重 Agent SQLite 为权威。任务正式进度沿原宿主报告读取
原经验版本/候选/发布 version_id、kind、content_sha256、parent/source_versions、owner_run、purpose、head_revision 复用原经验仓;私有源不可原地改共享,发布头CAS,撤回保留内容
原程序/调用/采用证明 run、program_revision/hash、stage_contract、Tool call、read/exposure proof、原Stage及effect 扩原RSI记录以关联DSH/case/shared_use;不另存一份可编辑程序真源
RuntimeAssembly runtime、source_task_ref与原任务规范/row_version引用、可选实际task/run、DSH路线的model_id/current_revision、execution_system/executor配置摘要及实际DSH session、asset_version成员、Tool/Skill集合、Capability合同快照、desired/applied revision 拟扩原Agent runtime;外部执行路线没有实际DSH/程序时相应字段不适用,禁止生成空壳Session伪装经历;Framework/DSH路线记录current解析出的实际版本和发布序号作审计;每型号唯一当前目录,运行时不选旧版;变更记录幂等
ImprovementWorkItem source_context、entry_source、execution_environment;source_task_ref(来源系统/实例/World/Robot/Mission)、manifest_hash、analyzer_revision、improvement_target唯一键;可选实际source_run;state、claim_generation/owner、DSH分析/验证run、trial/候选/报告与完成水位 拟扩Agent业务账本;事件和游标补扫共用;认领CAS且持久化;未知保原操作,完成后不定时重做同一输入
SourceDatasetSnapshot source_system、dataset_id、episode_refs、package/metadata/hash、原judge/媒体/动作合同、许可和缺项 引用现Sim数据,不复制可编辑真源;下载不存在返回缺项;COCO/机器人时序类型分开
DatasetRelease / SampleUseDecision release/hash、target/use_contract、root_source_group、train/development/validation/sealed_test映射、逐样本资格/排除理由、变换/选择器/标签版本、原件索引 拟增用途视图/导出清单;先血缘分组再切窗扩增;测试真值不进作者/检索,补件/重标新release;所有原件无限保留
CandidateAssessment / EvaluationPolicy 主张/条件/反例、重复/冲突组、潜在依赖集;原目标、required回归、baseline、split、证据充分性与规则版本 扩原review/verification元数据;不让作者改判据以自证,不以模型投票代实测;统计不足不造结论
CurrentModelRelease model_id主键、current_revision、manifest/hash、发布策略/Decision、各逻辑资产identity→version/hash 拟扩发布仓唯一映射;同型号只有一行current;CAS替换,旧发布只审计,运行不做汰换选择
TrialBatch / TrialCase batch_revision、case_id、intent、evaluation_target、split、baseline/candidate_program、criteria/policy、materialized_scene/hash、requested/actual_init、source versions 拟增Agent试验记录;一个case可多attempt,每attempt绑定准确worker generation和环境epoch,保留无效/未知案例
WorkerAssignment worker_id、generation、case_attempt、资源绑定、开始/结算、停止证据 拟增资源池记录;同worker一条活动分配,原子占有与原进程内锁分工;过期不证明已停,重分配前核真实状态
AssetReview / Verification review_id、version/hash、scope、policy/version、reviewer_run/actor、evidence/反例/试验清单、verdict、immutable report_hash 拟接原验证仓储;作者与独审身份可区分,Procedure准确程序hash匹配;type-aware新报告合同按P4实现
AssetDecision decision_id、version/hash、report hashes、purpose、policy_revision、decision_mode=automatic或human、authorized_actor、action/reason、expected_head_revision 拟增管理回执;批准对象不可变、可信身份,内容/报告改变需新确认,不接受任意传入hash即认为授权
SessionRunLink / ActivationLink source_instance、session、task/run、parent_session、activation_run_id、fork_source cut、assembly、program_run、outer_call 拟扩Agent关联;同子Session多activation分开,seed和继承关系可查,不复制DSH消息正文
CaptureCursor (source_instance,source_id,generation)、seen/contiguous/source_durable/consumer_persisted、gaps、last_reconcile 拟增控制记录;复合键唯一,同seq摘要不一致报冲突;游标不以墙钟替代
EvidenceManifest manifest_version/hash、task/case、source_task_ref、source_requirements、各适用源cut/格式版本/摘要、ops、artifacts(uri/hash/媒体类型)、missing、system_status_ref、effect_assessment_ref、stop_evidence_ref、capture_policy、data_status、usage_eligibility与理由、policy、status 拟增不可变归集清单;采集live projection可更新,封存清单不可改,补件形成新版本并关联旧版
CaptureJob / CaptureArtifact task/case、required_modalities、capture_id、state、first/last frame/time、segment/hash、flush_receipt、missing_reason 可视机器人执行/试验默认视频必采;start/ready→record→drain/flush→finalized;数据失败不重放控制;所有原件默认无限期保存
ProgramCheckpoint task、program_revision/hash、state_schema、environment_generation、纯数据state、已知完成操作、观测时间/来源、commit序号 由程序宿主在已知操作边界提交;拒绝函数/设备句柄/凭据;恢复先原ID对账,非物理原子checkpoint
原DSH日志 原SessionEvent/seq/time、消息、Tool、attempt、压缩关系、usage DSH唯一写者;只读研究导出可保存固定快照但不是第二权威,JSONL压缩存储不私自tail解析
原Framework/Sim原件 原请求/Stage、反馈、WorldRef/epoch、采样、媒体/传感原件和停止证据 各原服务持有;采集保存引用和hash。当前未持久化的大附件/视频要实际接记录器,不能把viewer流或recording.npz叫录像

来源适用和采集可用分开记录。source_requirements由可信任务宿主按实际route/producer合同生成:requirement为required/optional/not_applicable,适用来源的availability为available/missing/unknown,并留basis_ref、原件/cut及缺项原因。不适用不能替代未知:没有启动Agent内DSH才是不适用;不知道是否启动或缺原历史则保持未知。模型不能通过改这些字段使清单通过。

system_status_ref引用业务owner原状态/版本/报告;effect_assessment_ref引用效果判据和实测验证;stop_evidence_ref引用原执行所有者确认的停止范围/时刻,尚无证明则明确未知;data_status沿现ready/partial。它们是归集逻辑字段,不新增World wire状态,也不互相推导。已封存记录补件生成后继版本,不能把原SUCCEEDED改写成物理已验证。

必要索引:source_task_ref+manifest_hash→后继分析/验证;case→attempt→worker/epoch;run→session/activation/program;(session,call_id)→Tool;program_call→原Stage/操作→观测;asset_version→review/decision/publication→采用与effect。跨库引用允许原件暂缺,显示missing/unknown,不把不存在的跨服务FK当完整性保证。

P9 · 失败、取消和验收

P10 · 在线修订、分层恢复和录像接口(拟扩)

接口/模块 输入 输出/生效点
原program_validate/execute_code 当前任务新源码及合同;execute_code仍空参 保留同Session;保存新revision,下一次程序提交生效,不热改活动调用栈。能力支持变化由模型修订后续源码
runtime.checkpoint.commit/read / 程序宿主 纯数据state/schema、准确程序、已知操作边界;宿主绑定task/generation 已提交checkpoint与兼容性;缺件不伪恢复任意内存,先核原操作再观察/继续
worker.reconcile/release / 资源池 原assignment/generation、Framework停止回执、Sim控制归属和进程状态 仅管理模块可结算;全部核清才released,仍未知保持quarantined;实例重建用新代,旧回执不得解除新代分配
capture.start/status/finalize / 采集与环境适配 task/case/epoch、所需相机/采样范围;原capture_id与末帧边界 ready/recording/draining/finalized/partial、原帧与视频文件/hash/覆盖区间;严格必采未ready则准备失败不启动;普通业务按业务规则明确分支。start不支持明确报缺,finalize排空编码并确认文件,不只关闭画面
capture.repair / 采集模块 原capture_id、缺区间、已有原帧/分片与原件引用 可补原帧重新编码/拉取,或永久缺口;不恢复模型、不发机器人动作。默认无限期保存,不设年龄删除任务
Q7 · 在线RSI在同一任务动态修改程序
sequenceDiagram participant D as 同一任务DSH Session participant T as 程序Tool与准入 participant P as 持续程序宿主 participant F as Framework与当前现场 loop 直到原目标完成或交回处理 D->>T: program_validate提交本次修订 T-->>D: 准入revision与源码摘要 D->>T: execute_code运行当前版本 T->>P: 下一提交边界装入源码及获准状态 alt step准入时current仍有效 P->>F: 按current受理Capability并保存实现身份 F-->>P: 真实反馈、原操作身份、新观测 else 未受理step发现current变化 P->>P: CURRENT_CHANGED并交回控制,不等自己的idle end P-->>D: 经原Tool返回结果与未决项 D->>D: 补观察、分析、改写下一段程序 Note over D,F: 不换Session、不复位现场;未决操作先对账,不重做已发生动作 end
时序源文
sequenceDiagram
    participant D as 同一任务DSH Session
    participant T as 程序Tool与准入
    participant P as 持续程序宿主
    participant F as Framework与当前现场
    loop 直到原目标完成或交回处理
        D->>T: program_validate提交本次修订
        T-->>D: 准入revision与源码摘要
        D->>T: execute_code运行当前版本
        T->>P: 下一提交边界装入源码及获准状态
        alt step准入时current仍有效
            P->>F: 按current受理Capability并保存实现身份
            F-->>P: 真实反馈、原操作身份、新观测
        else 未受理step发现current变化
            P->>P: CURRENT_CHANGED并交回控制,不等自己的idle
        end
        P-->>D: 经原Tool返回结果与未决项
        D->>D: 补观察、分析、改写下一段程序
        Note over D,F: 不换Session、不复位现场;未决操作先对账,不重做已发生动作
    end
Q8 · 程序崩溃与worker分层恢复
sequenceDiagram participant A as Agent任务监督 participant P as 程序宿主与检查点 participant F as Framework原操作 participant W as Worker资源管理 participant S as Sim或设备后端 P-->>A: 程序异常,附原请求与已保存状态 A->>F: 按原Stage/请求查询并按需取消 F->>S: 核真实状态与停止范围 S-->>F: 已停/仍运行/未知及证据 F-->>A: 原操作结算状态 alt 已核清且任务继续 A->>P: 重建代码、装兼容纯数据、补观察 P-->>A: 现场状态与继续程序需求 else 状态未知或停止未确认 A->>W: 隔离原assignment,暂停依赖派发 W-->>A: 保留原ID核查或管理重建新generation end opt 当前案例结束且各层停止已确认 A->>W: 提交原代停止与结算证据 W-->>A: 释放该assignment,允许新案例新Session end
时序源文
sequenceDiagram
    participant A as Agent任务监督
    participant P as 程序宿主与检查点
    participant F as Framework原操作
    participant W as Worker资源管理
    participant S as Sim或设备后端
    P-->>A: 程序异常,附原请求与已保存状态
    A->>F: 按原Stage/请求查询并按需取消
    F->>S: 核真实状态与停止范围
    S-->>F: 已停/仍运行/未知及证据
    F-->>A: 原操作结算状态
    alt 已核清且任务继续
        A->>P: 重建代码、装兼容纯数据、补观察
        P-->>A: 现场状态与继续程序需求
    else 状态未知或停止未确认
        A->>W: 隔离原assignment,暂停依赖派发
        W-->>A: 保留原ID核查或管理重建新generation
    end
    opt 当前案例结束且各层停止已确认
        A->>W: 提交原代停止与结算证据
        W-->>A: 释放该assignment,允许新案例新Session
    end
Q9 · 可视执行的录像采集与业务结果分开结算
sequenceDiagram participant A as 任务或试验运行时 participant C as 录像与数据采集 participant S as 任务相机与实际执行 participant M as 原件存储与清单 A->>C: capture.start绑定case/epoch与必采相机 C->>S: 建立帧采集和录制 S-->>C: 实际帧与采样身份 C-->>A: ready或明确采集缺项 alt ready或普通业务策略明确允许带缺项继续 A->>S: 经Framework执行当前任务 S-->>A: 真实物理结果 else 严格试验必采未就绪 A->>A: prepare_failed、未启动,不消耗物理成功样本 end S-->>C: 持续帧/时间/分片 A->>C: capture.finalize结束或取消边界 C->>M: 排空编码,保存视频/原帧/hash与覆盖区间 M-->>C: 持久化回执或明确缺口 C-->>A: data ready/partial,与目标结果分开 opt 缺口有原帧或分片可补 C->>M: 原capture补件/重编码,生成新清单 end Note over A,M: 默认无限期保存;不得为补录像重做机器人动作
时序源文
sequenceDiagram
    participant A as 任务或试验运行时
    participant C as 录像与数据采集
    participant S as 任务相机与实际执行
    participant M as 原件存储与清单
    A->>C: capture.start绑定case/epoch与必采相机
    C->>S: 建立帧采集和录制
    S-->>C: 实际帧与采样身份
    C-->>A: ready或明确采集缺项
    alt ready或普通业务策略明确允许带缺项继续
        A->>S: 经Framework执行当前任务
        S-->>A: 真实物理结果
    else 严格试验必采未就绪
        A->>A: prepare_failed、未启动,不消耗物理成功样本
    end
    S-->>C: 持续帧/时间/分片
    A->>C: capture.finalize结束或取消边界
    C->>M: 排空编码,保存视频/原帧/hash与覆盖区间
    M-->>C: 持久化回执或明确缺口
    C-->>A: data ready/partial,与目标结果分开
    opt 缺口有原帧或分片可补
        C->>M: 原capture补件/重编码,生成新清单
    end
    Note over A,M: 默认无限期保存;不得为补录像重做机器人动作

P11 · 真实任务来源与后台改进接口

以下前三行是已有入口,保持各自wire合同;后续是拟增业务模块接口,不伪装成已存在的Hub/World API。历史样本R204实际本地启动且属RSI研发仿真试验;R208为只读设计推演。二者均不是本轮已核实的线上业务任务,不能据World链路存在补业务来源。现已核World搬运样本及Agent同任务投影;原派发请求/控制回执和物理证据仍未取得,不能确定就是用户此前所指的那条旧任务。见现场任务核验。

该样本使用external_linkerbot轻量Agent,按其实际任务级合同保持原执行器;本表描述的Agent受理和回报不强制等于DSH/程序/Stage。RuntimeAssembly绑定实际execution_system及executor配置,未启动DSH时Session/activation/程序引用不适用;后续模型新运行须确认能力接入后另建,不重放原任务。归集保留原World SUCCEEDED,物理效果、停止和媒体完整度另评;本例空slots/snapshot不构成物理验证,既有type-aware报告不能据此通过物理方法Lesson/Procedure。资料类Lesson仍按自身主张独审。

入口/模块 输入与原有身份 返回与交接
World提交/派发 POST /api/v1/world-missions/submit;Worker向Agent POST /api/v1/dispatch-mission,含world/mission/robot、type/spec、row_version和原permit 受理不等完成;Agent按原任务回报状态;身份冲突沿原MISSION_ID_CONFLICT,不重复创建学习任务
Hub Relay /api/v1/world-agent/robots/{robot_id}/dispatch-mission或cancel-mission,核World认证/Robot绑定 仅尚未连接且dial失败才可回退中继;连接后超时保indeterminate,不换通道重发;Relay不提供query-mission
Agent本地原入口 POST /api/mission-plan-execution/start,原request_id、mission_plan或template、原trace和运行参数 原parent execution/run/Session与受理/duplicate/conflict;R204即此来源,不新增World数据前置
improvement.observe/scan / 归集接入 已封存manifest及source_task_ref、可选真实run/source;scan为上次连续游标/固定cut 原事件与补扫均写同一工作账本;输出发现项和缺项,不直接重新投递物理任务
improvement.claim / Agent业务模块 work_item唯一键、expected_revision、受管执行者身份 CAS认领、claim generation及分析任务引用;进程重启可查原认领,不因内存丢失换键并发做同一项
improvement.analyze / DSH原生任务 固定manifest、可读原件、改进目标/分析器版本 分类问题、支持/反例、候选与验证规格;外部额度/网络问题不自动标签成动作失败;缺证waiting_evidence
improvement.verify / 试验接入 原work_item、候选/假设、源任务、当前能力和支持场景、EvaluationPolicy 非控制资料问题可用固定输入回放;物理效果另建simulation案例经原Agent链,不能重放原现场
improvement.complete/reconcile / 工作账本 原work_item/DSH任务/试验/发布请求、固定报告与决定 decided/no_change/waiting_evidence/reconciling;完成才推进完成水位;新证据或修订产生后继,unknown查原操作
Q10 · World派发与R204本地启动的两条已有路径
sequenceDiagram participant E as 原任务入口 participant W as World任务与派发器 participant H as Hub中继 participant A as Agent原任务服务 participant R as Agent任务运行时 alt World业务Mission E->>W: 原提交/调度并分配Robot W->>A: 原permit和Mission载荷,经LAN投递 opt 仅连接前dial失败且配置中继 W->>H: 同一任务身份请求dispatch中继 H->>A: 核绑定后转发,清World认证token end A-->>W: 明确accepted/rejected或传输未知 alt 明确accepted A->>R: 新受理建立执行,重复受理关联原执行 R-->>W: 沿原状态同步上报真实结果 else 明确rejected W->>W: 记录拒绝,不能创建新执行 else 传输未知 W->>W: 保原身份对账,不换通道盲发 end else R204实际本地入口 E->>A: POST mission-plan-execution/start,原request/plan A-->>E: 原parent execution、受理与查询关联 A->>R: 原任务运行,建立Session与程序环境 end Note over W,R: R204是研发试验;经Hub也不自动等于线上业务。网络未知先对账
时序源文
sequenceDiagram
    participant E as 原任务入口
    participant W as World任务与派发器
    participant H as Hub中继
    participant A as Agent原任务服务
    participant R as Agent任务运行时
    alt World业务Mission
        E->>W: 原提交/调度并分配Robot
        W->>A: 原permit和Mission载荷,经LAN投递
        opt 仅连接前dial失败且配置中继
            W->>H: 同一任务身份请求dispatch中继
            H->>A: 核绑定后转发,清World认证token
        end
        A-->>W: 明确accepted/rejected或传输未知
        alt 明确accepted
            A->>R: 新受理建立执行,重复受理关联原执行
            R-->>W: 沿原状态同步上报真实结果
        else 明确rejected
            W->>W: 记录拒绝,不能创建新执行
        else 传输未知
            W->>W: 保原身份对账,不换通道盲发
        end
    else R204实际本地入口
        E->>A: POST mission-plan-execution/start,原request/plan
        A-->>E: 原parent execution、受理与查询关联
        A->>R: 原任务运行,建立Session与程序环境
    end
    Note over W,R: R204是研发试验;经Hub也不自动等于线上业务。网络未知先对账
Q11 · 真实运行证据自动进入后台改进
sequenceDiagram participant S as 原运行与数据归集 participant Q as 改进工作账本 participant D as DSH分析与候选任务 participant T as 隔离仿真试验 participant V as 独立验证与发布策略 participant C as 原经验发布流程 Q3 S->>Q: 封存事件或连续游标补扫,同来源唯一键 Q->>Q: 持久认领,重复返回原工作 Q->>D: 固定真实run、原件与分析目标 D-->>Q: 问题类别、反例、缺项和候选 alt 非控制资料问题 Q->>V: 固定输入/证据审查及按需对照 else 真实动作效果待验证 Q->>T: 新case身份和本仿真控制许可 T-->>V: 全部尝试、原目标结果、录制与停止证据 end V-->>Q: 类型报告及发布/补证/无改进决定 opt 满足策略且current前提仍一致 Q->>C: 交有效决定,按 Q3 核正文后推进 current C-->>Q: 原发布与索引分别回执 end Q->>Q: 结算原工作,未知保原引用继续对账 Note over S,T: 不复位在线现场,不因429或补录像重做原动作
时序源文
sequenceDiagram
    participant S as 原运行与数据归集
    participant Q as 改进工作账本
    participant D as DSH分析与候选任务
    participant T as 隔离仿真试验
    participant V as 独立验证与发布策略
    participant C as 原经验发布流程 Q3
    S->>Q: 封存事件或连续游标补扫,同来源唯一键
    Q->>Q: 持久认领,重复返回原工作
    Q->>D: 固定真实run、原件与分析目标
    D-->>Q: 问题类别、反例、缺项和候选
    alt 非控制资料问题
        Q->>V: 固定输入/证据审查及按需对照
    else 真实动作效果待验证
        Q->>T: 新case身份和本仿真控制许可
        T-->>V: 全部尝试、原目标结果、录制与停止证据
    end
    V-->>Q: 类型报告及发布/补证/无改进决定
    opt 满足策略且current前提仍一致
        Q->>C: 交有效决定,按 Q3 核正文后推进 current
        C-->>Q: 原发布与索引分别回执
    end
    Q->>Q: 结算原工作,未知保原引用继续对账
    Note over S,T: 不复位在线现场,不因429或补录像重做原动作

P12 · 仿真数据集与训练/评价用途合同

现Sim Portal只读入口为GET /api/v1/datasets、/{dataset_id}/metadata、/episodes、/episodes/{index}、/episodes/{index}/video、/package?format=lerobot或hdf5。它们读取已落盘的episode/judge/包,不执行训练或生成;未生成媒体/包明确缺项。另一个Workbench感知数据视图读COCO图像/标签,类型不同。精确实现见数据集接口证据。

拟增接口/模块 输入 输出与校验
dataset_source.snapshot / D适配 原Sim dataset/episode/metadata/包引用或Agent EvidenceManifest、读取权限 源snapshot/hash、数据类型、原judge、传感/动作/时钟、许可与缺项。曲线降采样、状态NPZ、COCO均不冒充动作训练示范
dataset_use.assess / D与独审 target=program_improvement / perception / robot_policy / llm_tool_policy / evaluation、源snapshot、use_contract、标签依据 逐样本eligible/ineligible/needs_review及原因;保成功/失败/恢复/unknown;实际可见输入与评价专用truth分别标注
dataset_split.freeze / D构建 root_task/重试/恢复/派生谱系、重复组和要声称的泛化维度、用途配置 固定split manifest/hash;先分组再切窗/生成,派生继承源split;不把同任务P1和P3随机跨训练/盲测
dataset_generation.plan / B试验适配 源任务或开发数据缺口、真实支持的场景/资产/相机/参数矩阵、源split、资源配置 可执行的cell与不支持项;原Stage运行程序、独立核验,记录所有结果。TUCO评分器/元学习生成器不是现成必经组件
dataset_release.build/export / D 合格样本与用途合同、split、变换/采样/选择器/标签版本、包格式 DatasetRelease/hash和schema质量报告;感知COCO/动作时序/LLM工具输入输出分别导出,缺实际动作或对齐则不通过对应动作合同
training_handoff.prepare / 研究交接 DatasetRelease、明确target/model初始化与输入输出/损失/评价规格 可交训练流程的固定材料清单或缺口,不自动启动训练/云任务;本轮不选择LLM微调模型或部署checkpoint

成功可以作为方法来源,但不保证是专家动作;失败上下文可用于困难例选择/反例,不能无标签直接当正确动作,unknown不默认负样本或零回报。实际命令与状态差分分开;若用派生动作,保存转换合同/误差。训练所需观测、动作语义/频率/单位/关节顺序、标定、有效mask、norm统计(只从训练集算)必须匹配目标模型。

现阶段优先改程序与独立评价;模型参数训练先交固定数据/合同与质量报告。经验Procedure发布、DatasetRelease冻结、模型checkpoint上线是三条不同产物链。原数据无限保存,排除某用途不删除原件。

开发/选择器可见的案例不能再冒充最终盲测;测试材料不进候选作者、经验检索和训练选择器。实际任务谱系/仿真派生/同源视频分段作为一个血缘组;若最终测试已用于改程序,转开发并形成新测试版。读current只解决运行供给,不能代替测试隔离。

评价记录每次实际current。比较固定程序或方法时,后台发布变化使该面板配置不一致就明确incomparable并按新current重新安排,不能偷偷混合报告,也不能开放普通运行时选旧版。紧急撤回仍优先生效,不为了保一次测试继续供给已证失效内容。独立验证者可以在隔离权限内读取候选/历史源码作为被测工件,能力执行仍用当前支持,不变成生产模型的旧版本选择器。

Q12 · 从原件和仿真数据到用途数据集,再到独立评价
sequenceDiagram participant S as Agent原运行与Sim数据集 participant D as 数据用途与构建模块 participant G as 仿真生成与程序试验 participant T as 授权训练流程 participant V as 独立评价 participant P as 经验或模型发布 S->>D: 源manifest、episode、judge、原件/包 D->>D: 核用途合同与血缘,先固定分组和split opt 开发集合有受支持覆盖缺口 D->>G: 有来源的生成矩阵,继承源split G-->>D: 新尝试、实际观测/动作/结果与缺项 end alt 改程序与经验 D->>V: 候选及对应独立验证材料 else 参数训练合同充分且有训练授权 D->>T: 固定DatasetRelease及模型训练规格 T-->>V: checkpoint及真实训练配置/数据身份 else 输入或标签缺失 D->>D: 保留原件,报告不合该用途/待补证 end V->>V: 最终测试隔离,核目标/约束与全部分母 V-->>P: 实际产物范围与独立结果 Note over D,P: Procedure、数据集和checkpoint分别发布;本轮不执行这些作业
时序源文
sequenceDiagram
    participant S as Agent原运行与Sim数据集
    participant D as 数据用途与构建模块
    participant G as 仿真生成与程序试验
    participant T as 授权训练流程
    participant V as 独立评价
    participant P as 经验或模型发布
    S->>D: 源manifest、episode、judge、原件/包
    D->>D: 核用途合同与血缘,先固定分组和split
    opt 开发集合有受支持覆盖缺口
        D->>G: 有来源的生成矩阵,继承源split
        G-->>D: 新尝试、实际观测/动作/结果与缺项
    end
    alt 改程序与经验
        D->>V: 候选及对应独立验证材料
    else 参数训练合同充分且有训练授权
        D->>T: 固定DatasetRelease及模型训练规格
        T-->>V: checkpoint及真实训练配置/数据身份
    else 输入或标签缺失
        D->>D: 保留原件,报告不合该用途/待补证
    end
    V->>V: 最终测试隔离,核目标/约束与全部分母
    V-->>P: 实际产物范围与独立结果
    Note over D,P: Procedure、数据集和checkpoint分别发布;本轮不执行这些作业

证据与版本

RSI源码与旧方案差异 · 仿真接口与隔离限制 · DSH原生事件、持久化与SDK缺桥。当前RSI/Framework/Sim提交各有准确hash;DSH本轮已核官方HEAD ce7073d51254c26cd63b22a60835b8f948deb447并读取新源码,旧f3803c9证据保留历史。本轮核心模块、SDK差量见DSH核心证据,实施前仍重新核上游兼容。

本轮新增实际任务与下发来源、资产自动规则论文、训练用途论文;原始MCP回执及真实请求参数保存于工作区original_doc/2026-11-02-luban2-paper-policy。论文作者报告、设计推导、现代码和R204历史运行分别归因,不声称论文复现或本轮新增执行。

P13 · 任务执行路线、回填与来源适用合同

本章把总图中的服务交接落到原接口和拟补内部关联。时序描述设计合同,不是现场搬运任务的抓包重放。现有RSI程序底座、外部Mission级执行与拟接DSH分别标识;原始dispatch、控制回执和物理效果仍不能凭图补证。

核心交接 输入由谁提供 返回和保存什么
World原派发→Agent原准入 原World/Mission/Robot、类型/规范、row_version及permit;沿已有dispatch-mission 原受理/重复/冲突/拒绝。重复相同请求只关联原执行,不再派发;World没收到回执不等于Agent没执行
受理记录→运行路线 可信安装配置的execution_system/executor及摘要;不由模型传任意端点 RuntimeAssembly保存原身份和实际路线。真实启动DSH才关联Session;配置变化不接管在途旧操作
外部执行器→原控制器 原MissionExecutor投影任务级参数,HTTP/ROS按实际配置 原受理与状态报告;原request/report有则关联,无则列缺口,不造原子Capability/Stage
Agent→DSH供给 业务Tool准确schema/handler、引导Skill正文资源与本任务许可 实际applied集合及原生调用。生命周期检查沿DSH原生时点,业务结果另关联原记录
原生Tool→程序宿主 program_validate校验保存源码;execute_code空参,由宿主绑定callId和运行身份 已保存revision才可被选来执行;提案/校验失败不当准入。能力结果先回程序,交回后产生该Tool的一次配对结果
程序→Stage/能力链 step提交Capability名称/参数,宿主绑定Stage请求 StepReply和原Stage/操作/观测引用。规划与控制分开,内部plan_ref不变模型参数;unknown查原操作
原状态→World与归集 原执行所有者按原report_id/row_version报告;归集只引用 World保持自身结算语义;业务结算、物理效果、停止证据和采集完整度分别保依据

source_task_ref包括原来源系统及实例、World/Robot/Mission,适用时关联原计划/执行;source_run仅在真实存在时填写。后台工作项按该原身份、固定manifest、分析器版本和改进目标去重。后台DSH分析与仿真试验另有自己的run,不回填原任务没有的历史。新补件触发后继分析,不换原任务ID重跑现场。

来源清单由实际路线和可信采集配置决定。应存在却没采到是missing/unknown;没有启动的DSH/程序才不适用。源端点和认证从可信配置取,不从模型arguments任选。逻辑关联不替代各源权威,也不是跨库SQL外键。

Q13 · World入站后,按实际执行器保持原任务
sequenceDiagram participant W as World原任务与派发 participant A as Agent准入及路线绑定 participant X as 已安装外部任务执行器 participant R as Framework任务运行时 participant C as 证据关联及封存(拟补) W->>A: 原dispatch-mission载荷、身份及permit A->>A: 原许可校验、不可变参数与受理去重 alt 已有相同受理记录 A-->>W: 原受理及任务关联,不再次派发 else 首次明确受理 A-->>W: 原accepted回执,完成另按原状态报告 A->>C: 原Mission快照、实际executor及来源适用清单(拟扩) alt 安装external_linkerbot A->>X: 原MissionExecutor提交任务级合同 X-->>A: 原受理/状态报告及实际可得回执 A->>C: 外部原件引用与缺项,不生成DSH/程序/Stage经历 else 安装Framework且DSH接线实际就绪 A->>R: 原任务、判据和许可,装配目标DSH运行(拟接) R-->>A: 原任务控制认可的进展/结果,详见Q14 else 安装Framework但未接DSH A->>R: 保既有Framework任务实现 R-->>A: 原任务进展/结果,不补造DSH历史 end else 明确拒绝或内容冲突 A-->>W: 原拒绝/冲突,不创建新执行 end opt 原执行有实际新进展或结算 A->>W: 沿原report-mission-status及原报告身份回报 W-->>A: 原回报回执与业务状态版本 A->>C: 业务状态、效果证据、停止证据和采集状态分别关联 end Note over W,A: 回执丢失不证明未执行;网络未知按原身份对账,Hub中继差异见Q10 Note over W,C: 本图是接口与目标接线,不表示现场样本的整段网络/物理时序已被观察
时序源文
sequenceDiagram
    participant W as World原任务与派发
    participant A as Agent准入及路线绑定
    participant X as 已安装外部任务执行器
    participant R as Framework任务运行时
    participant C as 证据关联及封存(拟补)
    W->>A: 原dispatch-mission载荷、身份及permit
    A->>A: 原许可校验、不可变参数与受理去重
    alt 已有相同受理记录
        A-->>W: 原受理及任务关联,不再次派发
    else 首次明确受理
        A-->>W: 原accepted回执,完成另按原状态报告
        A->>C: 原Mission快照、实际executor及来源适用清单(拟扩)
        alt 安装external_linkerbot
            A->>X: 原MissionExecutor提交任务级合同
            X-->>A: 原受理/状态报告及实际可得回执
            A->>C: 外部原件引用与缺项,不生成DSH/程序/Stage经历
        else 安装Framework且DSH接线实际就绪
            A->>R: 原任务、判据和许可,装配目标DSH运行(拟接)
            R-->>A: 原任务控制认可的进展/结果,详见Q14
        else 安装Framework但未接DSH
            A->>R: 保既有Framework任务实现
            R-->>A: 原任务进展/结果,不补造DSH历史
        end
    else 明确拒绝或内容冲突
        A-->>W: 原拒绝/冲突,不创建新执行
    end
    opt 原执行有实际新进展或结算
        A->>W: 沿原report-mission-status及原报告身份回报
        W-->>A: 原回报回执与业务状态版本
        A->>C: 业务状态、效果证据、停止证据和采集状态分别关联
    end
    Note over W,A: 回执丢失不证明未执行;网络未知按原身份对账,Hub中继差异见Q10
    Note over W,C: 本图是接口与目标接线,不表示现场样本的整段网络/物理时序已被观察
Q14 · DSH原生Tool往返,程序多次调用Capability
sequenceDiagram participant A as Agent任务宿主与监督 participant D as Agent内DSH循环(拟接) participant T as Agent业务Tool及原结果适配 participant P as Agent原程序宿主 participant F as Framework原Stage及能力路由 participant E as 所选真机或SimService A->>D: 绑定原目标,供给本任务Tool/Skill与上下文(拟接) loop 模型按反馈继续观察或修订 opt 需要现场或资料 D->>T: 原生observe_scene、knowledge_read等实际获准Tool T-->>D: 同原callId的观测/正文及来源,不授控制权 end opt 需要编写或修订程序 D->>T: 原生program_validate,source/reason及实际可选合同 T-->>D: 配对的已保存revision、校验错误或仅提案结果 end opt 已有准入程序且模型选择执行 D->>T: 原生execute_code,arguments为空对象 T->>T: 沿原生生命周期检查,保存原callId与程序关联(拟扩) T->>P: 运行当前准入源码和本任务环境 loop 程序计算、分支及实际step调用 P->>F: 原Stage端口提交Capability名称/参数及宿主身份 F->>F: 原资源/参数/上下文校验,分派已注册Provider F->>E: 原后端请求,规划与控制分开 E-->>F: 原结果、状态、观测或错误 F-->>P: StepReply与原Stage/操作引用 end P-->>T: 程序交回结果/错误/未决及实际原件关联 T->>T: 保存原结果和后置检查,不改写已发生动作 T-->>D: 同一原callId的一次Tool结果,模型继续判断 end end D-->>A: 模型交回或请求结束,不等于业务成功/设备停止 A->>A: 依据原目标、实际结果及未决操作继续/等待/结算 Note over A,E: 当前程序/Stage底座已存在;内嵌DSH与关联桥为拟接,不是历史运行证明
时序源文
sequenceDiagram
    participant A as Agent任务宿主与监督
    participant D as Agent内DSH循环(拟接)
    participant T as Agent业务Tool及原结果适配
    participant P as Agent原程序宿主
    participant F as Framework原Stage及能力路由
    participant E as 所选真机或SimService
    A->>D: 绑定原目标,供给本任务Tool/Skill与上下文(拟接)
    loop 模型按反馈继续观察或修订
        opt 需要现场或资料
            D->>T: 原生observe_scene、knowledge_read等实际获准Tool
            T-->>D: 同原callId的观测/正文及来源,不授控制权
        end
        opt 需要编写或修订程序
            D->>T: 原生program_validate,source/reason及实际可选合同
            T-->>D: 配对的已保存revision、校验错误或仅提案结果
        end
        opt 已有准入程序且模型选择执行
            D->>T: 原生execute_code,arguments为空对象
            T->>T: 沿原生生命周期检查,保存原callId与程序关联(拟扩)
            T->>P: 运行当前准入源码和本任务环境
            loop 程序计算、分支及实际step调用
                P->>F: 原Stage端口提交Capability名称/参数及宿主身份
                F->>F: 原资源/参数/上下文校验,分派已注册Provider
                F->>E: 原后端请求,规划与控制分开
                E-->>F: 原结果、状态、观测或错误
                F-->>P: StepReply与原Stage/操作引用
            end
            P-->>T: 程序交回结果/错误/未决及实际原件关联
            T->>T: 保存原结果和后置检查,不改写已发生动作
            T-->>D: 同一原callId的一次Tool结果,模型继续判断
        end
    end
    D-->>A: 模型交回或请求结束,不等于业务成功/设备停止
    A->>A: 依据原目标、实际结果及未决操作继续/等待/结算
    Note over A,E: 当前程序/Stage底座已存在;内嵌DSH与关联桥为拟接,不是历史运行证明

一个Tool内部多个step是一对多能力调用,不是多个顶层模型Tool。后续独立状态查询有新的callId,查询的是原operation,不追加第二个原Tool结果。后台完整性和资产验证要求不阻止原在线任务按合同继续,也不替模型选择业务动作。

P14 · DSH接入与生命周期桥协议(拟扩,非现有SDK方法)

本节统一A/B/C/D的入参与出参。官方SDK现有initialize、session/prompt、session/query、session/resume、session/wait、working-directory和shutdown;内部SessionController已有观察/取消等能力,但不能据此宣称Python SDK已经暴露。session/query是compact/permission/plan/goal白名单命令入口,不是第三方任意RPC注册器。业务任务只将普通正文交session/prompt;后台管理query独立授权,返回受理与session.query.completed结算分开。官方SDK端点本身的响应字段保持原契约。

拟增接口共用请求信封:request_id、runtime_instance、generation、task_ref、session_id、authority_ref;鉴权上下文由宿主绑定,模型不能自填授予。共用返回:原request_id、runtime_instance、generation、status、result或error;status区分accepted/pending/completed/failed/unknown,accepted不是落盘或停止。只允许访问任务已绑定Session/后代和所属scope。重传先按原request核实,不重新prompt或重放程序。结果payload按下表细分,不强行让所有官方方法都改成新信封。

拟扩接口 业务输入 输出和责任边界
runtime.prepare_task 预定session_id、可信原任务绑定、desired manifest/hash、expected current及允许的executor 保存待创建绑定并返回staged及同一request;不是Agent已创建。首次prompt的create/resume由SDK最小patch注入原生factory setup,校验/装配成功才发布Agent和followup;失败不驱动模型
runtime.describe 共用身份;受权查询的装配范围 实际引擎版本、启用原生包、最终Tool schema/handler摘要、Skill provider/目录版本、真实持久化后端和功能就绪。A0/A2a负责;不返回密钥
runtime.apply_assembly change_id、desired manifest/hash、expected current、可信实现引用 pending/applied/conflict及准确applied成员;原批次结算且空闲后切换。A2a/A2b负责,业务数据库不携可eval模块源码
runtime.cancel_task cause、任务关闭范围、原请求及已知外部操作引用 DSH取消受理与B原操作停止状态分别返回;unknown保留原ID等待核实。A1b牵头,B2提供物理/程序结果
runtime.dispose_task 取消/停止或隔离unknown的证据、所需源cut、释放范围 原AgentHandle释放、Session flush/关闭回执及保留的未决操作。不能以共享root shutdown替代局部释放
P6的capture.* 原生Session、固定seq/cut、受权范围及分页/订阅请求 A4a观察/树/activation,A4b由原writer落盘并只读补读;D持consumer ledger和跨源seal。实时通知不等durable

实现选择明确:保留官方SDK server和Python客户端;首次create/resume注入原生factory setup(恢复时保留官方模型选择setup),只有可信绑定与current复核通过才开始followup。官方initialize不负责创建任务Agent。在protocol/server/client边界维护最小受限typed转发,使可信插件的业务service可达;不复制官方server,也不创建第二套Agent RPC调度。当前源码没有已核任意第三方method注册口,故上述转发属于待开发的兼容patch,变更清单和上游差量测试归A0/A4;若上游之后提供正式扩展口则优先迁入。官方原生模型/Session实现不在该patch内重写。

持久化扩展既有P8:RuntimeAssembly增DSH准确版本/组合摘要/实际插件就绪引用,SessionRunLink保原实例/generation与AgentHandle所属范围;AssemblyChange保change_id/expected_current/desired_hash/applied_hash/状态及失败原因,唯一键为(runtime_instance,generation,change_id);已有CaptureSource/Cursor/Seal保seq/cut/原writer durability。插件列表是装配快照成员,不新建第二份模型消息表;普通事件和bridge请求无模型Tool call_id时不编造。

Q15 · DSH装配、原生循环与分层结束
sequenceDiagram participant H as Agent任务宿主 participant S as 官方SDK入口与受限桥 participant P as 插件装配与作用域 participant A as DSH Agent与Loop participant T as DSH Tools与Skill participant B as LUBAN业务handler与程序 participant L as Session持久化与采集桥 H->>S: 启动DSH,专用profile作为启动配置 S->>P: 等插件与原生依赖就绪 H->>S: initialize,仅核模型配置与协议ready S-->>H: serverInfo,尚无任务Agent H->>S: runtime.prepare_task保存可信绑定与批准资产 S-->>H: staged,不冒称applied H->>S: session/prompt,原任务正文及同一Session S->>P: 首次create或恢复resume,最小patch注入factory setup P->>T: 在任务scope注册批准Tool与SkillProvider P->>P: setup commit核current,发布准确applied P-->>S: 原生AgentHandle与装配完成 S->>A: 原生followup,此时才进入Loop A->>A: pre-step核上下文,原生计量与压缩 A->>T: 模型原Tool调用 T->>T: pre-execute与guard检查原调用 T->>B: 执行已批准handler B->>B: 程序每step核current,再沿原Stage调用Capability B-->>T: 原结果与执行证据引用 T->>T: post-execute及最终result,保原call配对 T-->>A: Tool结果,模型继续判断 A->>H: 正常turn-stopping,请监督核原判据 alt 仍缺证据 H->>A: 原生steer补证,不冒称完成 else 结束或取消请求 H->>B: 封新派发,查询或取消原操作 B-->>H: 停止确认或unknown隔离证据 H->>L: 原writer flush,固定cut并只读补读 L-->>H: durability与采集缺项 H->>S: runtime.dispose_task受限桥 S->>A: 原Handle释放;共享root保留 S-->>H: Session释放与业务停止分别回执 end
时序源文
sequenceDiagram
    participant H as Agent任务宿主
    participant S as 官方SDK入口与受限桥
    participant P as 插件装配与作用域
    participant A as DSH Agent与Loop
    participant T as DSH Tools与Skill
    participant B as LUBAN业务handler与程序
    participant L as Session持久化与采集桥
    H->>S: 启动DSH,专用profile作为启动配置
    S->>P: 等插件与原生依赖就绪
    H->>S: initialize,仅核模型配置与协议ready
    S-->>H: serverInfo,尚无任务Agent
    H->>S: runtime.prepare_task保存可信绑定与批准资产
    S-->>H: staged,不冒称applied
    H->>S: session/prompt,原任务正文及同一Session
    S->>P: 首次create或恢复resume,最小patch注入factory setup
    P->>T: 在任务scope注册批准Tool与SkillProvider
    P->>P: setup commit核current,发布准确applied
    P-->>S: 原生AgentHandle与装配完成
    S->>A: 原生followup,此时才进入Loop
    A->>A: pre-step核上下文,原生计量与压缩
    A->>T: 模型原Tool调用
    T->>T: pre-execute与guard检查原调用
    T->>B: 执行已批准handler
    B->>B: 程序每step核current,再沿原Stage调用Capability
    B-->>T: 原结果与执行证据引用
    T->>T: post-execute及最终result,保原call配对
    T-->>A: Tool结果,模型继续判断
    A->>H: 正常turn-stopping,请监督核原判据
    alt 仍缺证据
        H->>A: 原生steer补证,不冒称完成
    else 结束或取消请求
        H->>B: 封新派发,查询或取消原操作
        B-->>H: 停止确认或unknown隔离证据
        H->>L: 原writer flush,固定cut并只读补读
        L-->>H: durability与采集缺项
        H->>S: runtime.dispose_task受限桥
        S->>A: 原Handle释放;共享root保留
        S-->>H: Session释放与业务停止分别回执
    end

图中的结束分支是任务宿主的统一处理责任,不表示异常/取消也会经过正常turn-stopping。取消事件从宿主直接进入同一分层结束责任;DSH原生dispose有自己的有序teardown,但外部物理动作必须由B/Framework真实核实。以上均是设计与后续验收要求,未执行DSH或业务程序。

P15 · 任务拆解、阶段目标与进度追踪

R233 已实现两项计划工具。P15 通过 Agent 业务 Tool 适配将其供给内嵌 DSH。按 P13 2026-11-03 10:37 记录,R233 已部署并通过部署环境隔离验证,当时仍等待真实模型调用验收。源码与部署依据

工具 模型入参 输出与作用
task_read 默认 {view:"full"},可用 {view:"progress"} 读取正式任务目标与验收条件,或已有的验收、阶段及经验进度。进度缺失时给出不可用和原因
task_plan_read {} 读最新,{revision:1} 示例读历史版 payload.kind="task_plan",plan 含版本和完整计划,缺失时为 null
task_plan_update summary、有序 steps、可选 reason。每步含 description、status、可选 reason 首次写版本 1,之后保存完整修订版并递增。状态为 pending、in_progress、completed、skipped,代表模型对各子目标的判断

宿主根据当前会话、run 和任务步骤授权,模型无需填写这些身份或调用编号。同一步续接可读原计划,切换步骤读取新步骤自己的计划。新自适应和冻结模式按原目录规则供给,历史会话按原工具目录续接。若计划已保存但归档回执失败,沿原调用和原版本对账。重复请求沿原调用结算,不能再追加一个版本。持续失败显式保留待结算结果。R233 的补结算由原 TaskLoop 执行。P15 由 A4 与 B1 的 DSH 适配承接此职责,把原生调用身份映射到计划仓并对账原结果,模型会话仍由 DSH 写入。

首次拆解与后续调整都使用 task_plan_update。R233 的有序子目标使用文字描述和状态;正式验收条件、动作执行和实测证据沿 task_read、现有程序工具与原作业路径。模型计划版本、实际动作结果和正式任务进度分别关联。

Q16 · 模型拆解目标、按执行反馈修订计划
sequenceDiagram participant M as DSH 模型 participant A as Agent 任务与计划工具 participant S as Agent SQLite participant E as 程序与原执行验收 M->>A: task_read 读取原目标和验收条件 A-->>M: 正式任务范围 M->>A: task_plan_update 保存有序阶段目标 A->>S: 绑定当前会话和任务步骤,沿原调用保存整版 S-->>A: 返回保存的完整计划与版本 A-->>M: 按原工具调用返回计划 M->>E: 通过现有程序工具执行与核验 E-->>M: 回传原执行结果 M->>A: task_plan_update 根据反馈修订 M->>A: task_plan_read 压缩或续接后恢复 M->>A: task_read view=progress 查看正式进度 A-->>M: 已记录的验收进度或缺失原因
时序源文
sequenceDiagram
    participant M as DSH 模型
    participant A as Agent 任务与计划工具
    participant S as Agent SQLite
    participant E as 程序与原执行验收
    M->>A: task_read 读取原目标和验收条件
    A-->>M: 正式任务范围
    M->>A: task_plan_update 保存有序阶段目标
    A->>S: 绑定当前会话和任务步骤,沿原调用保存整版
    S-->>A: 返回保存的完整计划与版本
    A-->>M: 按原工具调用返回计划
    M->>E: 通过现有程序工具执行与核验
    E-->>M: 回传原执行结果
    M->>A: task_plan_update 根据反馈修订
    M->>A: task_plan_read 压缩或续接后恢复
    M->>A: task_read view=progress 查看正式进度
    A-->>M: 已记录的验收进度或缺失原因
设计评审稿 · 服务内模块与信息流同图;原RSI执行链已存在,新增仿真/确认/采集接线为设计。

LUBAN-2.0 · 具体服务修改与四方向分工

2026-11-03 更新 · 设计分工,未实施。以当前RSI原子能力/Stage链为底座,撤销旧“从零新增CapabilityExecutionService、cap SDK及原语同名入口”的工作包。总方案 · 运行时 · 统一协议

1. 大家的工作怎样串起来

A先承接原任务并绑定实际执行器。 外部任务保持原控制器合同,由B整理其可用接口、D关联原记录;Framework/DSH任务由A+C装配Tool/Skill和运行知识,B接程序/Capability,D连接实际会话、程序和现场证据。后台再由A分配隔离案例、B运行验证、C独审及按策略发布、D记录后续采用效果。四组协作同一条任务与改进链,不各自建设调度或消息系统。

同一交付点 谁把什么交给下一组 在总图/协议哪里体现
原任务入站 A1保存原Mission与执行路线;B1按真实接口接原执行器;D1保来源关联 Agent准入模块→外部控制器或Framework任务;P13/Q13,重复受理不重派
模型使用工具和程序 C1提供手册/引导Skill,A2装到实际DSH,B1/B2执行并回原Tool结果,D2保真实调用 Agent供Tool给DSH→业务handler/程序→Framework;P2/P7/Q14
数据封存 A1/A4给实际producer与原Session持久化回执,D3按来源适用清单封存 业务状态、物理核验、停止、完整度分别记录;P6/P8/P13
隔离改进 C2提出有来源的候选,A3给独占案例,B3/B4实跑与核验,D保存全部尝试和缺项 后台认领→候选→隔离worker→独审,不回放原现场;P3/P4/P11
发布与下一任务 C3确认准确版本,C4更新current,A2/B2在新任务重绑;D4核实际采用和效果 独审发布→运行知识→下一Agent任务;P4/P5,不自动续跑旧任务

仿真资源分配由A管理案例/worker身份,B实现真实环境接入与初态/控制,D核证据完整,C按kind组织验证和发布。原任务结束不等资产批准,数据ready也不等机器人成功。

2. 方向A:Agent框架改造

包 具体服务/模块改动 输入、交给谁与验收
A0 · 官方组合与兼容基线 Agent启动组合根、专用DSH profile、最小SDK兼容patch清单;选择agent/loop、LLM、tools/native、Skill、Session/投影/JSONL/checkpoint、计量压缩及按需子代理 收B/C/D依赖,交真实ready、启用/禁用清单、准确版本与最终Tool集合。关闭模型插件安装/未批准通用工具;输出截断不当成功。先于A1/A2/A4;不重写DSH内核
A1a · 原任务与会话绑定 原Mission准入/路由和RSI runtime组合,持有原生AgentHandle 收原授权、目标/判据及executor;交B同一程序/Framework上下文、D真实SessionRunLink。重复受理不重派,外部任务不造DSH历史;对应图SDK/Loop
A1b · 生命周期与任务监督 原任务宿主、可信插件正常结束接点及受限局部cancel/dispose桥;DSH原生Handle负责最终有序释放 B回报原动作停止/unknown,D回报固定cut后释放。普通turn与idle维护保留程序变量;不拿共享shutdown结束单任务;依赖B2/A4
A2a · Tool/Skill与提示供给 可信luban-runtime插件,在原生scope内注册B handler、批准SkillProvider和system-prompt贡献 C给正文/资源/current,B给schema和canonical合同;交实际applied集合及读回证明。校验hash/保留名/全局与局部可见性,不从DB任意eval/import;对应图Tool/Skill/上下文
A2b · 动态更新受理 宿主pending账本与原生idle维护;B2程序每step另核current C提供current CAS,B让未受理step交回外层Tool,D记新旧受理身份。批次结算后维护,不在Tool内部等自己idle,不换已受理操作实现
A3a · 改进认领与子代理关联 既有业务账本扩ImprovementWorkItem,复用DSH原生spawn/fork/消息 D交固定manifest和source_task_ref,C交目标;去重认领后产生真实作者/独审Session与activation。补扫不重复分析,不另建Agent调度框架
A3b · 案例与worker资源分配 Agent内TrialBatch/Case、WorkerAssignment及代际/取消关联 B3交真实端点/目录/ROS/GPU/录制就绪,D交必采要求;一个assignment独占一worker,unknown不回池。原生子代理完成不等物理资源可回收
A4a · 原生历史与树读取桥 可信插件接原SessionController/SessionQuery、persistence只读handle、原生子树/activation;最小typed SDK转发 D给权限/分页/cut,A交原header/seq/seed/树及缺口;通知按任务过滤,不广播所有Session,不新增deprecated snapshotEvents调用
A4b · 原writer落盘与交付桥 配置原生checkpoint政策;桥通过sessions.flush及writer寿命固定durable cut 交D真实durability回执,D自行持consumer游标与跨源seal。flush=false/错误不造成功;不另建消息writer;与A1b释放有序衔接

A1a还须按实际执行系统保留external_linkerbot原任务路径;实际未启动DSH的业务不新建空壳Session,已完成任务不因迁移再执行。该工作只在原宿主分流,不新增调度层。

不另建Agent调度服务。DSH的内部事件能力和Python SDK可达性分开核;本轮已核官方ce7073d新源码,实施前重新比对,不永久锁旧SHA。

3. 方向B:工具封装与仿真执行接入

包 具体服务/模块改动 输入、交给谁与验收
B1 · 模型业务Tool适配 Agent现rsi_task_tools及程序/知识/经验/历史handler接DSH原生工具;按任务许可装子集,纳入 R233 的两项计划工具及既有正式进度查询 参数/错误/图片和原call配对保真;不把每原子能力复制为顶层Tool,不复活grasp_candidates
B1 补充 · 任务阶段追踪 用 R233 的 task_plan_read/update 接 DSH 原生 Tool。正式进度沿 task_read(view="progress") A 绑定真实会话和任务步骤,B 复用 SQLite 计划仓,A4 与 B 承接原调用身份映射和回执补结算,D 关联版本和原调用。核压缩后读回、步骤隔离及同调用去重
B2 · 程序和原Stage链 沿rsi_feedback_program、rsi_feedback_execution、FrameworkStagePorts、Framework Stage capability分支 program_validate保存、execute_code空参运行、run/step原子Capability;result先回程序,紧邻计划内部绑定,不让模型传plan_ref;跨revision清旧代码绑定,仅迁显式纯数据,不因修订换Session
B3 · 仿真程序试验适配 Agent内案例启动适配+Framework现simulation prepare/reset客户端+Sim Environment接口;每worker明确端点/目录/ROS/GPU/录制 接A分配代和物化场景,真实加载/初态读回及严格必采ready后运行准确程序;未就绪记准备失败且不启动;原模型EvalRunner不与Agent争控制;ResetWorld保姿态不可冒充完整复位
B4 · 试验核验与比较 业务效果核验、案例结果/独立评价、baseline/candidate配对与留出 给C绑定准确资产/程序/政策的真实验证报告,给D每案例结果/缺项;回归包含原失败和受影响调用者历史例,不剔失败分母,不把nominal预演或语法通过当物理验证

Framework继续持有能力注册、资源准入、Provider/设备执行和原Stage查询取消。SimService继续持有环境/物理与传感,不把LLM程序放进去exec。R209新增规划/驱动/新手力已由P13实现并记录部署,2.0使用匹配版本及实际支持合同;P13未完成的物理/GPU验收继续保留,不在本项目重复开发底层。

B1按实际公开接口封装:轻量外部Agent保留任务级能力,不强制提供full Agent的程序历史接口;未公开原子能力不虚构Capability。B2程序/Stage链只适用于真实接通Framework/RSI的运行;迁入前确认业务能力覆盖与本案仿真场景,不切换在途任务的执行器。

4. 方向C:OpenViking 知识库与经验模板库

包 具体服务/模块改动 输入、交给谁与验收
C1 · 运行手册/引导Skill 按实际Capability合同和后端支持整理原语知识、完整参数/返回、单位/坐标、错误与关联能力;Skill指导查询选择和程序方法 经知识发布路径写入 ContextDB 知识库,给A准确版本与资源清单;模型实际能读全文。手册不是设备实现,开发设计稿不是运行手册
C2 · 候选来源与筛选 复用现Lesson/Procedure仓储,从D案例及原私有版本派生新共享候选;按主张/条件或程序/合同去重、按条件交集识别冲突,保observed/inferred/untested及反例关联 交B4独立验证,保私有谱系;保存返回candidate不自动共享;Procedure有完整源码/参数/阶段/恢复合同
C3 · 独审与策略确认发布 接现ExperienceService原函数;补独立验证器、type-aware报告与管理员操作;原private/offline装配不可用验证器需替换接线 依据P4绑定候选hash、程序hash、报告/用途/头版本;Lesson不编造stage,Procedure必须真实运行;按证据范围/独立报告/影响集回归自动确认;关键证伪撤回,普通失败复核;例外转维护者,内容替换重新核报告
C4 · 目录供给、读回采用与回归 获批正文写 ContextDB 经验模板库,读回核摘要后推进发布头,索引单独结算。扩共享版本曝光/采用证明;按型号current及purpose供给,后台处理反例和版本替换,运行时不做版本淘汰选择 给后续A/B本任务新程序,D记读过/选中/执行/效果;仿真有效不扩真机,不热换当前程序,索引失败不重复发布

C2/C3对已核搬运样本保留World/Agent成功报告,但空判据/快照不产物理成功标签或已验证搬运Procedure;接口来源类Lesson按其证据单独验证。

C1 负责知识库的内容和发布,C2–C4 负责经验模板库的筛选、批准和供给。两库共用 OpenViking 服务,各自限制查询与发布范围。角色鉴权来自服务上下文,不由模型在正文写approved或verifier_id代替。

5. 方向D:运行数据采集与收集

包 具体服务/模块改动 输入、交给谁与验收
D1 · 关联与连续游标 扩Agent原SQLite任务/程序/调用关联,新增SessionRun/Activation/Case/source-cursor和gap;原业务以source_task_ref关联,run只在真实存在时填写 接A4原生read/flush,不复制第二消息真源;同子Session多activation、并行Tool完成顺序和seed补读能分清
D2 · 执行/观测/媒体收集 沿RSI原步骤记录、Framework回执、Sim采样/录制器接原件;补必要canonical结果持久化 接B真实结果,保uri/hash/时间/坐标/epoch及模型可见性;可视执行/仿真试验默认录像,启动ready/结尾flush/文件hash与覆盖区间齐备;Tool投影/视频流/NPZ都不能冒充录像
D3 · 跨源封存与查询 EvidenceManifest先保存可信source_requirements,再固定各适用源cuts、格式版本、durability/采集水位、缺失/未知;提供可查会话→任务→程序→现场→经验链 给C候选作者/独审固定只读清单;partial只指数据不完整,不覆盖物理成功/失败/无法判断,缺件补新版本,断线不重发模型任务或机器人动作
D4 · 成效与数据范围 分析模板实际采用和效果、案例分母、模型用量与估算费用、权限/保留策略 给B/C完整比较;缓存/未知用量如实,模型隐藏推理不可假采;默认无限期保存,冷热迁移不改引用;接现仿真数据集/episode/judge和包,按源血缘分组后出程序/感知/动作/评价用途视图;日志访问范围不因候选发布而扩大

A1提供真实执行路线与来源适用清单,D3保存required/optional/not_applicable及原依据;缺采集的适用来源记missing/unknown,模型不能自行降格。A3后台去重以原业务身份和固定manifest为准,不强制每个原业务都有DSH run;后继分析Session另建真实关联。C3按对应主张的证据验证,不把发布要求变成原任务执行前置。

D1/D3对外部任务关联原Mission/World/Robot、规范、状态和完成记录;没有DSH/程序/Stage经历则不适用,原始派发/媒体/停止证据未取得则列缺口。D不把业务SUCCEEDED改成物理已核,也不为补采重派现场任务。

6. 具体代码位置和依赖

服务 已核位置 本轮接线或扩展
Agent/RSI infra/bootstrap/rsi_task_tools.py、infra/adapter/tools/rsi_program_execution.py、infra/runtime/rsi_feedback_program.py、infra/adapter/rsi_feedback_execution.py 接DSH业务Tool和批次程序执行;保原源码/阶段合同/实际结果,扩共享采用证明,不新增默认能力RPC
经验服务 application/rsi/experience.py、experience_record.py、private_experience_use.py、现SQLite读取曝光证明 原candidate/validate/publish/withdraw函数接可用独审、type-aware报告、鉴权确认、CAS及索引回执
Framework stage_execution/executor.py、framework_capabilities、simservice_client/client.py、环境gateway 保原Stage能力链;为worker显式配置session/readiness状态、环境端点与资源;进程内ResourceBinder不等全局锁
SimService Environment grpc_server/runtime_facade、Isaac supervisor/worker、原Recorder/CaptureSessionManager 接真实支持的加载/复位/采样和录制,物化非公开场景配置并记录摘要,不能假设snapshot/restore可用
DSH core/session、core/tools、session-persistence、session-checkpoint-policy、subagent和SDK server 最小可信插件接原生能力;不改DSH消息存储权威,不把缺SDK桥说成现成Python接口

精确文件行号和当前提交在三份取证稿目录中;源码存在不是部署证明。原P13源码/WIP均不由本轮修改。

7. 联调顺序和可交付结果

  1. A1/A4与B1/B2、D1先接一条模型→Tool→程序→Capability→原结果→模型链,明确原消息权威与持久化。
  2. A3+B3+D2完成一个隔离仿真case的场景/初态/实际执行/媒体/停止/封存,失败和unknown也能完整报告。
  3. 在实际容量验收后开多worker;验证互不控制、互不复位、资源/目录独占,单worker未知不拖垮其他已隔离worker。
  4. C2/C3+B4+D3完成候选归并、独立按类型验证、策略自动确认/例外人工、原版本发布/索引和准确读回;不得以不可用validator占位通过。
  5. C4+B2+D4用新任务读取并实际采用批准模板,再把效果交回资产版本;完成一次保存到后续有效使用的证据链。

各包的接口、逻辑表和核心时序以统一协议为准。设计审查、实现、提交、部署和真实验收分别记录;本轮只更新设计和阅读页。已核World搬运任务与Agent投影,作为业务接入样本;原派发控制回执、物理验收和本案隔离仿真仍待补证;R204仅为研发试验辅助,R208为只读设计推演,不混入生产业务统计;GPU容量和初态恢复需实测;在线动态修改、每型号唯一current供给、数据默认无限期保存已回写。

7. DSH接入怎样分给团队并串起来

主图DSH块与放大图使用同一模块名;架构图只写职责,A类工作包编号仅用于本分工文档,不是模块名称或新微服务。A0管组合根和升级兼容,A1a/b管原任务与生命周期,A2a/b管运行时供给与更新,A4a/b管数据桥,A3a/b在最小执行闭环成立后接后台和仿真。每项主责只能有一个owner;具体人名待项目负责人分配,技术边界已经明确。

联调交付 A交什么 B交什么 C交什么 D交什么 联合验收
① 核心先接通 A0/A1a提供实际DSH实例和原任务绑定,A2a提供准确Tool/Skill集合 B1给一个真实只读handler,B2给校验/执行程序及原Stage反馈 C1给一份批准引导Skill和原语/接口手册 D1记录身份与装配,D2保存canonical原结果 原任务→原生DSH Tool→程序多step→Capability→原程序→同call结果→模型,链路不靠解析聊天代码
② 同任务可持续 A1b/A2b提供正常结束/取消/更新,原生压缩和已有checkpoint B2验证变量连续、修订迁移与原操作查询/取消 C4提供current更新与准确资源 A4/D3提供原日志cut、缺项和封存 连续turn不丢变量,current变更无自等;unknown不重跑;关闭会话不冒称设备停止
③ 后台并发改进 A3a去重认领,A3b给隔离case/worker B3准备真实仿真并独占控制,B4独立比较 C2候选、C3独审策略发布、C4新任务供给 D2/D3保每次尝试,D4核读/选/执行/效果 原案不重放;多worker不串控;候选有独审/验证;下一任务才读新发布

先稳定①的A0+A1a+B1/B2+C1+D1合同;随后A2资产供给、A1b监督和A4/D采集可并行建设,②收齐后再验③。A1不能以“DSH能回答”交差,B不能以“handler已注册”交差,C不能以“正文已存库”交差,D不能以“收到live事件”交差。各自验收以本表交付到下游的真实回执为准。

DSH真实模块证据与SDK差量 · 工作包源码落点和验收细节。上述仅设计分工,未实施或联调。

引用说明与核验边界

以下为本设计引用的项目说明快照,供评审对照;其中的源码路径是来源标签,不是离线运行依赖。历史记录不代表目标方案已经实施。

notes/2026-11-02-hub-task-audit/current-agent-history.md
# 当前工作站任务历史核对

2026-11-02 16:11,Asia/Shanghai。本轮只读当前工作站 Agent 的任务元数据;没有创建或下发任务,没有调用模型、仿真或机器人,也没有查询 Hub/World 任务数据库。

## 判断及范围

已找到 10 月 16 日的 `api-smoke-test`:任务编号为 `m_e4cc08fc46734f0ea285b2a7c28f8a82`,任务正文是“接口冒烟测试任务”,来源为 `direct`。它是实际保存的接口联调任务,不能作为线上业务样本。

这台工作站当前在用的 Agent 数据库共有 7 条 Mission,来源均为 `direct`,没有 `world` 或其旧别名 `factory_dispatch`。这是一个当前数据库的完整分组结果,包括未过滤的软删除记录;它不覆盖其他机器人、其他 World、旧数据库、备份或曾被物理删除的记录,不能推导整个系统没有下发过业务任务。

7 条 Mission 都带有 `WORLD-BEIJING-DEMO-01`。因此,**有 world_id 不等于从 World 下发**:这个字段和 `mission_source_type` 必须分别核对。

## 找到的历史链路

| 时间(北京时间) | 保存的记录 | 能支持什么 |
|---|---|---|
| 10 月 16 日 16:39 | `api-smoke-test` 及其第一版计划 | 任务与计划已在本机建立,计划的源 World/工艺计划字段为空;不是线上派发回执。 |
| 10 月 22 日 17:18 起 | 同一 Mission 新建第二版计划,留下 7 条启动请求 | 启动身份为 `rsi-ro-4` 至 `rsi-ro-7`、`rsi-20261023-integrated-readonly-v1` 至 `v3`,属于后续 RSI 只读验收的重用记录。不能把这 7 次启动当成 10 月 16 日业务执行。 |
| 当前记录 | 上述 7 次执行状态均为 `completed`;Mission 状态为 `FAILED` | 执行记录完成和业务目标成功不是同一结论;本轮未读物理证据,不推定动作发生或目标达成。 |

其他 6 条任务为 RSI 只读/状态读取/6B 工件/经验验收/左臂闭环及 Coaching 几何预览。这里只用于排除当前库内候选,不用名称独立证明具体动作、发起人或业务来源。

## 怎样取得这些记录

1. 从运行单元确认 Agent 工作目录为 `/home/ubuntu/luban/src/LUBAN-Agent`,再读取当前 endpoint 的进程编号。
2. 仅从该进程环境解析资产目录,不输出环境内容或凭据。当前数据库为 `/home/ubuntu/luban/data/agent/assets/luban.db`。
3. 使用 SQLite `mode=ro` 和 `query_only=ON`,在同一读事务内取得 Mission 来源分组、任务元数据及该冒烟任务的计划/启动关联。没有运行产品初始化、迁移或写接口。
4. 当前工作树 HEAD 为 `d7dccb6a8c4dd58ed1480d6f3ef4c50f52030acb`;这只标识本轮读取的源码工作树,不证明运行进程必然使用相同字节。运行记录来自上述在用数据库。

实现定位:该工作树 `backend/luban/server/asset_paths.py` 定义资产目录与数据库文件;`backend/luban/infra/config/persistent_paths.py` 定义目录解析;`backend/luban/domain/mission_source.py` 将 `world/factory_dispatch` 与 `direct/manual/decomposition/imported/reusable_material_selection` 分别归类。读取的文件摘要及查询结果保存在本机私有审计回执,未把数据库复制进项目或阅读包。

私有回执位置:`~/.local/state/luban-harness/project15/hub-task-audit-20261102/agent-metadata.json`;采集时间 `2026-11-02T08:11:10.223108+00:00`;SHA256:`1e2550792efd0209a665f38ed6c09694ff0db6c0f3269266d322ad4d4da51ee1`。执行状态另保存在同目录`agent-execution-summary.json`,SHA256:`0e982864eca38d7c7a6e9bb2642454bed469f61c6efdd47544fe3d94bb3d88bb`。这两份回执均不是跨系统任务来源证明。

## 尚缺的证据

Hub 查询分组已打开,但页面明确提示登录过期,尚未成功查询线上任务。仍需在获得正常登录后读取获准 World 的 Mission,按原 Mission/Robot、派发请求与 Agent 受理/结果关联,定位用户所指的旧任务。只读查询不补发历史任务,也不拿部署工单或本机冒烟记录填补该缺口。

本轮结果已回并总方案的任务来源章节;首批线上业务样本继续保持“未核实”,不新增虚构任务或业务成功结论。
notes/2026-11-02-real-task-paper-policy/task-dispatch-evidence.md
# 真实任务入口、贯穿样本与后台改进取证

2026-11-02,Asia/Shanghai。仅设计取证;未发送任务、未调用模型/仿真/机器人、未部署、未运行HTML/DOM。结论:首批宜用已经发生的P13 R204抓取任务作为贯穿样本;其真实投递是工作站本地Agent原任务执行HTTP入口,不能改写成Hub派发。World的正式Mission派发路径另行解释,后台学习消费两条路径归集的真实运行证据,不另建任务下发平台。

## 1. 来源与版本边界

- 已按`luban-kb-query`执行`ov find MissionDispatchWorker`并全文回读`viking://resources/wiki/concepts/MissionDispatchWorker/MissionDispatchWorker.md`。该页更新时间2026-10-14,仅作定位与历史知识,不能充当当前线上部署证明。
- `repos/evolabs/luban-world`不是独立Git工作树,`git rev-parse --show-toplevel`返回Harness根。`repos/_sync_state.json:134`登记archive `adc4de887bfe691db57e28b26551dfa0dad22a60`/10-15,不能拿Harness HEAD当World SHA。本次找到P13此前固定的只读原仓`/tmp/r209-world-preflight-source`,实际HEAD为`2ea1c7a405f8211686f5d840df84ae19a643113f`,无工作树修改。下面World实现引用归此固定SHA。本次复核worker、dispatch client、access client三个文件与archive字节分别完全一致,SHA256为`baf8d12c29d088db3e773f4db5ff6d9d06a20f35feed7c9cf26787c8383c5df5`、`cbf4daec53cfe2c8f9a8586206fd78fd54b5001f9a543a61ce8dab5e5a9698ae`、`437e4d5f96a8a4d75d069cee70cc3cc3ca796c6d20de1a0da181ae09f05109aa`。其余archive文件未作全树对应核验。
- Hub:`repos/evolabs/LUBAN-Hub`实际独立Git HEAD `05fb0c7d5b184b49f7fc615752fce8fbe6859c17`,仅未跟踪`.clone_done`;是取证源码,不证明现网制品版本。
- RSI:`01-项目-projects/13-具身自进化-embodiedevo/code/LUBAN-Agent-RSI`实际HEAD `15cf94a5f570b0c98e27855a51621d9ea34b7b24`,本次status干净。R204当时安装的是`61d54bf21488b1f2daa97e250104d1b3bb9a6ab9`;下述当前接口实现与历史运行分别归因。没有把较新源码当R204已部署事实。
- P13 R209已经明确当前增量不新增World Tool/初始化前置;参见`notes/development-2026-10-29/R209-incremental-design/07-current-scope-without-new-world.md:7`、`06-interface-baseline.md:29`。运行World实际制品/认证snapshot仍未核,Hub健康不能替代World版本证明。

后文`W/`指固定World原仓,`H/`指Hub源码,`A/`指上述RSI源码,`P13/`指上述项目目录;行号均本次回读原文所得。

## 2. 已有平台谁负责什么

| 主体 | 已核职责 | 入口与关键合同 |
|---|---|---|
| World | 保存/生成/调度Mission,分配执行Robot,签发操作许可,接收Agent状态;不是机器人控制执行器 | `POST /api/v1/world-missions/submit`创建;`world-missions/get`、`world-missions/list`、`agent-missions/get/list`查询;`report-mission-status`上报。路由见`W/internal/server/http/routes_missions.go:16–29` |
| World MissionDispatchWorker | 扫描ASSIGNED任务并向Agent投递;接收不等于完成 | `W/internal/application/mission_dispatch_worker.go:117–199`;分页扫描完后逐任务重新授权、读Robot、签permit、Dispatch |
| Hub | 主Robot身份/World绑定核对及受限转发,不能说成所有任务的创建者/调度者 | `POST /api/v1/world-agent/robots/{robot_id}/dispatch-mission`及`cancel-mission`。`H/internal/server/http/routes_world_agent_access.go:11`;`H/internal/application/world_agent_access.go:59–91`校验World认证、payload身份一致、Robot存在及绑定,转发前清掉World token |
| Agent | 验permit/Robot归属、持久化本地任务、装配计划并运行,查询/取消与状态对账 | `POST /api/v1/dispatch-mission`、`query-mission`、`cancel-mission`;`A/backend/luban/server/http/routers/mission_contract.py:381–470`;应用服务不是兼容导出层,实际业务在`application/mission_contract.py` |
| Framework / Sim或真机 | 原Stage能力实际执行、回执与效果测量 | R204记录可证真实仿真臂运动/手接触,不能据接口受理替代物理验收 |

World submit至少涉及`world_id`、`mission_id`、`mission_type`、`mission_spec`、模板/计划来源,先授权写、核World、解析启用的类型和固定资产,剔除来端伪造的creation_source/auto_execute后走SubmitMission;字段是否必填以解码和领域校验为准,不能把本表当可直接发送的最小请求。见`W/internal/server/http/scheduling_handlers.go:22–93`。

World→Agent payload包含`world_id/mission_id/robot_id/mission_type/mission_description/mission_spec/row_version`及任务名称/原始文字、类型与模板版本、process_plan引用、phase/block/error等。Agent要求ASSIGNED、正整数row_version、实际Robot一致、process_plan_id和正revision成对;可选mission_request_text一旦出现就不得空。见`W/internal/infra/adapter/mission_dispatch_client.go:73–104`和`A/.../routers/mission_contract.py:258–325`。

路由先LAN注册私网/loopback地址和API端口,再可选Hub Relay。LAN仅在尚未建立连接、确认dial失败时才回退;连接后超时/响应损坏为indeterminate,不换通道重发。每次post内部使用同一X-Request-Id;World头和permit传到Agent,World token只发到Hub。Hub relay仅dispatch/cancel,不支持query-mission;Agent query需独立query permit,不得凭Hub接口名字猜查询通路。见`W/internal/infra/adapter/agent_access_client.go:75–179`、`H/internal/infra/relay/world_agent.go:24–57`。

## 3. 已有重试、幂等与状态回报

1. World worker启动和轮询重扫ASSIGNED,进程内按mission_id占用避免同轮并发重复;此内存inFlight不是跨进程锁。每次发送前再授权,错误可记录而不冒判拒绝。只有Agent明确REJECTED才报拒绝,其report_id为robot_id+mission_id的稳定摘要;ACCEPTED不推进完成。见`W/internal/application/mission_dispatch_worker.go:72–84,145–223`。
2. Agent同mission_id重投要核World、Robot、类型、原始目标、spec、模板/计划和版本,兼容旧版本返回原execution,内容冲突返回MISSION_ID_CONFLICT,本地来源已有ID不接受冒充World。见`A/backend/luban/application/mission_contract.py:1245–1307`。不能认为每次网络request_id变化就可创建新业务任务。
3. Agent变化事件唤醒原状态同步,启动排持久待报,180秒兜底;成功的槽位效果先ACK再报终态。report_id由mission_id、robot_id、row_version摘要确定;回报成功才记acknowledged,400/409/422保拒绝状态并继续其他任务,其他故障待下轮同身份重试。见`A/backend/luban/server/robot_runtime.py:1441–1529`、`A/backend/luban/application/mission_contract.py:1585–1639`。这不是额外的学习任务队列。
4. World状态端点校验Robot凭据、正row_version和block_flag/extends_info形状,不能拿浏览器/Hub凭据代替Robot上报合同。见`W/internal/server/http/scheduling_handlers.go:1029–1084`。
5. 本地原执行入口另有request_id锁及持久trace digest查重,同ID同内容返回duplicate,冲突409;canonical入口必须有mission_plan_id或mission_plan_template_id。见`A/backend/luban/application/debug_start.py:42–71,138–153`。未知提交先按原ID/trace查,不生成新ID“再试一次”。

## 4. 首批贯穿任务:R204,真实发生但未抓取成功

**选择理由**:同一次运行已包含真实感知→程序准入/执行→规划→控制→手部接触→效果核验→经验记录/读取/实际程序采用→失败终态。适合从已有实跑提炼首批改进,不需要编造“杯子C001从A到B”作为发生过的事实。

- 本地公开回执:`P13/notes/development-2026-10-29/R204-deployment-and-live-run.md:19–27`;请求准备是`R204-request-preparation.md:3–25`,准备态与实际受理分开。
- 实际受理2026-11-02 06:44:57.687008;request `rsi-grasp-task-r204-20261102-01`,请求2313B/SHA256 `8a5ea788437abc2de2d49a361c4f83cb23fcff5ce37d95919540c7c928da51ea`;parent `apexec_1c8c9c385ccd44ae8c06b17909a10e70`;run `run-ae5ed9bad240`;session `rsi-task-cebe02f44e7884af2a27d6a3`;step `asexec_43b33512a54546f59ad5c4569100ff83`。这些是已有历史身份,不是本轮新投递。
- 本次仅只读查看工作站原`/home/ubuntu/rsi-runtime-tests/20261102-grasp-task-r204/submit_once.py`与HTTP路径有关的语句:第24行实际用`HttpOriginalTaskService('http://127.0.0.1:8200').start_execution(request)`。当前adapter `A/backend/luban/infra/adapter/rsi_study_tasks.py:28–29`映射`POST /api/mission-plan-execution/start`,router `.../http/routers/debug.py:2197–2207`存在该入口。因此真实来源是本地Agent原任务启动接口,**无证据称R204先经Hub或World MissionDispatchWorker投递**。四refs为capture_profile、physical_effect_template、run_policy、seed_source,均有原件bytes/hash准备记录;不复制私有请求正文。
- 终态与效果:07:52:59.001自然completed/failed,末模型HTTP429/usage_limit_reached;72模型请求、95Tool、39Stage,12次仿真臂业务运动、3手命令、2次verify_effect;一次两指目标接触,试抬后失接触,目标3cm/2s未达到。不是人工Stop、不是抓取成功。见`P13/.../R204-round-review.md:5–17,29,42`。
- 两Lesson、一Procedure精确读回,Procedure773B与5677成功源码一致,5682复用并在5683两段实际执行;可支持“局部程序复用已发生”,不支持整轮抓取成功或共享发布已完成。见同复盘`:25`。
- 冻结来源位置:`/home/ubuntu/rsi-runtime-tests/20261102-grasp-task-r204/business-observer/terminal-freeze-20261102-0953/`;公开复盘`:44`保tools.json和stages.json字节/hash。本次未重新下载或通读私有运行内容,运行结论是对已有本地审计回执的回读,不能称本轮新独立物理复现。

## 5. 从真实运行启动后台改进:拟增部分,尚未实现

后台应由运行归集完成后的原生工作任务消费资料;它不拥有新的Hub/World任务调度权。以下为建议合同,不是已经存在的进程、表或定时任务。

| 环节 | 具体输入与输出 | 与当前任务关系 |
|---|---|---|
| 触发 | run终态/阶段证据封存事件产出manifest;至少绑定request/parent/run、源码版本、程序revision、Tool/Stage回执、效果测量、模型可见输入、录像引用与缺失项。事件未接通时对既有manifest做带游标补扫 | 活动run只读增量可诊断,未封存片段不能标整轮完结;不等任务结束才允许原在线RSI改稿 |
| 去重与认领 | 建议工作项键为run_id+manifest_digest+分析器版本+改进目标;同键复用结果,不按“标题相似”合并不同动作。认领和完成水位持久保留,事件/补扫共享同一账本 | 启动器已有request幂等不能自动替代分析工作项幂等;不更改原业务任务ID或World任务状态 |
| 积压 | 先枚举封存manifest,处理完才推进完成游标;失败保原错误和来源,unknown查原工作项;缺少原件留waiting_evidence,单项失败不阻断其他run | 不每轮重新分析全部历史,不以固定尝试次数删除失败;不伪造缺失录像、状态或效果 |
| 取问题 | 先分外部额度故障、真实业务未达标、输入/知识供给差额、局部程序复用价值;输出可证问题+反例+待验证因果 | R204的429与抓持未稳并列,不能把重读造成额度耗尽当已证因果 |
| 生成候选 | 先复用原在线Lesson/Procedure身份,带适用条件、失败范围与来源;新Lesson可为资料保留/几何解释,Procedure必须有源码和合同。不得把observed contact升级lift_hold成功 | 不原地共享发布R204私有经验,不热换已运行程序;当前run在线修订仍走原program_validate/execute与原Stage |
| 验证 | 资料供给候选可先用封存真实输入离线对比;程序候选固定原任务目标/初态来源/能力版本,在隔离worker和独立仿真实例运行,独审效果及退化 | 重用Stage证据只证历史,不是新候选通过;禁止为了候选试验reset当前业务场景或共用当前Framework session/GPU副作用冒称隔离 |
| 采用 | 验证报告→资产策略判定→版本化发布→后续新调用按当前批准版本准确装配;异常交人工,保回滚和原版本 | 自动发布机制仍为设计,不能借此宣称用户已授权产品自动发版或本轮启动后台 |

首批R204可具体形成三条候选:①normal模型资料投影的已读正文保留,验证四次14761B相同返回前正文实际上已被移出,不能断言四次均可省;②支持面/可见表面与对象姿态解释,检查ROI median靠台面和缩框行为,不能把“改腕相机必成功”当结论;③Procedure局部短距离移动复用,保留同TCP/plan/手状态条件与完整失败限制。证据见`R204-round-review.md:21–42`。手target保持字段缺失就列待测,不能凭握持失败直接确诊驱动bug。

在线与后台共同以真实任务结果推进:在线RSI在当前任务内观察反馈并修改程序;后台对封存证据提出可复核候选、在隔离试验中重新验证,服务未来任务。二者都不以ACCEPTED、Stage succeeded、Lesson applied或软件检查通过替代物理目标验收。World/Hub路径继续用原身份/状态合同,本地Agent路径继续用原request/trace合同,数据汇总层只关联来源,不发明一个统一下发平台。

## 6. 验证与未决

已执行OV语义检索/全文回读;固定原仓HEAD、工作树状态及三个World关键文件SHA256对应;回读Hub/Agent实际路由/应用服务;回读P13真实部署/受理/终态/程序采用记录;只读核原submit脚本的目标和调用。输出只有本文件。

未执行任何业务API、任务提交、机器人/仿真/模型、HTML/DOM、服务修改或部署。当前线上Hub/World制品未知;R204运行结论依已有审计记录而非本轮重放;后台manifest事件、认领积压账本、隔离验证器、资产策略自动发布均须设计和实施验收,现有原任务启动/派发/状态幂等不可被这些拟增项替代。
notes/2026-11-02-rsi-simulation-data/simulation-evidence.md
# 仿真并发试验与程序模板:只读设计取证

日期:2026-11-02(Asia/Shanghai)。性质:源码事实与设计建议分开;未启动仿真、Framework、Agent、模型、机器人或 HTML,未做物理/性能验收。仅本文件为本轮新增。P13 R209规划及手部增补不计入已实现,World新增Tool后置。

## 1. 核心判断

已有底座足以**设计接入**“Agent 执行固定程序 → Framework 执行能力 → SimService 提供物理世界/观测 → 独立评价 → 经验与模板候选”链路,但**不能宣称已有可直接提交任意 LLM 程序的批量仿真评测 RPC**。当前模型评测入口接受 model/checkpoint/release;程序由 Agent 运行,不能把 Python 程序伪装为策略模型交给原 EvalRunner。并发单位应是隔离的 Agent/Framework/Environment 配置与会话,不是在一个活动世界里并发几个互相改场景的任务。

最重要的三个限制:

1. Isaac facade 的 `CreateSnapshot/RestoreSnapshot/ResumeWorld/SetFault/GetPhysicsTrace` 虽有协议,当前后端明确延后或不支持,不能作为公平对照的现成恢复/故障注入工具。
2. `random_seed` 已可经 Framework prepare 传递并读回;Isaac 世界载入 IPC 未传该参数。这证明种子身份可对账,不证明物理引擎全部随机性被固定。
3. `ResetWorld` 当前是内存 epoch fence,**保留机器人姿态**并回读姿态误差;`ResetObjects` 保留机器人和 epoch。两者均不能单独当作“恢复完全相同机器人初态”。公平对照要另外声明/执行相同关节初始条件并回读;否则该 pair 无效。

## 2. 固定输入与证据定位约定

以下路径相对 P13 根 `01-项目-projects/13-具身自进化-embodiedevo/`:

| 简写 | 实际源码根 | HEAD | 本轮 status --short |
|---|---|---|---|
| S | `code/.worktrees/r159-camera-alignment` | `3d4a354e3c0e0b105acc39c7631c7df22a02e18c` | 空,干净 |
| F | `code/.worktrees/r159-framework-integration` | `9f038c774875d6bd907d17271dd355c9e0c1c1b3` | 空,干净 |
| A | `code/LUBAN-Agent-RSI` | `15cf94a5f570b0c98e27855a51621d9ea34b7b24` | 空,干净 |

不读取/修改 SimService 主树已有他人 WIP 来推导本轮实现。所有 `S:/F:/A:` 行号均指上述固定版本的真实文件。静态源码只能证明实现存在,不能证明工作站安装/在役版本或并发容量。

按 luban-kb-query 先检索 `ov find 'SimService 多实例 场景 随机化 episode reset judge'`,再全文回读 `viking://resources/compile/simservice/v4-2026-10-20/01-environment-sil/SimService_v4_环境与SIL场景条件增量精读.md`。这是旧版本机器编译稿,仅导航;下列结论已在本轮固定源码回读。该稿关于 config_hash 未覆盖 lift 等提醒仍须以当前源码核对。

## 3. 已实现 / 待接 / 未证矩阵

| 能力 | 已实现证据 | 本轮接入判断与缺口 |
|---|---|---|
| 身份、健康、能力发现 | S:`src/sim_service/environment/grpc_server.py:58–192`,`GetServerInfo/GetCapabilities/CheckHealth`;版本 source_revision 默认 unknown | 可读,但须校验实际返回,不拿服务健康代替具体任务可运行;unsupported 不自动降级为模拟成功 |
| 环境创建/版本 | S:proto `WorldSpec/WorldManifest/WorldRef`,`vendor/evolabs-simulation-contracts-0.1.7/contracts/evolabs/simulation/v1alpha1/sim_environment.proto:149–204`;F:`src/simulation/simservice_client/luban_simservice_client/client.py:364–396` | 已有 `LoadWorld`、资产 hash、config hash、epoch/scene revision;一个 facade 保留一个活动 `_world_ref`,不提供内部世界池 |
| Framework 环境入口 | F:`src/simulation/simservice_environment_gateway/luban_simservice_environment/server.py:217–259,327–341` | 已有 `POST /simulation/prepare`、reset、reset-objects、pause/resume,GET status/workstation/replay-state;每端点对应一个 client/session;新增试验调度/程序提交合同待接 |
| 准备对象/种子 | F:client.py:364–418;gateway/server.py:222–248 | prepare 可传 `world_id,scene_objects,random_seed`,uint64 校验;种子读回不等于动力学确定性 |
| 全世界复位 | S:`src/sim_service/environment/runtime_facade.py:3021–3093` | 已有 in_memory_epoch_fence,换 epoch、清命令/传感缓存,校验 stage_reloaded=false;保留姿态,须补公平初态恢复步骤;worker直接证据 `tools/isaacsim/isaac_worker.py:7572–7607,7666–7687` |
| 仅物体复位 | S:runtime_facade.py:3095–3133;F:client.py:532–541 | 已实现且检查完整物体 ID;明确不变机器人姿态/epoch,不可冒称完整回合重置 |
| 固定步进 | S:proto:269–276,550;runtime_facade.py:624–642 | backend 声明 fixed_step;Agent/Framework执行链的具体计时与步进配合待接/待验,不能用离线算法 lockstep 结果替代实时 Agent 效果 |
| 精确快照/恢复、故障矩阵、物理 trace | S:runtime_facade.py:624–660,5242–5251 | Isaac未列 snapshot/fault 支持,`physics_trace_enabled=False`,对应方法抛 deferred_to_p4;协议存在,不计可用功能;切勿为并发设计假造新RPC |
| 场景选择/物体放置 | S:`tools/isaacsim/sil/web_console.py:2336–2347`;runtime_facade.py:3135 | 旧 SIL有 `/scenes.json,/scene,/place,/reset`;当前 Environment 原入口另为 scripts/service.sh。旧控制台接口不是所有 Environment 部署的保证;场景矩阵适配器待接 |
| 材质/升降/环境覆盖 | S:runtime_facade.py:2783–2814;`tools/isaacsim/sil/evaluation.py:33–45` | `lift_override_m,scene_object_materials,scene_overlay_path,scene_environment_path` 是进程内 Python kwargs/部署配置,不是 WorldSpec 全部公开字段;需冻结这些内容的独立hash,不能仅靠config_hash |
| 随机化 | S:`src/sim_service/portal/evaluation.py:262–273,302–315,353–370` | 已有vtla_bench扰动实例生成;同seed配对原理可复用。通用任意任务/几何/光照/材质随机化计划器并无此处证据;要明确支持因子范围,物化真实参数后哈希 |
| 种子真实使用 | S:runtime_facade.py:2936–2978记录种子;`src/sim_service/environment/isaac_worker_supervisor.py:641–665` 的 load_environment_world 参数/IPC无seed | 只能报告配置种子相同。完整动力学、感知/LLM/规划随机种子及确定性未证;不能以相同seed保证逐帧相等 |
| 观测 | S:grpc_server.py:314–357,370–526;runtime_facade.py:624–642 | 已有机器人状态与RGB/Depth/Info/力/触觉,支持情况逐backend核验;按相机合同、外参和时间/epoch归档。诊断viewer声明algorithm_input/evaluator_input=false(grpc_server.py:179–188) |
| 轨迹与物体证据 | S:`tools/isaacsim/sil/recorder.py:35–95,114–146` | `SessionRecorder.start/stop/offer`产recording.json + arrays.npz,记录关节、物体/overlay pose;单实例一次一段,无帧不保存;这不是RGB录像文件 |
| 视频与回放 | S:web_console.py:2325–2349 有WebRTC/H264及frame端点;F:gateway.py:278–284 有replay-state | 视频流不等于已持久录像/可独立判分证据,试验录制器仍需保存传感原件/时间与摘要;不能把渲染诊断视角偷偷交给程序 |
| ROS证据收集 | S:`src/sim_service/resim/capture_harness.py:126–139,242–268` | 已有 CaptureSessionManager.start/record_event/stop/status;需接当前域与会话。standalone_capture.py:48–65默认可清理共享/dev/shm,不可在并发worker通用启动里原样调用全局清理 |
| resim重新执行 | S:`src/sim_service/resim/agent_api.py:6–15`、harness.py:13–54 | `run_l1_rerun`只是命令规划MVP,返回planned,明确没启动ROS;不得写成完成物理重放或反事实评测 |
| 策略模型评测 | S:portal/evaluation.py:276–397,400–403 | freeze接受checkpoint/model/release,生成request/candidate/execution-profile及hash,调用sim_training.evaluation_job;是已有模型通道,**不是程序测试接口** |
| 程序执行 | A:`backend/luban/application/agent_runtime/rsi_program_execution.py:1–42`;`backend/luban/application/rsi/program_runner.py:35–51` | 当前Agent有程序接纳/阶段执行与隔离计算worker;当前原子能力step调用已由rsi-delta-evidence交叉核实;P15拟补的是DSH接线与批次试验,不再另造直接Capability RPC。新试验模块须调用Agent明确固定程序版本,不能把源代码给SimService去exec |
| unknown | A:`backend/luban/application/agent_runtime/task_loop.py:108–146` | 已有可能已派发动作且回执未保存的unknown处理:原执行对账、不自动重发;试验adapter必须继承并隔离worker,不以超时当失败回合后立刻reset复用 |

## 4. 核心现有接口(不是拟造RPC)

`S:vendor/evolabs-simulation-contracts-0.1.7/contracts/evolabs/simulation/v1alpha1/sim_environment.proto:538–576` 定义服务:

- `WorldService.LoadWorld(LoadWorldRequest{spec:WorldSpec}) -> LoadWorldResponse{state,failure}`。
- `GetWorldState/ResetWorld/ResetObjects/PauseWorld/ResumeWorld` 均使用 `WorldRef{world_instance_id,epoch_id,scene_revision}`;ResetObjects另返回 reset_object_ids;`StepWorld(...step_count)`。
- `SensorService.ListSensors/GetSensorSample/StreamSensorSamples/GetCalibration`,RobotStateService.GetRobotState/WatchRobotState;ActuationService.ApplyActuation/ActuationStream/HaltActuators。
- Snapshot/Diagnostic方法仅为协议存在,当前Isaac可用范围按上一节限定。

`F:src/simulation/simservice_client/luban_simservice_client/client.py` 具体 Python:

```text
prepare_world(*, world_id: str, model_uri: str=L25_MODEL_URI,
              scene_objects: Sequence[Mapping[str,Any]]=(),
              random_seed: int|None=None) -> SimulationSession  # 364
reset_world() -> SimulationSession                            # 470
reset_objects() -> tuple[SimulationSession,tuple[str,...]]      # 532
replay_state() -> Mapping[str,Any]                             # 543
```

`S:src/sim_service/environment/runtime_facade.py:2783` 进程内:

```text
load_world(spec: pb2.WorldSpec, *, scene_overlay_path: str|None=None,
           scene_environment_path: str|None=None, lift_override_m: float|None=None,
           scene_object_materials: dict[str,dict[str,float]]|None=None) -> pb2.WorldState
```

不能把这些私有参数直接写成 `/simulation/prepare` 支持的JSON字段。`S:tools/isaacsim/sil/evaluation.py:1–5,54–84` 的 evaluation模式在同facade启动gRPC、禁ROS控制/传感线程,由EvalRunner拥有动作、传感、复位;面向Agent的试验若采用Framework执行,应选它实际支持的数据面,不能并起原EvalRunner争控制权。

## 5. 并发隔离与容量

源码支持隔离基础,但未提供已经验证的统一worker池。`S:tools/isaacsim/run_sil.sh:33–48` 用 `SIL_RUN_ROOT` flock,分别指定STATE_ROOT、physics/render socket、日志和端口。`S:src/sim_service/environment/isaac_worker_supervisor.py:122–143` socket与worker状态落state root;`worker_protocol.py:66–85` 校验session/epoch/sequence/deadline。共享状态根会串会话;只给不同 world_id 不够。

设计每个 worker 持有独立:Agent任务/执行/数据库命名空间、Framework进程及session-state/readiness-state、Environment端点与physics/render/viewer socket、ROS_DOMAIN_ID(走ROS时)、录制与资产暂存目录、日志、端口、租约。可共享只读且按hash固定的资产文件;不同worker不得修改共享资产。F:`src/simulation/simservice_environment_gateway/luban_simservice_environment/server.py:17–32,345–355` 显示readiness-state有默认共享路径且session-state是显式启动参数,池化时都必须显式覆盖。

Framework `ResourceBinder` 的 `_exclusive_owners/_shared_owners` 是进程内dict(F:`src/robotskill_framework/skill_execution/capability/resource_binder.py:19–39,87–99`)。单进程资源租约不能当作跨Framework实例或GPU全局锁;池管理需自身独占worker/设备,不靠两份进程内字典互相约束。`execution_manager.py:534–546`调用资源准入,不能绕过这个执行边界。

旧SIL docker约定domain=10+N,拒domain 0(S:`deploy/sil/docker/run_sil_docker.sh:13,74–78`);裸机run_sil.sh只默认10,不等于自动避免域冲突。RMW/DDS配置与订阅者须成套,不用全局清/dev/shm恢复一个worker。

GPU隔离/容量:本轮没有显存测量或GPU绑定实测,不能给“可并发N个”验收结论。技能中6.5GB/5080两实例是旧文档口径,不套到当前GPU/worker组合。池配置需声明GPU/显存预算及准入余量,测得容量前默认保守单worker,队列并发可提高但执行并发不超资源额度;显存不足/渲染进程未停确认则quarantine而非盲目重启全栈。

## 6. 拟新增“仿真程序试验”模块与交接(设计建议,全部待实现)

不另造原生Agent调度框架。RSI服务内新增试验协调模块,Agent承担程序执行,Framework承担准入/执行,SimService只承担环境/物理;原生子任务负责按冻结矩阵分工,worker租约仅控制真实资源。

| 模块 | 输入 → 输出 | 如何接既有实现 |
|---|---|---|
| 场景矩阵冻结器 | Goal/验收、任务分布、资产版本、扰动策略、seed列表 → 不可变TrialPlan + 逐cell SceneManifest | WorldSpec公开对象字段;私有overlay/lift/material由部署adapter物化;每cell保存真实参数与hash,不只存seed |
| 隔离worker池 | resource_request + plan/cell ID → worker lease + 精确端点/隔离清单 | 上述run roots/session/端口配置;不声称已有CreateWorker RPC;已有原生任务编排按池租约分配 |
| 场景适配器 | 固定scene/asset/engine配置 → prepared world + actual WorldRef + 初态读回 | Framework prepare或选定Environment接口;校验实际capabilities及实例身份;复位、机器人初态回读后才准入 |
| Agent程序执行适配器 | 固定program/procedure源码与版本、任务输入、可用Capability/Tool/手册、绑定版本 → Agent execution ID/调用回执 | 沿当前run/step(Capability)与原Stage通道,只补DSH/试验适配;不使用Portal model evaluator伪造程序策略 |
| 证据收集器 | 执行与环境的同一trial/epoch、观测/动作/物体读回 → EvidenceManifest + 原件hash | 现有session recorder / 状态和传感接口;视频持久化、任务归档和关联待补,truth与程序可见观测分开 |
| 独立判分器 | 冻结验收合同 + 原件 → verified_success / verified_failure / inconclusive + 逐条证据 | 优先几何/状态/约束判定;无接触真值不能判未损伤,无传感覆盖不能写全部成功;模型judge如用需冻结版本/输入且说明判据局限 |
| 成对比较与模板提炼 | baseline/candidate配对结果 + 保留集 → 适用条件、差异/反例、候选经验/模板 | 固定基线candidate身份,独立review;接P15既有经验/程序发布门,不把每个成功轨迹直接升级为通用模板 |

拟增的模块调用语义(**不是现有HTTP/RPC名**):`freeze_trial_plan(spec)->plan_ref`、`lease_worker(cell_ref)->lease_ref`、`prepare_cell(lease_ref,scene_ref)->prepared_ref`、`submit_agent_trial(prepared_ref,program_ref)->execution_ref`、`reconcile_trial(execution_ref)->state`、`seal_trial_evidence(trial_ref)->evidence_ref`、`judge_trial(evidence_ref,criteria_ref)->verdict_ref`、`compare_pairs(plan_ref)->comparison_ref`。正式路径/鉴权/取消合同由主设计定义,避免无证据承诺现有服务支持。

TrialPlan最小字段:`plan_id,goal/criteria_ref,baseline_program_ref,candidate_program_ref,framework/agent/sim_source_sha,engine_version,capability_catalog/binding_revision,manual/knowledge_snapshot,scene_matrix_ref,resource_budget,cancellation_policy,review_policy`。

CellManifest最小字段:`cell_id,scene_source_hash,asset_hashes,workcell/layout_revision,overlay/environment/lift/materials_hash,object_specs,robot_initial_state,physics_time_step/execution_mode,perturbation_generator/version,materialized_parameters,scene_seed,policy_seed,model_sampling_seed_or_unknown,replicate_id,split`。

TrialReceipt最小字段:`trial_id,pair_id,arm,plan/cell_ref,program_source_hash,worker_lease,execution_id,WorldRef,actual_seed_readback,actual_init_state,dispatch/stop/reconcile_refs,status,evidence_manifest,criteria_verdict,reason,unknown_fields`;seed回读字段用 `configured_seed_verified` 类语义,不命名 deterministic_verified。

## 7. 公平对照、失败与产物采用

- baseline/candidate都固定源码、入口、程序/依赖、绑定、模型/采样参数与手册/知识快照;候选若连知识/策略一起改,比较结论写成组合变化,不能归因到程序一项。对照在同cell、同物化扰动、同初始关节/物体状态运行,随机化执行顺序,重复与独立保留集由目标/预算定义;不为凑统计做未授权耗时实验。
- 同GPU并发会改变时延、感知鲜度和超时,作为显式block变量记录;公平比较可配对交错,不能把先空闲机baseline与后满载candidate的耗时当程序进步。
- 每次 `ResetWorld` 新epoch必须同步Framework/Agent任务上下文,停止/unknown尚未对账前不reset覆盖证据。ResetObjects只用于已明确的物体恢复场景;机器人初态不同就标pair_invalid或重新建立世界并实测回读,不静默排除失败。
- 区分 `execution_failed`、`environment_failed`、`evidence_missing`、`stopped`、`unknown` 与 `task_failed`。基础设施失败不伪造任务失败/成功;报告全部trial流向、分母、有效pair、unknown、排除理由,不能只报告幸存成功样本。
- unknown后用原execution/request ID对账;停未确认、epoch串线、回执未落盘的worker封存,不能换ID再派。取消应收齐Agent/Framework/Environment终止/持有回执后才还池;已有协议不能保证的部分列为待接。
- 经验候选含前提、失败触发、恢复方法、证据引用;程序模板候选含参数合同、绑定/能力要求、适用资产/任务分布、成功和反例、可复现引用。提炼后在新cell和保留任务检验,独审通过再提交既有唯一发布入口。
- 人工确认至少覆盖设计/预算与实机风险边界、模板采用/发布和sim→real迁移授权;不把这轮设计调查当成运行授权。仿真成功仅支持明确引擎、资产、传感/接触模型、分布范围;真实摩擦、柔顺、损伤/遮挡、延迟、手部控制差异及P13未落地手部能力须单列未证;进入真机需要对应能力合同、标定、保护和另行验收。

## 8. 验证与未决

本轮完成OV精确正文回读、三仓固定HEAD和dirty核查、关键源码上下文与行号、关键文件SHA256。未运行任何测试或服务;没有并发容量、物理效果、种子确定性、程序通道到仿真全链路或sim→real验收。新增问题建议由主代理映射P15稳定问题ID:程序试验adapter缺口、初态恢复合同、seed语义、worker隔离/GPU容量、unknown停止对账、完整证据与独立验收。只写本说明,未擅自更新共享问题台账。


## 9. 关键文件字节 SHA256

| 来源文件 | SHA256 |
|---|---|
| S:`vendor/evolabs-simulation-contracts-0.1.7/contracts/evolabs/simulation/v1alpha1/sim_environment.proto` | `83ae638d9b5ec90bcc7121aa65513bbd9b9616a35c606236bd04d117d31fabb9` |
| S:`src/sim_service/environment/runtime_facade.py` | `e225c953687f0cee74c187264e675303396574e5a6ee472de3b5127d6a2f6dd0` |
| S:`src/sim_service/environment/grpc_server.py` | `72b1447d8a103f4de90f578c368d1735bbdffb55a5ba42242bf9cf7af46fa3c9` |
| S:`src/sim_service/environment/isaac_worker_supervisor.py` | `ccaed5e96e8b6386d2b4ff52333f604499655e4f1b68e8f7b0f1e98c8f353a63` |
| S:`src/sim_service/environment/worker_protocol.py` | `cf68310a9f025f453469cdc67304e14937ffeec0fac4a255833527c531863f49` |
| S:`tools/isaacsim/sil/evaluation.py` | `545753753def7e6e2f71101c46e11d47a0991848a75a6ef9840948f60c46e4fc` |
| S:`tools/isaacsim/sil/recorder.py` | `2e61fd14d38b8ea5ae975c08f2a0103a1e8e8a40f4f68f8d4fef4084d87b1bfa` |
| S:`tools/isaacsim/run_sil.sh` | `37a079f2650b7a7fe91fcfcc346407d337c50683ac9ff05eb442f6d79e6d7c04` |
| S:`src/sim_service/portal/evaluation.py` | `8a5fc437091e609c8a96cbd0ffbad4d4aa7399da85c3c72115f931b5d47cc4cd` |
| S:`src/sim_service/resim/agent_api.py` | `0a561d6286d9e81b706fb4021ddd9807931ad4d6ed697a0191710ee7d3e68c90` |
| S:`src/sim_service/resim/harness.py` | `4be03e2164a9653d94b0d9add03a4ddea7f174e512b03c2514af3cadcf3a86fa` |
| F:`src/simulation/simservice_environment_gateway/luban_simservice_environment/server.py` | `a69ae51aa32628c1a742db3b39cc0d9e18cb9aeac5548db3ff1da5211acd17d3` |
| F:`src/simulation/simservice_client/luban_simservice_client/client.py` | `783f293491a063a0ca8f2c1a2f0349a7f1bdc63b3ab4c0f703a64a7281f5f2df` |
| F:`src/robotskill_framework/skill_execution/capability/resource_binder.py` | `abb83ba1b8c2c092f127fd5c3862145cbee6ecc3956db8718df550dba2069f00` |
| A:`backend/luban/application/agent_runtime/rsi_program_execution.py` | `8025baf5e907e1b3d2b45ebd82956f735cb63c41ae07f70371f497e5a2a7c7f6` |
| A:`backend/luban/application/rsi/program_runner.py` | `7d11348acb154a076e36d1fc7e6ad6eac48e869034e2a35afd15c575b0e9be3a` |
| A:`backend/luban/application/agent_runtime/task_loop.py` | `3b586b4c4e7f5e32424f3810c763051a877f3e51eb0ff2c7d143044822ddc732` |
| S:`tools/isaacsim/isaac_worker.py` | `fc73ac10aa320cf588ee6586339615d0492f717e0ed0f7b5884dbf327fcd124b` |
notes/2026-11-02-dsh-core-r8/core-evidence.md
# DSH核心模块与可选组合取证(R8)

日期:2026-11-02,Asia/Shanghai。状态:已回核本轮固定官方HEAD源码及旧快照差量;只读设计取证。

已读本项目AGENTS与四正式稿:`2026-10-29-LUBAN-2.0-知识经验与工具执行架构.md`、`2026-10-29-LUBAN-2.0-Agent运行时与动态装配设计.md`、`2026-10-29-LUBAN-2.0-工具执行与程序复用协议.md`、`2026-10-29-LUBAN-2.0-本轮架构调整分工.md`。本轮仅新增本证据稿;没有执行产品、HTML/DOM、模型或部署。

取料使用已读`luban-kb-query`路C:指定固定源码快照直接回读REPO。本稿所有`packages/`和`docs/`相对路径以`original_doc/2026-11-02-dsh-upstream-core/repo/`解析,固定官方commit为`ce7073d51254c26cd63b22a60835b8f948deb447`。原件为官方归档解包,无.git,来源与归档SHA256见同目录外层`SOURCE.md`/manifest;不据目录名声称运行实例已升级。此前快照`f3803c96974ad4a94195fb97e5c637e9c2a3afe3`仅作差量基线,不再用它代替新版本。

## 1. 图中建议展开的十个模块

以下是聚合模块,不是十个新服务,也不是十个包。表中“必要”是LUBAN目标选择的组合建议,不能宣称所有DSH产品都必须装。依赖栏区分运行时注入和库依赖,不能只看package.json的dependencies推断实际加载。

| 模块 | 真实包/职责与主要依赖 | LUBAN组合判断与扩展点 | 源码证据 |
|---|---|---|---|
| 作用域与插件宿主 | `@deepseek-ai/cordis`承载插件/服务/effect生命周期;`@deepseek-ai/dsh-scope`是库,管理注册继承、事件按scope路由和释放 | 必要基础。业务插件使用真实agent.ctx注册,非每个Tool一个新服务。scope并非操作系统权限沙箱 | `packages/core/scope/src/index.ts:33`、`:104`、`:130`、`:170`;`packages/core/agent/src/runtime-types.ts:202` |
| Agent与循环 | `@deepseek-ai/dsh-agent`提供注册表、工厂和句柄;`@deepseek-ai/dsh-agent-loop`实现默认驱动器。Loop硬注入agents/sessions/llm/tools/systemPrompt/sessionProjections | 必要;复用循环,不再写第二套TaskLoop。业务绑定与监督由Agent补。创建/恢复setup注册作用域贡献,完成后才发布Agent | `packages/core/agent-loop/src/index.ts:292`;`packages/core/agent/src/index.ts:104`、`:166`、`:420`、`:435`;`packages/core/agent-loop/src/agent.ts:112` |
| 系统提示与上下文组装 | `@deepseek-ai/dsh-system-prompt`管理有序section、变量、Tool schema;Tools向它贡献当前executor描述 | 必要。Agent投影原目标/领域事实,用section/variable及原生注入通道;业务正文须走有日志的渠道 | `packages/core/system-prompt/src/index.ts:436`、`:485`、`:568`;`packages/core/tools/src/index.ts:112`;`packages/core/agent/src/runtime-types.ts:352` |
| Tool注册与执行 | `@deepseek-ai/dsh-tools`注册、scope限制、step-time resolve、共享执行流水线;`@deepseek-ai/dsh-tool-executor-native`选择Native执行和批次结算 | 必要且至少一个实际executor;Native适合直接业务Tool。PTC是可选呈现/执行路径,不必默认装。Tool定义/参数/原handler由LUBAN提供,DSH负责模型往返 | `packages/core/tools/src/index.ts:99`、`:128`、`:162`、`:264`、`:325`;`packages/core/tool-executor-native/src/index.ts:8`、`:27`;`packages/core/tools/src/batch.ts:1` |
| Skill目录与正文加载 | `@deepseek-ai/dsh-skill`统一注册表;`@deepseek-ai/dsh-tool-skill`提供原生`skill({name})`和目录注入;`@deepseek-ai/dsh-skill-filesystem`只是一个来源 | LUBAN需引导Skill,故需装注册表+原生Tool+批准provider。FS按需,可换虚拟/远端provider;注册表本身不携内容、不执行机器人。业务版本/hash校验由provider补 | `packages/skill/skill/src/index.ts:247`、`:390`、`:439`、`:470`;`packages/skill/tool-skill/src/index.ts:26`、`:84`、`:130`、`:181`、`:217`;`packages/skill/skill-filesystem/src/index.ts:135` |
| 模型路由与适配 | `@deepseek-ai/dsh-llm`是适配注册/流式调用主干;DeepSeek API key/account或pi-ai等是提供方实现。`registerAdapter(providers,adapter)`注册路由 | 必要主干+至少一个可用adapter。某个供应商实现非引擎必需;`dsh-llm-retry`是原生重试策略插件,业务Tool不可据模型重试回放动作 | `packages/llm/llm/src/index.ts:208`、`:302`、`:354`、`:401`;`packages/bundle/base/cordis.patch.yml:128`、`:530` |
| Session日志与派生视图 | `@deepseek-ai/dsh-session`仅追加事件/Store;`@deepseek-ai/dsh-session-projection`管理可重建投影;Loop/Agent都依赖投影 | 必要。DSH保存唯一模型日志;业务表保存任务/原程序/Stage和原生身份关联。Session不等于业务run/仿真实例/程序解释器 | `packages/core/session/src/index.ts:525`、`:764`、`:1064`;`packages/core/session/src/surface.ts:120`;`packages/core/agent/src/index.ts:275`;`packages/core/agent-loop/src/index.ts:292` |
| 持久化与落盘屏障 | `@deepseek-ai/dsh-session-persistence`定义存储句柄;`@deepseek-ai/dsh-session-persistence-jsonl`是文件后端;`@deepseek-ai/dsh-session-checkpoint-policy`在模型请求/顶层Tool/下一step前flush | 目标要求恢复/采集,故必要;具体后端可替换。不是再建模型消息数据库。采集从read handle读,必须由原writer确认cut | `packages/session/session-persistence/src/index.ts:144`、`:174`;`packages/session/session-persistence/src/handle.ts:8`、`:57`、`:80`、`:104`;`packages/session/session-checkpoint-policy/src/index.ts:18`、`:57`;`packages/core/session/src/index.ts:1330` |
| Token计量与压缩 | `@deepseek-ai/dsh-token-meter`计算请求/表面上下文压力,依赖sessionProjections;`@deepseek-ai/dsh-compaction`定义压缩API,`@deepseek-ai/dsh-compaction-basic`实现保留/摘要/替换,注入llm/tokenMeter/sessions | LUBAN长任务选择原生组合。摘要是派生节点并保来源,原日志不剪除。image-offload/tool-result-pruner按图像/长结果需要选装,不将压缩称新的业务存储服务 | `packages/llm/token-meter/src/index.ts:90`;`packages/compaction/compaction/src/index.ts:110`;`packages/compaction/compaction-basic/src/index.ts:113`、`:157`、`:213`、`:407`;`packages/compaction/compaction-basic/src/region.ts:349`、`:507` |
| 子代理/后台分析协作 | `@deepseek-ai/dsh-subagent`统一registry,配`dsh-subagent-spawn-in-process`/`fork-in-process`及`dsh-tool-subagent`/`tool-subagent-control`;实际provider可换 | 按需;LUBAN后台作者/独审需要并行时装。复用父子/分支,不自建调度框架;仿真worker/GPU/控制权占有仍需Agent业务模块,子代理不是物理隔离 | `packages/subagent/subagent/src/index.ts:185`、`:199`、`:549`;`packages/subagent/subagent-spawn-in-process/src/index.ts:17`;`packages/subagent/subagent-fork-in-process/src/index.ts:21`;`packages/bundle/base/cordis.patch.yml:362` |

SDK传输与产品插件管理画在DSH边界的接入侧/运维侧;不占模型循环中一个业务执行步骤。生命周期hook是上述模块的原生扩展面,不另画一个“Hook微服务”。

## 2. SDK与bundle不能混成一个API层

- `@deepseek-ai/dsh-base`和`@deepseek-ai/dsh-sdk-minimal`的`src/index.ts:1`均明确主体是`cordis.patch.yml`,模块没有runtime API。base是共享默认产品组合,包含web搜索、shell、goal、Skill、子代理、插件管理等大量功能;不是所有行均是引擎不可删核心。
- sdk-minimal独立插入整棵Cordis树,不叠base(`packages/bundle/sdk-minimal/cordis.patch.yml:1`)。它虽名minimal,仍装shell/subprocess、jobs、图像、token-meter/压缩、JSONL和checkpoint,且没有Skill/子代理/plugin-manager行。不能选择minimal后宣称Skill/子代理已就绪;须显式装配验证。
- `@deepseek-ai/dsh-sdk-app`提供启动参数与stdin生命周期,解析成功才provide `sdkAppStartup`(`packages/bundle/sdk-app/src/index.ts:19`、`:55`)。它的patch是base上的SDK应用组合,还加workspace/schedule/ask-user/present等;新版本patch又显式启用tool-plugin-manager(`packages/bundle/sdk-app/cordis.patch.yml:1`、`:46`)。这不是TypeScript核心Agent对象。
- `@deepseek-ai/dsh-sdk-jsonrpc-server`通过stdio JSON-RPC服务外部SDK客户端,硬注入agents和workingDirectory;initialize等待loader树settle,shutdown对SDK所有权会话和root做关闭(`packages/sdk/server/src/index.ts:20`、`:43`、`:87`)。其wire方法列initialize、session/prompt、session/query、session/resume、session/wait、working-directory get/set、shutdown(`packages/sdk/server/src/server.ts:498`)。`session/prompt`返回messageId,内部使用followup;不能虚构`session/create`、`session/steer`、`session/cancel`、history/read或flush RPC。
- 内部Agent确有steer/cancel/runMaintenance等,不等于Python SDK已有同名远程方法。A4可拟增小范围可信插件桥,保持官方SDK的会话/关闭所有权;需正式定义协议和验证,不把内部ctx对象跨进程直接传给Python。

## 3. 生命周期和Tool hook可做什么

`Agent`内部真实方法见`packages/core/agent/src/runtime-types.ts:190`:cancel(cause,options)、whenIdle()、runMaintenance(task)、send(message,target,wakeup)、followup(message)、steer(message)、inject(message)。

- `agent/pre-step`为waterfall,可拒绝step/替换入站消息;`agent/request-error`为模型失败恢复waterfall。`agent/request`在此版已deprecated并明确“不新增监听”,新集成应在step准备前用`agent.model.select()`和AgentOptions,而非继续把它当通用新接点(`:338`–`:389`)。
- `agent/turn-stopping`是serial、awaited正常闭合点;listener可steer使下一step继续(`:400`)。Loop实际在无nextStep且打算结束时调用,异常/取消走catch/finally记录turn/end,未承诺通过这个hook(`packages/core/agent-loop/src/agent.ts:394`、`:402`、`:419`)。故业务验收可挂正常闭合,但取消/未知/外部停止须独立监督,不能写成所有退出统一钩子。
- status仅idle/running;runMaintenance占用true idle期间公开仍idle,whenIdle等待当前全部活动且不是某一输入结算证明(`runtime-types.ts:129`、`:214`–`:231`)。执行中的Tool内等待本Agent whenIdle会自等,动态装配应先pending,批次结算后idle维护,保护inbox。
- Tool真实hook名称是复数`tools/pre-execute`(allow/deny/cancel/ask)、`tools/execute`(around)、`tools/post-execute`(accept/replace/enrich/block)、`tools/result`(最终只读emit),见`packages/core/tools/src/events.ts:8`–`:49`。around wrapper只能调整signal,调用identity保持不变;结果通知失败被包含,不能当持久化ACK。
- 同批可并行,非并发安全的exclusive调用形成屏障;取消停止补充并排空已启动调用,跳过调用补错误保证配对,模型结果按序结算(`packages/core/tools/src/batch.ts:1`、`:48`;`pipeline.ts:105`)。LUBAN物理原操作是否停止仍看原执行器回执。
- Tool必须定义output.schema/render,execute返回canonical lossless-JSON。成功结果value明确只在execution本地,不进durable events(`packages/core/tools/src/contracts.ts:15`、`:26`、`:324`);D2需把原结果持久化,不能只凭DSH日志断言收齐全部业务原件。

## 4. Session读取、落盘与压缩的具体约束

Session.append是同步内存提交,持久化异步buffer,监听失败不会推翻已经接受的事件(`packages/core/session/src/index.ts:764`)。正确durability入口是`ctx.sessions.flush(session)`,等待所有listener成功并返回是否至少一个listener参与;false不能作为已有持久化后端证明(`:1330`)。

采集桥可在原writer flush成功后固定seq cut,使用`ctx.sessionPersistence.open(id,'read')`返回handle,`handle.read(offset,length)`分页读取,再close。read句柄可与单一writer并存,不能调用flush;存储append resolve仅保证该backend实例可见,只有writer flush承诺崩溃后耐久/跨进程物化(`packages/session/session-persistence/src/handle.ts:8`、`:45`、`:80`、`:88`、`:104`)。新代码不要直接用Session.snapshotEvents/ownEvents,它们已deprecated且禁止新增调用(`packages/core/session/src/index.ts:722`、`:739`)。

压缩检查安全范围,不能拆开Tool call/result配对(`packages/compaction/compaction-basic/src/region.ts:349`)。摘要以surface replace写新事件,并用sourceEventSeqs追溯start、summary和被遮蔽原事件(`:507`);原日志仍在。手动compactNow使用agent.runMaintenance、结束flush(`packages/compaction/compaction-basic/src/index.ts:407`)。自动压力在pre-step触发,context-overflow在request-error恢复(`:157`、`:213`);业务不能用自定义字符截断代替此组合。

## 5. 可选插件与分工落点

`@deepseek-ai/dsh-plugin-manager`是profile级插件/bundle安装启停控制面,硬注入loader/profileContext,不是每Session工具装配器(`packages/boot/plugin-manager/src/index.ts:312`)。其官方README `:15`写明变更影响该profile全部会话;启用状态不等实际加载成功、HMR关闭时需重启。LUBAN任务按目录装配应走agent.ctx本地注册及释放,而非每个任务安装npm包/切profile。模型侧plugin_manager工具不是LUBAN机器人任务必需能力,base默认禁用该tools行,SDK overlay已显式启用,因此实际sdk profile不能笼统说默认禁用(`packages/bundle/base/cordis.patch.yml:16`)。

按需类别:文件/终端/搜索、MCP接入、PTC执行器、Office Skill、goal/todo/workflow/jobs、Web/ACP/UI、遥测/SQLite搜索、profile编辑和安装管理。它们按应用需要选择;不要在总体架构图把每个Tool或provider都提升成一台服务。base虽默认挂某些插件,不等它们是LUBAN每次任务的必需前置。

- A1:选择并固定应用组合、接SDK/Session生命周期,替换原模型循环;不复制DSH Loop。
- A2:可信LUBAN插件按agent scope注册Tool/Skill provider/prompt贡献,原生resolve后读回准确集合;动态切换依原batch/idle维护。
- A4/D1/D3:新证据桥负责受权observe/read/flush和durable cut,采集关联原生seq/调用身份;SDK缺端点显式建设。
- B1/B2:提供业务Tool定义、canonical输出及真实handler,程序和Capability结果先回程序,再配对外层DSH Tool;不可在hook暗发物理Tool。
- C1:维护Skill/手册正文和资源版本,provider从批准目录供给,保原生skill({name}),不增加同名参数合同覆盖它。
- A3/B3:需要时装原生子代理provider,另由Agent持有仿真assignment/进程/GPU与停止核验;不将spawn/fork当资源隔离。

## 6. 本轮验证与剩余项

新官方归档来源已读,旧快照SHA已核;本文全部显式源码引用已逐文件与新树比较,并按新行号重校。上述结论来自实际源码/manifest/patch回读,未启动DSH或调用模型。包安装、LUBAN插件、Python桥、动态更新和设备联调均未执行。

## 7. ce7073相对f3803的本轮实质差量

对第1–6节主干引用的34份文件逐字比较:29份相同,5份改变。此计数只覆盖这些引用文件,不冒称整个仓库只有五处变化;本节另回读SDK新增query文件、protocol types与server package.json。相同范围包括Agent/Loop、Tool schema与流水线事件、Session/持久化/checkpoint、Skill/provider、LLM注册/计量、Compaction实现及子代理主干,因此上述内核行为可由新树直接支持。

1. `packages/sdk/server/src/server.ts:299`新增`query(params)`,wire `session/query`见`:504`。识别可用原生命令则调用commands.execute,返回`kind=command`及execution;否则原文走prompt并返回`kind=prompt`。并非通用任意内部RPC,也不新增steer/cancel/history/read/flush端点。命令识别白名单在`packages/sdk/server/src/query-input.ts:14`:无参数compact、显式permission、plan、goal(含注册别名);不认识的命令作为普通prompt。已识别命令执行失败不降级成prompt。
2. `packages/sdk/server/src/query-activity.ts:10`新增命令活动观察,通知`session.query.completed`关联commandId/finishReason/finalResponse(`:154`);query的命令ACK不等全部活动完成。它按Agent/goal事件追踪,不是LUBAN物理结果确认。SDK服务新增query相关支持文件;`packages/sdk/server/package.json:40`新增commands/goal的peer引用;`packages/sdk/protocol/src/types.ts:98`、`:198`、`:213`提供query入出参/通知/wire类型。新增依赖装配需按新构建验证;本轮未执行。
3. `packages/bundle/sdk-app/cordis.patch.yml:26`明确启用`tool-plugin-manager`;base的tools行依旧disabled,SDK overlay覆盖该值。LUBAN机器人组合如要关闭这项profile管理能力,必须显式配置并查最终树,不能照旧口径假定没提供。
4. `packages/bundle/base/cordis.patch.yml:297`为tool-fs加入`applyPatch: false`,是新增可选apply_patch工具的关闭配置;不改变Tool核心分发合同。`packages/core/system-prompt/src/index.ts:148`、`:158`增加TOOL_APPLY_PATCH/TOOL_SCHEDULE排序常量,本表相关后续行号+2。
5. `packages/boot/plugin-manager/src/index.ts:903`改进GitHub预检network/timeout的安装日志关联,以requestId发install-log;未改变它属于profile控制面的边界。SDK仍不能由“插件可安装”推断LUBAN可信插件已安装/认证/联调。

结论:R8应使用ce7073的实际组合与SDK新query能力更新版本说明;核心模块仍按十个聚合框展开,不能继续写“官方HEAD未核”或只列旧SDK六类方法,也不能由query/compact支持倒推出业务证据桥已经现成。
notes/2026-11-02-real-task-paper-policy/task-origin-correction.md
# 任务来源纠正:R208、R204与此前Hub任务

2026-11-02,Asia/Shanghai。仅回读既有本地记录与OV资料;本轮没有访问线上任务数据库、业务查询API或浏览器会话,没有任务下发、模型调用、训练、仿真/机器人控制或部署。本文是纠正建议,主代理负责回并正式稿。

## 结论

用户纠正成立:R208是P13具身自进化(RSI)项目的空间供给只读设计推演,不是线上业务任务;R204是该项目实际发生的开发仿真抓取试验,经过Agent本地启动入口,不能用它替代用户所说“之前从Hub下发的任务”。“真实发生过的运行”与“线上真实业务来源”必须分开。

本轮尚未定位到用户指的那一条更早Hub任务的具体Mission或业务回执。不能据此声称没有线上任务,也不能声称已查过线上数据库。现有技能文档证明有Hub部署工单及World/Hub任务派发接口,但接口存在、经生产Hub访问,均不足以证明某次执行来自生产业务需求。

## 可定位证据

下列P13/P15均相对`01-项目-projects/`;技能路径为实际机器级文件。历史文档只支持其所记录的范围,不替代当前部署核验。

| 对象 | 原文与位置 | 能支持的性质 |
|---|---|---|
| R208 | P13=`13-具身自进化-embodiedevo`,`notes/development-2026-10-29/R208-spatial-rehearsal.md:1–3,17–23`;`R208-unified-spatial-assessment.md:1–3,22–30` | 标明“只读核查”“建议,不是已经跑通”“不是已实施方案”;属于RSI能力分析,不能作为业务执行样本。 |
| R204 | P15=`15-Agent技能工具钩子-skill-tool-hook`,本目录`task-dispatch-evidence.md:41–48`;其底层本地运行回执为P13 `notes/development-2026-10-29/R204-deployment-and-live-run.md:19–27` | 有实际仿真运行,但原脚本调用本地Agent `start_execution`。既有取证已核目标`127.0.0.1:8200`与`POST /api/mission-plan-execution/start`,未证明经World/Hub投递。本文未重新SSH读私有运行原件。 |
| 10月16日任务操作记录 | `/Users/admin/.agents/skills/luban-hub/references/mission-walkthrough.md:12,116–120`;`materials-mission-ops.md:93–100` | walkthrough明确“我们是后者”即本地自建direct;手册记`api-smoke-test`完成建任务→挂料→建plan→generate。只证明本地接口冒烟范围,不证明Hub派发或业务完成。 |
| Hub服务部署工单 | `/Users/admin/.agents/skills/luban-hub/references/hub-api.md:16–40`;`/Users/admin/.agents/skills/luban-robot-onboarding/references/deploy.md:9–30` | `service-operations/create`是deploy/restart等服务运维,回执`operation_id`形如`svcdeploy_<hex>`;不是机器人业务Mission。技能含10月15日部署分支记录,但本文未定位具体工单ID及原始业务回执。 |
| World/Hub任务派发能力 | 本目录`task-dispatch-evidence.md:16–29`;`/Users/admin/.agents/skills/luban-hub/references/mission-pipeline.md:27–39` | World创建/调度Mission,Hub可受限转发至Agent。属于实现/契约依据,不是某次历史业务投递的发生证据。 |

检索先按`luban-kb-query`执行`ov find "Hub World 下发任务 mission 实测 2026-10-16"`,并全文读取命中的`viking://resources/workspace-docs/source-archive-20261021-cb99abd94cdf/dingtalk-originals/documents/f12f0e8d36c56be0d6c06313f18abd7a/World_自动调度技术设计.adoc/4._Agent_服务设计.md`。该页是改造设计,列拟新增执行器及迁移要求,不能充当已派发任务的运行证明。

本地有限补检覆盖项目STATUS和运行notes中的Hub/World、dispatch-mission、service-operations、operation_id等关键词,排除代码副本、浏览器/凭证目录、大规模会话恢复副本;另检查Hub三个mission参考文档、部署参考文档及`original_doc/2026-10-26-luban-task-sequence/SOURCE.md`。后者明确只存源码,不含用户任务或运行数据库,因此不据此补造历史任务。

## 尚待定位与正式稿修订建议

1. 将R204统一标为“RSI开发仿真试验/真实运行样本”,不要继续写成用户指定的首批线上业务样本。R208仅作为能力与供给设计证据。
2. 用户所说此前Hub任务目前标“待定位具体任务”。要判断它是否线上业务,需要原Mission ID、当时需求/发起来源、World及Robot、派发与Agent受理关联、模式(仿真/真机)和结果回执;联调/演示与业务来源分别记录。仅命中生产Hub域名不足以判定。
3. 暂不把已知Hub运维工单、direct接口冒烟或RSI试验归并成那条业务任务;不从本轮未找到推导任务不存在。

验证:本文引述处均已回读相应原文;未改正式设计、产物或P13文件,唯一新增文件为本文。未执行业务运行验证。
notes/2026-11-02-hub-task-audit/live-world-task.md
# World现场业务任务与Agent记录核对

2026-11-02,Asia/Shanghai。用户恢复Hub登录后,经同一已登录浏览器只读查询。未提交、启动、取消、重放任务,未操作模型、仿真、机器人或部署。

## 本次核实了什么

已核实一个正式系统中发生的World业务链路样本:**手臂装配搬运**。它不是R204/R208,也不是本机接口冒烟。不能确定就是用户此前所指的那条旧任务;这里选择它作为有具体业务参数、能对应Agent记录的接入样本,而不是宣称已找到那条特定历史任务或完成物理复现。

| 项目 | 只读记录 |
|---|---|
| 原任务 | `mission-dashboard-e649f1e325f5f28dd5ede978a297dd5f` |
| World | `WORLD-BEIJING-DEMO-01`,Hub登记环境为lab,不能写成已核商业生产订单 |
| 发起来源 | World任务`mission_source_type=world`,任务规范`creation_source=MANUAL`;未核发起人的身份 |
| 原目标 | 将规范中的物料从一个工作台的S4移到另一工作台的S1;位置和物料有准确ID,不是模型自行编造 |
| 机器人 | `0930-搬运-1`,`5474ba96-434d-4b56-886a-32866dddb532`;Hub登记`runtime_kind=real`、`execution_system=external_linkerbot` |
| 原创建时间 | `2026-11-02T07:26:43.923196Z`,北京时间15:26:43 |
| 原系统结算 | World为`SUCCEEDED`/“已完成 · World 统一结算”,完成时间`2026-11-02T07:30:02.062259Z`,北京时间15:30:02 |
| Agent对应记录 | 同Mission ID、World、world来源、S4/S1位置、原创建与完成时间;状态`SUCCEEDED`、说明“搬运完成”,程序步骤数为0 |

程序步骤数0只描述列表投影;不能推断现场没有执行动作。Agent规范还保留`external_http_request.request_format=20260930`,但本次没有取得底层原始派发请求、控制器受理回执或传输配置,不能由这个字段断言现场最终采用HTTP而非其他实际配置通道。

## 查询覆盖和接口差异

通过Hub World代理调用只读`world-missions/list`:北京World本次接口可见802条,返回`has_more=false`,其中14条创建于10月15日以后;昌平World本次接口可见0条。以上不是未删除历史和全系统数据量,也不是802次物理成功。北京列表中没有匹配`lingfei-4090`作为分配/执行机器人的记录,不影响其他机器人已有业务任务的事实。

该搬运Agent的OpenAPI标题为`LUBAN Lightweight Mission Agent`,公开轻量任务列表。尝试full Agent详情和程序执行历史接口得到405;按已核轻量接口以任务名称查`/api/missions/list`得到200及上述同任务投影。按任务ID填keyword先返回空,因为该搜索不保证按ID匹配,不能据此说任务不存在。

后续再次读取该Agent时两次返回502,Hub未能联系上游;本轮没有重启或绕到写接口。此前200观察与后来的不可达分别保留,不能将一次成功查询写成持续在线,也不将后续502写成任务失败。World单任务get及目录查询仍返回200。

实际使用的只读路径:

- Hub:`POST /hub/api/v1/world-nodes/list`、`robots/list`、`robots/get`。
- World:`POST /world/api/v1/world-missions/list?world_id=...`与`world-missions/get?world_id=...`。
- Agent:`GET /robots/{robot}/openapi.json`与`POST /robots/{robot}/api/missions/list`。

没有调用会刷新执行状态的`query-mission`,没有签发新控制许可。本次经Hub读到记录,不等于证明当初派发一定经过Hub Relay;原始dispatch请求的具体通道仍未核。

## 业务完成记录不等于已核物理效果

World保留`world_completion.method=agent`、`results_confirmed=true`,但本条完成合同`slots`及`rules.slots`均为空;确认记录`slots=[]`、`snapshot=""`、`execution_stopped=false`。这些字段支持“系统结算成功、Agent报告完成”,不足以独立证明物料实测进入目标槽位、保持稳定或设备已停止。false也不能单独证明设备仍在运动;空快照不能证明所有原录像都不存在。

2.0不改写原SUCCEEDED历史。归集记录另行标明:物理效果未独立核验、停止证据未提供、原始派发/控制/媒体待补。该样本可验证任务接入、关联和资料类知识提炼;仅凭本次记录不能产出“已验证搬运程序”或训练用物理成功标签。未来任务应按原目标补可测判据,不能给历史空合同补造测量。

## 对设计的直接改动

World任务来源和实际执行系统分别绑定。外部执行器继续负责其原任务,保留原身份、授权、查询取消和回报,不因接入2.0就让DSH再执行一次。只有实际接入Framework/RSI并装配DSH的任务,才填写DSH会话、生成程序和Stage经历;没有这些经历时标不适用,不补造ID。

该业务将来迁入RSI前,须先确认物料、位置、搬运和完成核验的真实能力合同,并准备实际可运行的隔离仿真场景。World物料目录中的SIM字样、Hub机器人登记为real、SimService存在,分别都不证明该任务已经有可复现的数字场景。迁移前保留原执行路径,后台可先用原记录分析资料/协议问题;不重跑现场补证据。

独立源码分析见[业务接入与四方向修改依据](live-task-design-impact.md)。其中固定World源码不覆盖当前统一结算完整实现,不能据旧源码给当前服务定漏洞或猜测精确结算规则。

## 回执保存与性质

原始业务数据只保存在本机私有审计目录`~/.local/state/luban-harness/project15/hub-task-audit-20261102/`,未复制数据库或802条业务正文到项目/HTML:

- `world-beijing-page1.json`:实际World列表的选定字段,SHA256 `468605ec27c9c0e924decbff66a7ca1fd828cfa23dfcc0580583bb672dd0993e`。
- `live-world-agent-sample.json`:World单任务、目录、昌平列表和一次Agent502的实际工具返回。
- `live-agent-sample-read2.json`:另一次Agent502。
- `agent-success-observation.json`:从此前200工具输出摘录的明确观察,**不是原HTTP字节**;不把后来失败的读取回执改写成成功。
- `manifest.json`:上述文件及前轮Agent本地元数据的文件摘要。目录无Cookie、token或密码。

项目正文只保留可定位业务摘要和证据范围;原任务源、入口、执行环境及效果判定仍分别记录。
CURRENT-ISSUES.md
# 当前问题与设计差额

2026-11-02 · 项目仍处于design;当前代码与旧方案差异按本轮取证分别记录,设计补齐不等于产品修复。证据和独审放在[本轮取证目录](notes/2026-10-29-dynamic-runtime),不能用页面检查代替业务验收。

## P15-RT-001 · 资产发布与任务实际装配没有完整合同

- **现象**:2026-10-29用户要求数据库动态加载Skill/Tool、入口录入与版本控制,旧总图没有准确版本、发布到装配及生效回执链。影响DSH注册与任务可用集合。
- **状态/负责人**:未修复;Lead负责设计整合,实施由A2/C1/C2/B1负责,design未确认。
- **原因/证据**:DSH有原生register/SkillProvider,但没有业务资产DB/装配事务或本项目SDK动态端点;见[dsh-runtime-evidence](notes/2026-10-29-dynamic-runtime/dsh-runtime-evidence.md)。
- **实际处理**:本日已分题读DSH/RSI、写运行时设计和P6协议;独审发现创建幂等域、维护输入顺序与数据指针缺口,直接修订正式稿;未执行业务实现或数据库操作。
- **拟修复**:不可变发布+准确装配、可信插件桥、安全边界、desired/applied与原change恢复。尚未形成产品已验证修复。
- **验证/残留**:本轮仅文档/图和独立审查,验收回执后补;动态注册、消息保全、撤回竞态及多实例租约需实施验证。

## P15-RT-002 · 程序持续变量被误当成可持久恢复状态

- **现象**:旧图缺程序环境;用户问Framework执行时动态程序和历史变量怎么保留。当前同TaskLoop globals可留,但locals不留、异常前修改不回滚,重启不恢复任意堆对象。
- **状态/负责人**:未修复;B3主责程序环境与状态合同,A1/A4管所有权和恢复,D1/D3管关联。
- **原因/证据**:Agent bf096285持续子进程/exec与受限ResumeState是两套机制;Framework39445251执行结构化Stage。见[program-env-evidence](notes/2026-10-29-dynamic-runtime/program-env-evidence.md)。
- **实际处理**:本日已回读源码/测试源码但未运行测试;正式稿区分live/局部/纯数据checkpoint/历史观测;补程序API、环境代和恢复时序。
- **拟修复**:运行时拥有程序环境;跨revision重建代码、只转交显式数据;独立纯数据检查点不放宽原业务恢复绑定;原操作先对账。尚未形成产品已验证修复。
- **验证/残留**:尚未验证环境重建、状态schema第一版、迁移、隔离和unknown恢复;现有产品行为继续以源码和真实回执为准。

## P15-RT-003 · 装配维护回合与业务生命周期可能相互误伤

- **现象**:在变更Tool内部等待idle会等待自己;直接注销在途Tool会破坏注册身份与后处理。维护回合结束如果沿旧TaskLoop回收路径会丢程序变量。
- **状态/负责人**:未修复;A2/A4主责原生边界,B3配合环境所有权。
- **原因/证据**:DSH pre-step在完整batch后,reject可结束turn但已claim输入须保全;SDK没有pause热装配端点。见[maintenance-boundary](notes/2026-10-29-dynamic-runtime/dsh-maintenance-boundary.md)。
- **实际处理**:本日补读9份原生文件并改为PENDING→批次结算→输入保全/reject→idle维护→读回→可信续办;未运行DSH。
- **拟修复**:登记后关闭直接唤醒、保留排队输入,维护与业务取消分开;准确回执后续办再开门。尚未形成产品已验证修复。
- **验证/残留**:维护消息竞态、投递去重、崩溃对账和销毁顺序需真实实施验证,不能称原生已保证跨DB/Session原子性。


## P15-CAP-001 · 程序去掉Action,改为直接Capability接口

- **现象**:2026-10-29用户明确要求去掉程序Action,控制最小到原语;旧目标仍以五动作固定映射,不能满足此方向。
- **状态/负责人**:部分旧判断已过期,当前只读复核中;RSI 15cf94a5已有step(Capability)路径,旧“仅五Action/需新RPC”不能继续作为2.0默认。Lead整合,仍design;新运行时与后续仿真/数据建设不因现链存在而视为完成。
- **原因/证据**:当前Agent bf096仅准入step(ActionSpec),Framework394已有generic Capability分支/Gateway/parent owner但缺独立直接RPC/完整原语合同;旧CancelStage会结束父任务,原语进度ACK与终态不可混同。见notes/2026-10-29-direct-capability两份取证及hash。
- **实际处理**:本日已两题并行回读、直接重写四稿和P9;独审查出进度ACK生命周期、权威串行主槽、binding延续三缺口,已在正式稿修正。未改产品、未执行服务/数据库/机器人。
- **拟修复**:具名Capability客户端及JSON回调、新直接调用协议复用Frame任务/网关/后端、原语descriptor和手型/资源/停止全链;程序显式plan/execute。尚未形成产品已验证修复。
- **验证/残留**:本轮仅设计/静态图文及独审;真实RPC、active调用/unknown、取消/实际停止、计划owner、手型/原语模式和环境恢复需后续实施验收。旧五Action作为历史取证保留,不自动兼容或删除原未决记录。


## P15-SIM-001 · 仿真并发程序试验与实例隔离缺少接入合同

- **现象**:2026-11-02用户要求用仿真并发积累经验/模板,旧图只画单个执行环境,没有试验批次、worker、实例资源与证据归属。
- **状态/负责人**:未修复;Lead设计,B方向接执行与仿真适配、A管受管运行时、D管试验记录。
- **原因/证据**:Sim模型评测和Agent程序执行是不同控制路径;当前代码多实例/复位能力与限制由本轮simulation-evidence核对,不能拿evaluation.freeze当程序试验接口。
- **实际处理**:2026-11-02开始只读取证;旧四稿/四页已冻结。没有启动仿真、模型或修改产品。
- **拟修复**:试验规格→资源分配→独立Agent/Framework/Sim worker→逐案例运行→证据封存;并发由实际容量与隔离程度决定。
- **验证/残留**:本轮只设计;多实例独占控制、恢复、采样和并发资源验收待实施。

## P15-ASSET-001 · 经验/程序保存、筛选与确认混在一起

- **现象**:用户指出沉淀后怎样筛选/确认未定;旧方案只有“独审发布”一句,缺候选来源、适用范围、验证方法和最终确认责任。
- **状态/负责人**:未修复;C负责知识资产流程,B负责试验与效果,D留完整证据;确认政策待用户审阅。
- **原因/证据**:当前RSI已有Lesson/Procedure保存读取采用及部分审核发布接口;具体可复用/欠缺范围见本轮rsi-delta-evidence,不重新设计第二套存储。
- **实际处理**:2026-11-02开始核原接口与新筛选流程,未变动经验库或发布内容。
- **拟修复**:来源封存→归并候选→独立核依据→按类型验证→策略自动确认/例外人工→更新唯一current发布→新任务读取采用→效果回流;保存不自动共享,仿真范围不扩成真机有效。
- **验证/残留**:确认策略、评测案例与实际采用效果尚未验证;失败/未知原件保留。

## P15-DATA-001 · 一次会话跨DSH和物理执行的数据没有完整归集合同

- **现象**:旧方案只有关联索引,缺DSH真实事件/持久化、断连补采、压缩关联和会话与任务结束的区别。
- **状态/负责人**:未修复;D负责归集,A接DSH原生持久化/生命周期,B交执行/观测原件。
- **原因/证据**:DSH原生消息/事件历史可复用,SDK和持久化可达性、落盘确认与事件通知非同义,见本轮dsh-data-evidence。
- **实际处理**:2026-11-02只读核DSH本地源码并核远端,未运行/升级DSH或采集真实会话。
- **拟修复**:DSH独占消息权威;Agent持任务/程序/调用/操作关联;Framework/Sim持真实测量媒体;各源游标、持久化确认、幂等关联与缺口/未知显式化。
- **验证/残留**:SDK桥、断连补读和完整性判定需实施;不把SessionEnd等同物理停止或数据完整。

## P15-VIEW-001 · 直接Capability主图误删全系统与贯穿案例

- **现象**:2026-10-29用户指出主图只剩Agent/Framework局部,World/Hub和原杯子贯穿任务过程不见。原因不是业务职责改变,而是本轮用局部运行时图替代了全系统主视图。
- **状态/负责人**:本轮修订完成,待用户审阅(设计表达);Lead与图稿作者修订,独立审查者复核。上一轮的几何/箭头核验通过不代表用户接受图形表达;本轮已将服务、服务内模块和流程融合为单图,独审和静态检查不代替用户认可,产品边界仍按直接Capability目标。
- **原因/证据**:旧V6主文/overview.json保留World、Hub/Asset/Sim与杯子A→B案例;direct-capability页面作者把首图换为12节点局部图并移除了旧全图,读者无法看出系统交接。见本轮boundary-evidence.md和旧冻结版本。
- **实际处理**:本日保留上一版四稿/HTML,直接回并四稿全系统职责、12步例子、外部关联/分工;主图改完整服务/内部模块/信息流,局部图留运行时页;图文独审修了保护基线与两条箭头语义:已有损坏不等于新增损坏;用户目标落任务模块,对象明确交任务,真实报告与ACK分两向。新系统v2和杯子v1静态/原生视觉与独审通过;未改产品或部署。
- **实际修复与范围**:仅文档与HTML/图稿,未形成产品实现;不覆盖历史图,未执行页面/DOM。最终回执见notes/2026-10-29-system-example-restored/delivery-receipt.json,设计表达修复不表示产品实施或现场成功。
- **2026-10-29旧判断更正**:用户继续指出系统图与12步骤卡脱节,不接受把服务模块与流程拆开。旧“设计表达已关闭”仅对应上一轮静态/箭头修复,不代表需求验收;本轮改为服务外框、固定模块、同一杯子任务的编号与交付信息落在模块连线上,移除主页面第二张步骤卡图。取证/图/评审记录在notes/2026-10-29-service-flow-integrated,未改业务协议或运行机器人。
- **验证/残留**:杯子为目标流程实例,不是本轮成功实测;新CapabilityRPC、核验支持和现场效果仍待实施。旧核验器不能保证任意杯子验收,已有把手损坏与不新增损坏判据分开。页面41/41静态、91链接、8/8纯语法、两张原生PNG目检;不声称HTML/DOM交互验收。

- **P15-VIEW-001本轮交付补记(2026-10-29)**:同一主图为27个固定模块/41条实际信息流;编号1–12在箭头,不再显示十二步骤卡。独审修正了所选环境串接/真实后端反馈/合同目录来源/直接输入/核验语义和标签遮挡;12条双向SVG与元数据一致、15条关键路径核验通过。主页面与配套四稿同源,原SVG/PNG实际目检,无HTML/DOM/产品运行。最终回执notes/2026-10-29-service-flow-integrated/delivery-receipt.json;旧回执保留,需求审阅仍待用户。

## 2026-11-02 本轮设计核对与旧判断更正

- **P15-CAP-001**:旧“当前程序只有五Action、需另造直接RPC”已由Agent15cf94a5与Framework9f038c7源码否定。正式四稿改沿现step(Capability)/原Stage与内部相邻计划;2.0的DSH适配、动态装配/状态恢复仍未实施,不能据原链存在关闭产品问题。
- **P15-SIM-001**:已补批次/案例/独立worker、原环境API接线、初态读回、unsupported与unknown隔离;源码证实reset保姿态、seed非确定性、snapshot deferred。真实并发容量、隔离和程序试验适配尚未验证。
- **P15-ASSET-001**:已补来源归并、独立依据审查、类型验证、人工确认、CAS发布/索引和新任务采用。独审发现原publish的stage报告不适合非运行Lesson,已设计type-aware扩展,未改产品;共享采用需扩原曝光/归属证明,不套私有字段。确认政策待用户审阅。
- **P15-DATA-001**:已补DSH observe/read/flush/tree拟桥、游标/采集落盘、canonical原结果、seed/断连/多activation/压缩血缘和跨源封存;DSH官方今日HEAD核验失败,已读快照与最新未知分开。所有真实桥接和采集验收仍待实施。
- **实际验证**:56/56静态/77链接/50源摘要记录/6组纯语法,3张原生PNG目检与独审无开放P0/P1/P2;回执notes/2026-11-02-rsi-simulation-data。无页面或产品执行、无部署,不把设计审查当上述问题产品已修复。


## 2026-11-02 R3 评审意见回并(设计更正,非产品关闭)

- P15-RT-001/P15-CAP-001:用户指定运行端只读最新、每型号唯一current,后台汰换;补逐step current与发布受理线性化,变更先交回活动Tool再维护,不等自己的idle。在线修订继续,同Session;旧操作只按原身份核查。
- P15-RT-002/P15-RT-003:回源确认现persistent namespace可能残旧函数、TaskLoop finally会关闭进程;目标补代码generation/纯数据checkpoint、维护不误回收和按层恢复,未改实现。
- P15-ASSET-001:原“首版每条人工确认”建议已由调研后方案替换为策略自动发布与例外人工;独立验证器实际缺口不变,尚未接通。
- P15-DATA-001/P15-SIM-001:录像旧optional及NPZ非视频已核,不声称已发生丢录像;默认必采、严格试验ready后启动、结尾flush/hash覆盖、补件与物理结果分开;无限期保存已裁定。
- 当前证据/复核:notes/2026-11-02-review-revisions;核心时序九组、三图R3;未产品运行或部署,问题仍按现实现缺口跟踪。


## 2026-11-02 R4 实际任务与论文补证(不关闭产品缺口)

- P15-SIM-001:首批不再等用户另选抽象任务,沿真实R204原目标/来源及现有仿真数据集;R204实际本地start、未成功,World/Hub另核。补封存事件+游标补扫、唯一工作项CAS认领、429/物理未达标分流、隔离试验与完成对账;接线未实施。
- P15-ASSET-001:论文MCP原文支撑条件化经验/程序分型、潜在依赖回归、独立任务判据;正式稿补重复/冲突、证伪与普通失败分流、策略发布/撤回。生产撤回是本项目推导,不假称论文已交付。
- P15-DATA-001:现Portal数据集/episode/judge/包与COCO分开;新增用途资格、源snapshot/血缘分组/split/生成/导出及训练交接,不把视频/NPZ/网页曲线当完整动作监督。无限期保留不变,未训练。
- 来源:notes/2026-11-02-real-task-paper-policy与original_doc/2026-11-02-luban2-paper-policy;独审/静态与语法仅设计,实际吞吐/隔离/评价/发布待实现验收。


## 2026-11-02 R5 更正R4首批来源选取

P15-SIM-001/P15-VIEW-001:R4所称首批“真实R204”只表示研发实验实际发生,不能等同用户要求的线上业务任务。现撤回首批选取;R208是只读RSI空间推演。Hub历史具体业务Mission尚未定位;本轮只读当前Agent库,7条均direct,10月16日记录为接口冒烟,不能替代业务样本;Hub登录过期,未查Hub/World线上任务库或下发任务,旧技能direct冒烟/部署工单也不能替代业务证据。四稿新增业务用途/入口/执行环境独立来源标记,研发可作技术辅助不作生产验收。纠正证据notes/2026-11-02-real-task-paper-policy/task-origin-correction.md。

## 2026-11-02 R6 · 业务接入样本与执行路线

线上查询阻塞已解除,World搬运样本及Agent同任务投影已核,P15-SIM-001的“找业务样本”部分完成,不代表物理效果/原派发回执或仿真复现已验收。现有external_linkerbot轻量路径必须保留,不冒称RSI/DSH/Stage;空判据及媒体/停止证据按缺口保留,资料候选与物理Procedure分别验证。新增设计见四主稿和notes/2026-11-02-hub-task-audit/live-world-task.md。后续Agent读取502不是本次任务失败证据,也没有触发重启或重派。

## 2026-11-02 R7 · 图文、来源关联与当前源码修订

P15-VIEW-001本轮表达修订:服务/模块/流程同图,实际外部任务分支与目标DSH程序分支同时保留,资料Lesson可按证据独审,物理方法/程序再走隔离验证;用户内容审阅仍待定。独审P2-01强制source_run、P2-02一律仿真的图示均直接修并闭合;P15-DATA-001补source_task_ref与适用/缺失区别,产品接线仍未实施。R209“待开发”旧述已由当前源码/项目记录纠正,不等物理验收或DSH已接。详见notes/2026-11-02-service-flow-r7/delivery-receipt.json。WG排查按用户要求暂缓,无配置变更。

## 2026-11-02 R8 · 用户否定初图,恢复右侧分层和模块职责

P15-VIEW-001仍待用户审阅,不以静态PASS关闭:初版Framework下移和图内A1/A2被否定,最终v2恢复Framework右侧与分层,图按职责、分工按模块对应,DSH内具名展开并附放大图。P15-DATA-001/P15运行时接线仍待产品建设:新官方ce7073d的原生能力和Python SDK可达性已分清;P14/Q15明确prepare→首次prompt创建/原factory setup→followup、typed证据/局部释放桥,未实现。独审仅固定四稿/图,八项hash匹配,未HTML/DOM/产品/设备运行。
notes/2026-11-02-rsi-simulation-data/rsi-delta-evidence.md
# 2026-11-02 RSI 当前实现与 P15 旧方案差异取证

本文中旧P15文件行号对应`assets/versions/2026-11-02-before-rsi-sim-data/`同名冻结稿;当前根四稿已按本证据重写,不能用旧行号指当前正文。


本文仅回读指定本地源码与设计,没有运行产品、模型、机器人、HTML/DOM或服务,没有修改 P13 或源码。主代理已按 luban-kb-query 通过 OpenViking 查读旧运行手册;本支按该技能“已知文件、固定提交直接 REPO 回读”核对当前接口。源码存在不等于当前工作站部署、线上使用或物理成功。

## 结论

P15 不能继续把原子能力、反馈程序及经验保存/读回作为从零拟建。Agent 当前已经有 run() + get_observation() + step(Capability) 和同进程 namespace、多步真实反馈、精确程序修订、Lesson/Procedure 候选保存/读回/显式采用、任务模型输入输出和工具调用的持久记录。Framework 已有 Stage 的通用 capability 分支,可复用原执行和任务身份链。**旧 P15 的新 CapabilityExecutionService、具名 cap 客户端及“不采用 step”属于旧拟议路线;本轮应改为当前实际入口,不为画图新增 RPC。**

R209 六项新增能力、geometry/手部投影与消费者接线仍为设计,不能混入“已有原子能力”。World 新查询/提交也明确后置。本轮应围绕当前链补仿真批量、候选筛选和会话数据的可追查关联,而不是重建 Tool/程序/经验系统。

## 版本与证据范围

- Agent `code/LUBAN-Agent-RSI`:HEAD `15cf94a5f570b0c98e27855a51621d9ea34b7b24`,本次 `git status --porcelain` 无输出(干净)。
- Framework `code/.worktrees/r159-framework-integration`:HEAD `9f038c774875d6bd907d17271dd355c9e0c1c1b3`,同检查无输出(干净)。不读取原 `code/luban-framework-RSI` 的 WIP 作为本稿已提交行为。
- 以下 `A/` 为 P13 `code/LUBAN-Agent-RSI/`;`F/` 为 P13 `code/.worktrees/r159-framework-integration/`;`D/` 为 P13 `notes/development-2026-10-29/R209-incremental-design/`;`P15/` 为本项目根。行号来自本轮实际文件。

## 1. 模型 Tool、Skill 与知识入口

当前白名单是 **18 个基础 Tool(已含 skill)+ 1 个条件 experience_record**:task_read、observe_scene、execution_read、code_read、experience_read、video_read、history_read、program_read、tool_call_result_query、knowledge_search、knowledge_read、tool_search、tool_read、grasp_pose_compute、skill、verify_effect、program_validate、execute_code。只有 `mode=adaptive` 且 `private_experience_enabled=true` 才加入 experience_record。不能沿用“19 基础+1 条件”,也不能把原生 Skill 再加算一次。证据:`A/backend/luban/infra/bootstrap/rsi_task_tools.py:64–83,128–135`。

`tool_search/tool_read` 当前只负责已注册 Tool 合同;Lesson/Procedure 通过 `experience_read(query=...)`,知识手册通过 knowledge_search/read;不能把 Tool 目录解释成全局能力/经验执行目录。`rsi_task_tools.py:432–470` 明确该界限及未接同步索引的原因。

当前 `skill` 的实际 Agent 适配是 `build_guide_tool(guide_catalog)`,读取会话固定目录中的正文和白名单资源,不执行机器人。输入为 name、可选 version/sha256/resource/start_line/max_lines;输出含准确版本、目录、正文、分页完整度、资源表、can_execute_robot=false。证据:`A/backend/luban/infra/adapter/tools/rsi_agent_skill.py:21–31,75–91,169–193`。这证明当前读取与固定目录,不证明 P15 拟议的 DSH 插件数据库动态 SkillProvider 已安装。P15 动态设计的 `luban-runtime`、runtime_catalog_search/runtime_assets_update、逐任务数据库资产装配仍应单列拟补,不能冒称现 Tool。

## 2. 程序接口与实际调用边

### 2.1 保存和执行准确程序

`program_validate` 当前输入:source、reason、可选完整 stage_contracts,以及 private_experience_use;后者为 `{version_id,usage:applied|not_applied,reason}`。新增 stage_id 要交完整阶段列表,完成历史保留。`execute_code` 输入为空对象,执行当前任务已准入版本,不能让模型再传另一份源码。证据:`A/backend/luban/infra/adapter/tools/rsi_program_execution.py:18–44`。

子进程宿主已实现 get_observation()/step(action) 回调;持续 namespace 包含受限 math、print 等,循环按准入源码 exec 后调用 run() 或旧 advance()。这证明同子进程内 namespace 可继续,不证明跨重启恢复全部 Python 对象;旧 P15 task_state/独立纯数据检查点也不能写成已完成。证据:`A/backend/luban/infra/runtime/rsi_feedback_program.py:341–395,419–434`。

### 2.2 当前原子能力合同

公开调用为 `step({"kind":"capability","name":"准确能力名","arguments":{...}})`;等待为 `step({"kind":"wait","duration_ms":...})`,仍沿原Stage由Framework executor本地有界可取消等待(executor.py:166–174),不推进仿真、不证明已停,也不伪造wait Capability。`run()` 可组合多步和计算,宿主逐步记录并返回新观测,不强制每步回模型。当前正式随包说明:`A/backend/luban/resources/rsi/skills/program-authoring/resources/run-step.md:1–21`。

公开 StepReply 恰为 status、capability、arguments、result、error、observation 六字段;原始 call 另存。不能仅凭 status 或 truthy result 宣称目标成功。证据:`A/backend/luban/application/rsi/step_contracts.py:209–230`。

调用实际边:worker step → `rsi_feedback_execution` 构造 `kind=request_stage`、logical stage 与已解析 action → 原 StageLoop / FrameworkStagePorts.submit → 原 dispatcher.dispatch → Framework Stage executor 的 `kind=capability` 直接调用 `host.call_capability(name,arguments,scoped_token)`。证据:`A/backend/luban/infra/runtime/rsi_feedback_program.py:369–372`;`A/backend/luban/infra/adapter/rsi_feedback_execution.py:270–314`;`A/backend/luban/infra/adapter/framework/stage_ports.py:56–105`;`F/src/robotskill_framework/stage_execution/executor.py:68–94`。最后文件保留旧 read_state 等分支,不代表当前程序仍被限制为旧五动作。

`motion.plan-pose/plan-joints` 与 `control.execute-trajectory` 已显式分开;控制公开 arguments={},宿主只允许紧邻本次 run 成功规划并绑定内部 plan_ref,显式插入其他 step 或新 run 后不能拿旧计划重放;计划只用一次。证据:`rsi_feedback_execution.py:286–305,523–546`,配套 run-step 文案。P15 旧设计“同父任务跨 Stage 有效 plan_ref”不能覆盖当前更窄的宿主邻接规则。

## 3. Lesson / Procedure 保存、完整读回、采用与共享

### 3.1 已有在线候选保存

`experience_record` 公共输入为 kind=lesson|procedure、可选 parent_version_id、proposal;身份和实际可见来源由宿主生成,不让模型签发证据 ID。Lesson 正文包括 statement、recommendation、condition、observed_facts、environment_dependencies、revalidation_triggers;Procedure 包括 summary、parameter_schema(object JSON Schema)、preconditions、postconditions、recovery_branches,以及可选 basis_revision_id/source/stage_contracts。通常省略源码,宿主准确绑定现程序源文件及依赖,而不是只存一段经验摘要。证据:`A/backend/luban/application/rsi/experience_record.py:50–105,238–263`。

保存返回明确 `status=candidate,published=false,verification_status=unverified_candidate,storage_verified=true`,另报 semantic_status/vector_status;保存不是发布,索引排队不是可检索。unknown 保留原保存身份待对账、不另投。证据:`experience_record.py:722–738`;`A/backend/luban/infra/adapter/tools/rsi_experience_record.py:91–117,173–182`。仓库 docs/contracts/rsi-experience-store.md 前部“尚未接到真实经验工具”属于旧适配器说明,不能据此否定当前 bootstrap 已接服务的源码;同样源码也不能证明线上本轮已成功写入。

### 3.2 已有全文与来源读取

`experience_read` 输入含 query、kind、version_id、section=content|supporting|counterexamples、offset、limit;支持/反例 section 要准确 version_id 且不能同时搜索。证据:`A/backend/luban/infra/adapter/tools/rsi_task_context.py:96–108`。

当前 bootstrap 准确读取已保存版本、核 OV 正文与本地不可变版本一致,返回 portable_version、storage_locator、storage_verified;历史经验另走 read_recalled。证据:`A/backend/luban/infra/bootstrap/rsi_task_tools.py:1250–1340`。`portable_experience_read_view` 保完整 authoring content,仅消除重复相同 schema 和重复原件正文(refs 保留),不是“只有摘要”:`A/backend/luban/application/rsi/experience_read_view.py:12–43`。精确 schema 当前没有旧 P15 所拟 `view=program_template`,不能把此名当现有参数;也不能因为该视图未有就声称 Procedure 源码无从读取。

### 3.3 已有显式采用证据

program_validate 的 private_experience_use 绑定实际版本;宿主核本会话真实模型输入确实展示了完整 portable_version,内容、locator、来源均与已保存版本匹配,再保存 read_tool_call_id、read_result_ref、exposure_model_call_id、exposure_input_ref、模型响应与后续程序关系。证据:`A/backend/luban/application/rsi/private_experience_use.py:8–35`;`A/backend/luban/infra/data/sqlite/rsi_private_read_proof.py:105–146,270–322`。因此“搜索命中→读回→采用→改程序”应分别统计,不能统一计经验复用成功;applied 本身也不是物理有效。

### 3.4 已有共享发布底座,批量筛选闭环仍需补设计

原 `ExperienceService` 已有 register_candidate、validate_candidate、publish、withdraw 应用层路径。发布校验独立可信 verifier、准确经验 version+hash、独立 candidate verification;Procedure 另绑定准确 program revision+hash;purpose 为 simulation|field,并核 expected_head_revision。私有 owner_run 版本禁止原地 validate/publish。证据:`A/backend/luban/application/rsi/experience.py:135–161,439–538`。

所以缺口不是“再造一个经验发布服务”。需要补的是:从多个仿真任务中的私有版本派生新共享候选的受控流程;每候选适用范围和失败/反例;独立验证任务及真实证据清单;挑选比较、批准/拒绝/撤回的管理操作;批准后供后续新任务检索与采用的实际验收。已进一步回读装配:当前独立验证未配置,不能直接当成已打通的发布 API;详下一节。线上回执未核实。

## 4. 已有会话/执行数据,以及宜补的归集关系

Agent SQLite 已有 session_id↔run_id、step_id、config/status/revision;消息 sequence↔message_ref;模型 call_id/turn_index/input_ref/output_ref/state;Tool call_id↔model_call_id、step_id、name、arguments_json/hash、state、result_ref;Skill 会话固定目录版本和替换历史。输入与消息有不可变约束。`begin_model` 实际先归档 input_body,再保存该准确 input_ref,不只记 token 统计。证据:`A/backend/luban/infra/data/sqlite/agent_task_sessions.py:29–67,675–728`。

反馈程序逐步 call 记录 source/resolved action、program_invocation、前后 observation、status、stage_execution_id、feedback、checkpoint、host monotonic 时间,保存时关联 run_id、mission_plan_step_execution_id、program_revision_id;若保存失败保留真实 host_error。证据:`A/backend/luban/infra/adapter/rsi_feedback_execution.py:330–355,493–507`。程序版本与 source/contract 工件已有 SQLite 不可变记录:`A/backend/luban/infra/data/sqlite/rsi_runtime.py:200–210,303–305`。

建议新增的是**归集清单与查询关联**:实验批次/仿真实例/任务 run → 当前 Agent session/模型 turn/工具 call → program revision/逐步 Stage/观测/视频 → 经验版本/全文曝光/采用/独审/发布。沿原工件地址与 hash 引用,避免复制 DSH 全部消息另建第二真源。上述源码证明 Agent 自有任务账本,不证明外部 DSH 原生会话数据库、压缩事件、费用或完整多模态输入已有统一导出;需由负责 DSH 的取证支另核原生接口。

## 5. 与 R209 及 P15 的状态分界

| 项目 | 2026-11-02 性质 | 本轮设计处理建议 |
|---|---|---|
| step 原子 Capability、程序反馈循环、精确版本执行 | 当前指定源码已有 | 作为主执行链,不额外造 RPC |
| Tool/Skill/知识/历史读取及在线经验候选 | 当前源码已有 | 解释实际合同,补跨批次关联 |
| 独立验证、共享发布/撤回应用函数 | 当前源码已有;线上闭环未核实 | 复用,补实际候选筛选/发布操作和验收 |
| planning.scene-read/scene-update/contact-policy-set/held-object-attach/held-object-detach | R209 新拟五能力 | 写拟补,不能当现 Framework 已注册 |
| manipulation.configure-hand-drive、新六维手力投影、动态规划几何实际消费 | R209 拟补接线 | 写能力与消费者缺口,按后端说明 |
| 新 World 查询/提交 Tool、缓存/同步、逐步发布 Hook | R209 本轮后置 | 总体服务仍可展示,不能置为抓取前置 |
| CapabilityExecutionService、新 cap 客户端、task_state、数据库动态装配两 Tool | P15 10-29 旧拟建 | 不写已实现;直接执行旧路线应依据本轮裁定重写 |

R209 依据:`D/07-current-scope-without-new-world.md:1–3,23–37` 与 `D/08-current-complete-design.md` 第4–7节、`D/09-overview-and-review.md` 末句均明示设计未实施。P15 旧目标直接证据:`P15/2026-10-29-LUBAN-2.0-工具执行与程序复用协议.md:19,29,373–375,437–438,474`;动态装配目标 `P15/2026-10-29-LUBAN-2.0-Agent运行时与动态装配设计.md:78–98`。新稿必须将“当前、R209拟补、P15更远目标”三种状态分开。

## 6. 经验/模板筛选的最小建议(尚未实施)

1. 输入冻结为每轮真实程序、前后观测/视频和失败记录,经验保存回执只证明候选形成。
2. 从候选选 Lesson(条件方法)或 Procedure(可执行完整模板);读取准确全文和合同,分清机器人/手型/后端/坐标及任务条件,不按一次成功率机械排序。
3. 多实例仿真产生独立验证任务,结果绑定原经验和程序摘要;保留失败、无效和未知任务,不把离线语法检查当物理验证。
4. 复用原独审和发布函数,发布 simulation 与 field 分开。新共享候选保留私有源谱系,未批准不混入共享可用快照。
5. 后续任务完整读回批准版本,再以本轮参数/当前能力合同 program_validate 生成新的 ProgramRevision,记录实际采用,真实执行后比较物理目标。禁止把旧任务身份或内部 plan_ref 搬进模板。

这里的多实例批次 owner/并发准入、审核操作界面及模板选择策略是待设计内容,本稿没有核验其已存在。

## 关键文件 SHA256

下表由实际回读文件字节计算;用于固定本轮证据,不代表部署摘要。

|文件|SHA256|
|---|---|
|A/backend/luban/infra/bootstrap/rsi_task_tools.py|`15d6966c336ea6c6e5d9e9469c54fa539f56cbdd7e216e9ce7808d6b5ee4b078`|
|A/backend/luban/infra/adapter/tools/rsi_program_execution.py|`10be8e13c97bbe36f804813ec8c9ec938b2db7095ccc0721221a09b350b87fba`|
|A/backend/luban/infra/adapter/rsi_feedback_execution.py|`52574cb150db6ec6ee5877e4060f8bcf94b199882692a5587b5bccabeb6046ba`|
|A/backend/luban/application/rsi/step_contracts.py|`dd3490be13412249424832e60dd6042b12d9d1d1dc597a29bcd976e22be6bb77`|
|A/backend/luban/application/rsi/experience_record.py|`34464058d9ad72c6fca8610d80e778e8e7c5e412e31c5128d221fdb02ba70231`|
|A/backend/luban/application/rsi/experience.py|`b56ecd6962104cafe4392e03ccf17805051e1f2cc430bdaa10d73f7645e61fbf`|
|A/backend/luban/infra/data/sqlite/rsi_private_read_proof.py|`76e9e61ac2f21bee069ccae286876ec18fe2fc5933239a13d91338c4bc5c626f`|
|A/backend/luban/infra/data/sqlite/agent_task_sessions.py|`3ee86d0b668f2ce87e31ceb055c5c37797f14477f3dbff2c0b2b330d80acf84e`|
|A/backend/luban/infra/runtime/rsi_feedback_program.py|`dfb5f480b9ffe16b040cd0638100669ecc594ccb792e20a33b839561756ec44b`|
|F/src/robotskill_framework/stage_execution/executor.py|`6ac140db0e55da518816b8e15e6d5b34221b5e43364fd7fa619a3a83a8516523`|


## 增补:共享发布当前确有装配缺口

`ExperienceService` 的共享写策略只有 `shared_experience_write=true` 且 mode 非 frozen_transfer 时放行(`A/backend/luban/application/rsi/experience.py:600–604`);构造要求非空 trusted_verifiers(同文件164–186),验证要求 verifier_id 命中并且有 evidence_refs。它提供逻辑约束,不等同“已有管理员/作者/审核者角色权限端点”。

产品中仅找到两处 `ExperienceService(...)` 构造:

- `A/backend/luban/infra/bootstrap/rsi_private_experience.py:10–24` 把 independent_validator 设为明确抛错 unavailable,trusted_verifiers 是 unconfigured-private-candidates-only;来源导入也基于该构造(文件末尾 build_source_experience)。
- `A/backend/luban/infra/bootstrap/rsi_offline_author.py:32–49` 同样明确 independent experience validation is not configured,只把 register_candidate 交给离线作者。

本轮在 backend/luban 中搜索未见外部调用 ExperienceService.publish 或 validate_candidate;模型白名单也没有 review/publish Tool。因此**可复用原候选库、独立验证/发布/撤回函数和合同,但实际独立验证器、角色鉴权、受控审核发布入口、原子头版本处理的端到端运行仍待接线/验收**,不能设计一个并行经验系统,也不能说只需调用一个现成线上发布 RPC。无匹配只限定本次检索的 Agent 仓范围,不否定外部项目另有服务。

精确可复用发布方法参数为 `publish(version_id,policy,validation_ref,purpose,expected_head_revision,candidate_verification_ref)`;purpose=simulation|field。validation_ref 的报告需 schema_version=1、version_id、content_sha256、verdict=pass、可信verifier_id、evidence_refs。独立 candidate_verification_ref 需 verifier=independent_rsi_verification、verdict=pass、无violations、非空 completed_stage_ids/future_stage_ids、experience_version_id/content_sha256;Procedure另需candidate_revision_id/candidate_program_sha256。这些当前是应用函数/报告字段,**不是本次新造 HTTP 请求格式**。证据 `experience.py:135–161,454–538`。

## 增补:当前手部原语准确入口

当前执行能力是 `manipulation.hand-command`,程序按同一 step(Capability) 调用。`manipulation.plan-hand-command` 只是 nominal primitive 数据预演,不发物理控制,不是 hand-command 的必经前置,也不生成供 control.execute-trajectory 消费的机械臂 plan_ref。证据:`F/src/robotskill_framework/framework_capabilities/backend.py:377–378,929–1008,1014–1021`。

执行有两种当前分支:

- joint_targets 分支:验证 targets,要求 side=left|right,然后交原 transport.hand_command。
- 语义/具名姿态分支:side、hand_model、semantic_pose,由 `_parse_hand_motion_args` 解析 pose_name/keyframe/progress/phase;当前代码列手型 O6/L25/G20,经映射或L25原生primitive形成实际命令。不能仅据请求 hand_model 就宣称现场硬件已验证匹配,也不能把所有progress组合都描述为受支持。

证据:`backend.py:934–997`。plan-hand-command 的 joint_targets 路径返回 nominal_only 轨迹;语义预演不支持 keyframe/phase/progress,不能预演的视觉/力闭环会明确不支持(`backend.py:1022–1060,1085`)。当前源码没有依据把 P15 旧拟议 `manipulation.list-primitives/execute-primitive/plan-primitive` 写成已注册。R209 新 `configure-hand-drive` 也不替代当前 hand-command,它仍为拟补配置能力。

补充摘要 `A/backend/luban/infra/bootstrap/rsi_private_experience.py`:`6deb3b9e2830127b74bcf60910aefed0f81a7c028de6150381dce25468344952`。

补充摘要 `A/backend/luban/infra/bootstrap/rsi_offline_author.py`:`4fae1760bbc60b40ccdd5ee6a68178e05b1326c5d553edbbd2ad310e8d41e725`。

补充摘要 `F/src/robotskill_framework/framework_capabilities/backend.py`:`17bc05ce56c8925bdde7eff9b3559d81ffb47452f112d6076980dd365797240f`。
notes/2026-11-02-rsi-simulation-data/dsh-data-evidence.md
# DSH会话数据采集:原生证据与组合建议

取证日:2026-11-02(Asia/Shanghai)。性质:P15设计取证,未运行DSH、模型、HTML/DOM、产品、仿真或机器人;未修改上游原件/源码。此稿供主代理合并,不是正式知识库发布或已实现承诺。

## 1. 版本、来源与证据范围

本机指定只读原件 `original_doc/2026-10-28-dsh-upstream-latest/repo` 的真实origin为 `https://github.com/deepseek-ai/deepseek-harness.git`,HEAD为 `f3803c96974ad4a94195fb97e5c637e9c2a3afe3`。2026-10-29的 `original_doc/2026-10-29-dsh-runtime-upstream-check/SOURCE.md:3-8` 曾核到官方HEAD相同;该历史回执不能证明今日最新。

今日两次只读 `git ls-remote`(第二次指定HTTP/1.1)均失败:`LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443`。因此**2026-11-02官方最新HEAD尚未核验**。下文全部“已实现”仅指以上明确SHA的源码实现,不表示当前安装、已启用或部署。实施前必须重新核官方默认分支HEAD与本次涉及接口差异,再绑定该轮可复核版本;不要求永远固定f3803c9,也不自动升级。本次没有取得新的上游原件,故不新建dsh-source目录。

已按luban-kb-query执行OV语义检索“DeepSeek Harness session hooks SDK 历史持久化 事件”,返回主要为SDK周报和不相关模块;未把摘要当事实,转技能允许的指定REPO固定版本原文核查。以下 `R/` 均指上述原件repo;每条均有实际文件行号;末尾列本轮关键文件SHA-256。

## 2. 判断与职责划分

建议组合为:**DSH持有唯一消息/事件权威,Agent只保存任务与程序/能力调用的关联、采集回执和业务状态,Framework与SimService各自持真实执行/观测证据,RSI读取固定清单作研究分析。** 不重造Agent循环/子代理调度,不把消息正文另建为第二个可修改数据库。可导出带来源和hash的只读研究快照;快照不是另一消息权威。

“收到SDK通知”“DSH已刷盘”“业务操作有终态”“跨源资料齐全”“允许进入科研样本”是五件事,不能用turn/end或session idle代替。Agent关联结构、桥接接口和跨源完整性判断均是待建设建议。

## 3. 已实现的原生能力与实际可达性

| 采集对象 | 原生事实和准确名字 | SDK/API可达性及限制 | 证据(均为R/) |
|---|---|---|---|
| 消息与历史 | SessionEventMap是append-only source of truth;seq连续;Envelope为type/seq/time/data;消息是派生投影 | session.event通知携带完整事件;不是第二份消息表 | packages/core/session/src/types.ts:281-287、294-410、501-523;packages/sdk/protocol/src/types.ts:125-131 |
| 用户/模型/工具 | user/message、system/message、developer/message、assistant/message、assistant/attempt、tool/call、tool/result、request/header、request/context | assistant/message带组装输出和精确timed stream,attempt记录未产出surface message的失败/重试等settlement;不可仅采最后回答 | packages/core/session/src/types.ts:309-410 |
| 回合/步骤 | turn/start、turn/end(reason)、step/start、step/end | 可在session.event读;turn/end注释明确loop不在turn边界await flush | packages/core/session/src/types.ts:288-307 |
| 生命周期 | session/created、session/disposed、agent/created、agent/disposed;dispose是停止、drain、注销、移除live session、卸载scope | 上述内部生命周期不是全部SDK通知;session.status只有idle/running,不能冒称带dispose原因 | packages/core/session/src/index.ts:45-84;packages/core/agent/src/index.ts:150-188;packages/sdk/protocol/src/types.ts:133-173 |
| 运行中观察 | ctx.on('session/event')为post-commit fire-and-forget,监听器失败被隔离 | server逐条转session.event,且覆盖runtime所有session;接入需权限/租户过滤,不能原样跨用户广播 | packages/core/session/src/index.ts:66-84;packages/sdk/server/src/server.ts:154-178 |
| 持久历史 | SessionPersistence.create/open返回handle;read(offset,length)读连续前缀;read access不抢写锁,可与writer共存;flush才承诺崩溃后保留;close(writer)完成durability并释写权 | 这是DSH内服务,SDK JSONRPC RequestMap没有read/flush/history/replay;resume不是只读history,不能为补采调用resume | packages/session/session-persistence/src/handle.ts:9-14、73-116;packages/sdk/protocol/src/types.ts:176-185;packages/sdk/server/src/server.ts:272-294 |
| 历史API | SessionController.events按address/throughSeq/beforeSeq/maxMessages读冷态分页;observeEvent提供ready后续事件,不给snapshot、不激活Session,ready不证明存在 | 是DSH另一套Remote API,不能当作Python SDK现成方法;可桥接/复用,需核实际启用与认证 | packages/api/session-controller/src/index.ts:521-552;packages/api/session-controller/src/history/controller.ts:32-61;packages/api/session-controller/src/history.ts:123-139 |
| Tool门禁 | tools/pre-execute→approval→guard;guard只有deny/不改变;tools/execute为around dispatch;tools/post-execute可改模型投影或block;tools/result才是最终冻结结果观察点 | 是同进程可信插件ctx.on/ctx.tools.guard;SDK只有approval/request桥,不存在任意pre/post hook桥。post-execute修改不撤销已经发生的外部副作用 | packages/core/tools/src/events.ts:8-49;packages/core/tools/src/contracts.ts:348-391;packages/core/tools/src/pipeline.ts:190-229、336-409、475-499;packages/sdk/protocol/src/types.ts:187-208 |
| 原生checkpoint | 模型请求前、顶层tool body前、pre-step的flush;嵌套tool借外层durable call;失败不放行模型/工具副作用 | 插件存在不代表目标部署加载;最终idle/turn.end后仍需显式刷盘确认 | packages/session/session-checkpoint-policy/src/index.ts:52-82;packages/core/session/src/types.ts:296-301 |
| 压缩 | compaction/start、summary、end、prune;summary紧邻后续user/message replacement;sourceEventSeqs连接原始节点与压缩产物;原始append-only日志仍在 | SDK读事件可见,但历史补采仍缺SDK桥;保留原始事件和当次model-visible surface两种视图 | packages/compaction/compaction/src/types.ts:19-88、93-119;packages/compaction/compaction-basic/src/region.ts:491-508;packages/core/session/src/index.ts:981-999 |
| token | assistant/message.usage可选;compaction/summary.usage可选;inputTokens是不含cache的输入,cacheReadTokens/cacheWriteTokens分开;reasoningTokens可选 | 可以从session.event得到实际报告字段;未报告填unknown,不能填0;本次合同无货币cost字段,费用须单独价格版本/账单来源,推算费用标estimated | packages/core/session/src/types.ts:340-363;packages/compaction/compaction/src/types.ts:34-65;packages/llm/llm/src/types.ts:175-196 |
| 子代理 | 原生startActivation/sendMessage/listChildren/listDescendants;start/end按runId配对;fork仅继承parent最后一个turn/end前完整前缀,续聊不重新fork | SDK通知subagent.started、subagent.finished,finished明确仅in-process local;SDK请求面无任意spawn/fork/send。Python tree订阅通过收到的生命周期边发现descendant,不能证明冷态树完整 | packages/subagent/subagent/src/index.ts:142-166、257-318、407;packages/subagent/subagent/src/types.ts:78-96;packages/subagent/subagent-fork-in-process/src/index.ts:38-77;packages/sdk/server/src/server.ts:171-197;python/sdk/src/deepseek_harness/client.py:281-293 |

这里“持久化”有两层:Session内append提交是内存已承认;SessionHandle.append解析后有序可读仍只是best effort;SessionHandle.flush才承诺durable。JSONL后端源码声明按Session存immutable generation files,默认物理编码zstd(`R/packages/session/session-persistence-jsonl/src/index.ts:1-5、69、94-104`);不能把“JSONL”理解成可以安全直接tail普通文本文件。优先走逻辑read handle/API,不私自解析压缩文件或拿write handle做采集。

能力分层必须在交付中保留:

- **已实现(本轮SHA源码)**:原生append-only会话、事件/flush/读handle、Tool门禁与观察、压缩映射、原生fork/子代理和SDK实时通知。
- **DSH内部可接但SDK缺桥**:按seq读取/回放、显式flush水位、完整父子目录/activation runId、任意pre/post/result及dispose观察。SDK现有subagent通知甚至未携内部runId(protocol/src/types.ts:141-165),不能只凭同一个childSessionId区分多次activation。
- **LUBAN待建设**:跨源关联、持久采集水位、缺口恢复、异步op对账、研究快照完整性与权限/脱敏。不能将前两类源码能力当成本项目实现。

Tool pre/post/guard是可执行扩展点,不是自动持久化的同名SessionEvent。要审计策略版本与最终deny/approval理由,必须显式产出可定位的策略证据(或经DSH受控扩展记录),关联callId和原生结果;不要宣称原生tool/result默认保留每个hook中间判断。

## 4. 读取、断连补采和压缩关系

推荐在DSH内可信luban-runtime插件挂接原生观察与read/flush,再给Agent最小只读桥;Python SDK实时通知保留用于低延迟展示。两路读同一Session,按(runtime_instance_id, session_id, seq)幂等归并,只保存关联和采集水位;不修改事件。

**重要补充**:seed历史不会重新发布到session/event;resumed Session的seed含其完整已存日志,完整历史应从seq 0读取(`R/packages/core/session/src/index.ts:553-564`)。因此仅订阅SDK,即使主动resume成功也不等于补回原始会话。

1. 先建立live订阅并暂存通知,等ready(若用SessionController.observeEvent);随后读取当前固定cut C的历史。ready不证明Session存在,必须由history/read校验身份、header、格式和存在性。
2. 历史按固定C分页或handle.read(offset,length)补齐;验证seq连续、重复seq相同hash。再合并缓存中seq>C的live事件。缺失范围记录gap,不能靠wall-clock或“最后收到了turn/end”跳过。
3. 断连后保留原runtime/session与游标,不重新prompt,不新开替代Session。重新订阅,再从最后连续游标+1补读到新cut;冷态子Session通过原生parent/child目录补齐,不能只相信重连后的subagent.started。
4. 历史可读只证明已承认前缀;强durability确认须由拥有writer的DSH插件执行ctx.sessions.flush(session)并返回该次barrier覆盖的through_seq。采集者自己落盘与DSH刷盘分别记watermark;read handle不能flush写者。
5. 没有SDK history桥时只能把capture_mode标live_only,断连区间标unknown,不写“会话完整”。缺口补桥后可从原生持久历史恢复,不恢复模型供应商没提供的私有状态。
6. compaction不是删原始日志。留compactionId、start/summary/end seq、shadowedSeqs、replacement seq、sourceEventSeqs与当次request/header。不能把shadowedRange当简单数值区间,因为surface顺序改变后start可大于end(types.ts:107-119)。模型实际看见的surface与完整log分别供研究查询,训练样本不能把压缩后摘要假冒原始用户发言。
7. crash中未闭合turn/tool/compaction保留open/unknown;恢复修复产生的新事件按原seq续记,保留恢复前cut及修复来源。session/end-seed仅标历史和本生命周期分界,不是其他writer死活信号(`R/packages/core/session/src/types.ts:412-435`)。

上述步骤是拟建采集协议,未实现/验证接线。身份建议加runtime_instance_id与DSH source SHA、SDK protocol/serverInfo.version、SESSION_FORMAT_VERSION和storage revision,避免同名Session跨实例混合。协议版本必须从实际部署取得,不将本次源码常量当生产常量。

## 5. 同步、异步Tool与真实执行如何配对

- 原生tool/call为原始未解析arguments字符串;tool/result.message携callId,sourceEventSeqs指call事件;以(session_id, callId)配对并留turn/step。失败也保留error.code/name/reason和模型可见content。并行body完成次序不能由日志顺序反推:批调度可并发dispatch,但结果按连续model-order slots提交(`R/packages/core/tools/src/batch.ts:117-178、243-265`)。
- ToolExecutionSuccess.value是execution-local canonical value,明确不持久化到durable events(`R/packages/core/tools/src/contracts.ts:321-328`)。工具日志中的content可能被post policy/输出投影改变;不能假定采到tool/result就有全部原始数值或全部物理结果。真实Framework结果与大附件单独存原源证据,Tool只返回不可变op/artifact引用及必要模型投影;必要canonical字段通过可信插件的tools/result建立非消息证据,不把它再变成消息库。
- 对外部异步执行:tool/result若仅表示accepted + op_id,只闭合“工具提交调用”,不闭合能力执行。另建business op关联,执行终态只读Framework原始Get/Watch等回执,含source id、source seq、观测时刻和终态证据。后续poll/wait工具有自己的callId,通过同一op_id关联;不伪造第二个原tool/result。对端ACK丢失标unknown,先按原request/op id对账,不能换ID再执行。
- 嵌套/程序调用不保证每个内部调用都有顶层tool/call/result。DSH工具有parent/rootCallId和PTC扩展事件;Agent持续程序内每次Capability调用必须从程序宿主与Framework取证,绑定program_run_id/revision、capability_id/version、op_id及外层callId(如有)。不用模型Tool层代替程序内部调用轨迹。
- 取消tool、turn结束、session disposed与机器人停止不是同一事实。session/disposed只说明live宿主生命周期;真实停止需Framework/Sim证据。未确认停止保留unknown并由业务准入阻止放行。

## 6. 拟增最小接口与关联结构(均待建设)

| 接口/结构建议 | 输入/记录 | 输出/用途 | 复用与边界 |
|---|---|---|---|
| `dsh_evidence.read_session` | runtime_instance_id、session_id、from_seq、limit、固定through_seq | header/format、events、next_seq、observed_through、storage revision、source SHA | 桥接SessionPersistence只读handle,或SessionController.events;不是Python SDK现成接口 |
| `dsh_evidence.observe_session` | 有权session地址、取消信号 | ready + live SessionEvent;明确不承诺replay或durability | 复用session/event或observeEvent;通知收到≠持久化 |
| `dsh_evidence.checkpoint` | 受管session_id、请求ID | success/failed/unknown、durable_through_seq、barrier receipt、source version | DSH writer owner执行flush,非采集器抢写锁;SDK缺桥 |
| `SessionRunLink` | luban_task_id、DSH runtime/session、父子地址、program run/revision、binding/assembly引用 | 业务任务到原生记录的外键;不存可编辑消息正文 | Agent建设;task/program/capability生命周期与DSH回合分开 |
| `ExecutionEvidenceLink` | session/call seq/callId(可空)、program run、cap op、request_id、Framework task/op、Sim episode/frame、artifact uri/hash | 跨源可定位链;接受、执行、核验分别有source receipt | Agent关联;原始执行与图像等归原服务 |
| `CaptureCheckpoint` | 原生seen/contiguous/durable through seq、consumer persisted seq、gap ranges、disconnected interval、每源cursor、last reconciliation | 收到/连续/DSH持久/采集落盘/跨源齐全/unknown分别显示 | 只是采集控制状态,不能替代原生消息/业务成功状态 |
| `ResearchSessionSnapshot` | task、source versions、DSH cut/closure、parent-child完整清单、ops/episode cuts、artifacts hash、缺失清单、压缩映射、采集策略/脱敏版本 | 不可变研究清单;状态draft/partial/ready,人工或独立审查再决定训练可用 | RSI读取,不能因ready自动认定科学结论或业务验收成功 |

建议每次会话固定“必需数据策略”:最低为用户目标/约束及来源、准确工具/技能/程序/环境版本、请求与结果配对、能力op终态、任务效果核验和必要仿真/真实观测。没有触发某能力标not_applicable;上游未提供标unknown;附件不存在/校验失败标missing/corrupt;不能都编码为null或0。

模型供应商reasoning:只记录SDK/适配器实际提供且允许存储的输出块或usage(reasoningTokens可选)及可见性声明。不能因为有reasoning effort配置或assistant.stream就宣称可读模型完整内部推理;未提供的私有推理状态不可采集、不可恢复。提示词路由/请求header、显示文本、token计数与模型内部状态分别命名。

## 7. 验收建议与未验证事项

已做:技能与协议读取;OV查询;本地官方origin/HEAD核验;两次官方Git HEAD只读联网(均失败);上述接口/关键调用处源码回读;文档结构与证据路径自检。未做:任何DSH/SDK实际运行、实例配置/加载核验、断连重连实验、durability crash实验、模型、产品与仿真验证。因此不得据本稿写“采集已接通”。

后续实现验收至少覆盖:订阅与快照竞态不丢seq;掉线补采幂等;SDK树缺边后原生目录补齐;同步/并行Tool按callId正确配对;accepted外部op不当terminal;工具返回value与content差异;压缩前后source映射;flush失败/掉电保留unknown;dispose未停机器人;跨源附件hash缺失拒绝ready;未提供usage/reasoning保持unknown;版本升级拒绝未知required event、可解释ignorable event(`R/packages/core/session/src/types.ts:509-517`)。

## 8. 本轮关键原文SHA-256

以下是本地f3803c9原件字节哈希,供本轮证据复核,不冻结未来实施版本。

| 原文(R/) | SHA-256 |
|---|---|
| `packages/core/session/src/types.ts` | `e0f0c064295404ce33d69936fa940f9e6d024803bbf66337ff2d3c71acb80df1` |
| `packages/core/session/src/index.ts` | `343eeb693620bf3de6d21fcecb685fb7288b623c0bd4f655f29a23e92ce2f634` |
| `packages/core/agent/src/index.ts` | `19c6c34dd4dd63dfa8c3c388bffe0cd4d4f254a1fc564eb52c44ef4321f79b39` |
| `packages/sdk/protocol/src/types.ts` | `9e96d1c4a07d1be4bb21b071b9ebb947136e8d48123602738edadfe678dfa191` |
| `packages/sdk/server/src/server.ts` | `cfec55b361c0948536e44c6f0a16ee7b66c07353157ee7b1ea2f2f9301aa6b32` |
| `packages/session/session-persistence/src/handle.ts` | `2fd8b5c5188ffdf5adee78a260b3dd0a9be97e5eb9fcdb5aafae5a8ed5471a31` |
| `packages/session/session-persistence-jsonl/src/index.ts` | `1475457333ca86a01f7ea72dcf33de25b02be8b9c670fb32e8b99d8efb54cd81` |
| `packages/api/session-controller/src/index.ts` | `53417a4865ad58c8f1cd1db42dbda64313d97fedd6afe3151cf09cb616f5b0a8` |
| `packages/api/session-controller/src/history/controller.ts` | `329f25631247533b4dd4b373776be8fcb29f5f4599207410d3a79aa54b1bc71d` |
| `packages/api/session-controller/src/history.ts` | `74ce472f7d4ef65d83739717422977882777120c9d5da00db88e0adf889d5c06` |
| `packages/core/tools/src/events.ts` | `ef50da2c3a91c9a814e768b38c380cf95978918d6dec349d0cce4e4a4890881d` |
| `packages/core/tools/src/contracts.ts` | `3103f72e0965ca2da8059517135a2e17350c5b859db2f2721f365e9e31b04e5a` |
| `packages/core/tools/src/pipeline.ts` | `07f0a7150b3ef190e0922189628764d1544e0cb2796fc6a6a5deb22b27da13c4` |
| `packages/core/tools/src/batch.ts` | `5451e17f844cea8a56b8bf6dfadbf357d3081c4796d0b1046b761a82e4d8e355` |
| `packages/session/session-checkpoint-policy/src/index.ts` | `2b93aae29cfb0b5757656f4e2e54c21d2ab5c11c1bccaed014735ecb9685fe35` |
| `packages/compaction/compaction/src/types.ts` | `af47584231f20be810e5d1f354f5f23d1a02995c454b4d2027070b502eae1e22` |
| `packages/compaction/compaction-basic/src/region.ts` | `295b53cc9e924f7cb2e843e0d0d296e89ead73da2aab9790282db30736e2e063` |
| `packages/llm/llm/src/types.ts` | `5bbadd88866091b3ef56e7cffe918f9a9994a33a5b0f8f553cfdd4110c0a561d` |
| `packages/subagent/subagent/src/index.ts` | `a64059b63fb2ec6867ab22aba6a54dfad0ade6a1ed0e3c7c4af01cc0fe88b50d` |
| `packages/subagent/subagent/src/types.ts` | `9150cb7c1c7059843d932be465bd4ddf869b5df08cdfa099e01023f681865920` |
| `packages/subagent/subagent-fork-in-process/src/index.ts` | `1bc4ff5ff22c20937b6224ffe208a3c37b18c2b741ed77330c27432ce23cf30e` |
| `python/sdk/src/deepseek_harness/client.py` | `0c0df2f23d12607df9bbd03e2b19b3159c8952b43fdc5eb8321a04a1dda3b675` |
notes/2026-11-02-real-task-paper-policy/asset-paper-policy.md
# 经验与程序模板自动筛选、退化检查及发布撤回:论文 MCP 证据与 P15 建议

研究日期:2026-11-02(Asia/Shanghai)。仅研究;未修改产品、四份正式设计稿或 HTML,未运行仿真、训练、机器人、发布服务。本笔记是可回并候选建议,不能视为功能已接通或用户已批准产品自动发布。

## 1. 结论与证据覆盖

可落地的主线是“真实执行证据→按条件提炼候选→确定性检查→独立判断→按影响范围运行验证→策略自动发布→后续证据持续触发复核/撤回”。论文支持的关键点是:把经验与程序分开、按调用依赖挑回归案例、用新鲜观测与独立环境判据核目标、保留失败与未验证条件。论文并未给出足以直接照搬的生产自动去重、冲突裁决和撤回体系;下文这些部分明确为 P15 推导建议。

本支按 `luban-alphaxiv-research` 及 `references/mcp.md` 实际执行 1 次 discover,针对 2 篇相关论文各执行 fullText=false、fullText=true、同篇合并 answer_pdf_queries,共 7 次科研调用;全部 ok=true、tool_error=false,无 unknown、无重试。客户端与实际 schema 来自父任务已取得 `/tmp/p15-alpha-tools-20261102-r4.json`,未重复 tools/list。发现 keywords 是 robot、experience、reusable program、simulation datasets;问题直接围绕用户提出的自动选择、重复/冲突/退化和发布撤回,不添加日期限制。

false 两次实际返回均是作者提取正文 fallback;逐篇与 true 的 `/result/content/0/text` 内容字节 SHA256 相同,包含作者行、摘要、章节、参考文献、附录和 arXiv 版本行,不能标为 AI 报告。请求 false/true 与实际性质分别记录。`answer_pdf_queries` 的实际 schema 与结果是按问题选择的原文页 XML,不是生成式问答结论;同篇四问题合并,选中页也不等于独立科学验证。未取得原始 PDF 字节,未做全篇逐句精读或实验复现。

实际问题发现返回 15 个候选,只取以下两篇;RAPID、SkillComposer、RACaP、JoyAI-Sim、Silicon Language 等仅候选级读取,不据此作科学论断。热点 feed 无需用于本问题;公开研究者无身份消歧缺口,未调用;个人库/个人笔记无授权需求,未调用;公开代码工具非本轮问题所需,未调用,未核论文仓库 commit。

## 2. 论文身份、读窗与关键原文

### 2.1 RoboRSI:影响集回归与受控发布

身份:[RoboRSI: Stable, Efficient, and Reusable Robot Self-Evolution in Complex Real-World Environments](https://arxiv.org/abs/2610.12424v1),作者 Zimo Wen、Yijin Chen、Yuxuan Cao 等,末署 Cewu Lu;原文 text 第1–34、93行及问答 XML `<paper id="2610.12424v1">` 核定 v1,首次提交日期 2026-10-08(原文 arXiv 行),未另外查询后续版本。原包前缀 `asset-roborsi-*`。

作者报告:每个修订限定在责任分支;若接口或调用者也受影响,先扩范围。验证集合包含触发失败和受影响调用者的已有成功案例;审查、功能测试、历史回放无回归才接受,否则保留旧图。这里的影响集是“可能调用依赖”,不能只看本次轨迹实际调用过的边。附录明确:依赖图覆盖全部行为依赖、范围外接口不变、相同 reset/外生随机分布、无未跟踪共享状态/全局 prompt/tool 变化,才有局部影响分析;改变这些条件就必须扩范围。开发集指导修订,保留任务衡量泛化。依据:text 第530–581、1295–1400行,§3.2 / Appendix A(原文24页);这支持 P15 按依赖挑回归集,不支持“只改一行所以不用全链路验证”。

作者报告:技能 descriptor 声明参数、返回字段、适用条件和验证 harness;任务完成依赖最后动作后的新鲜观测。候选放在隔离库内审查;Base 修改跑该技能 harness,再跑完整 Atomic 任务。正文/附录的发布门有至少两个声明 seed、源恢复和 Manager 批准;compound 提议还用至少3次成功、工具序列最长公共子序列重合至少60%、共同骨架至少3步。参数在运行时重新感知,不能固化上一回合坐标。这些是该研究特定策略,不能成为 LUBAN 通用阈值。依据:text 第1409–1435行,Appendix A(25页)。

个案清楚显示门槛由开发面板预先定义:click_bell 改前1/3、改后3/3;另一版本2/3通过所声明门。代码审查失败的前候选没有进入仿真。依据:text 第1518–1535、1604–1608、1620–1649行;QA XML page27–29,尤其page29的 `Validation and publication`。这些三次开发试验不能证明跨任务可靠率,也不能用“至少两次成功”替代 P15 的独立保留集和风险约束。

作者报告另有600个成对的 Code-on/off 回合,129/600→174/600,成对增益7.5个百分点,95% CI[3.7,11.5],只在该独立面板成立;主实验中 LIBERO/LIBERO-PRO/RoboTwin 允许评估任务中在线改进,LIBERO-Plus则冻结来源库,因此不能把这些合并成一项“冻结策略泛化成功率”。真机104轮是演进开发记录,四个近期合格历史回放是离线检查,不是把所有历史任务重新上真机复测。依据:text 第975–1014、671–697、1451–1463、1652–1677行,§4.3/§4.5.3/Appendix B/D.4。

读窗记录:`/result/content/0/text`,report/text 实际回读开头1–34、93行及上述正文窗口;QA原包全文共选 page1,3,4,5,6,7,9,10,12,15,27,28,29,重点核page27–29相关片段,未把其他选页宣称逐句已核。正文行号按 JSON 解码后 `splitlines()` 1起算,保留原包即可重建。

### 2.2 RoboAuto:分层经验、数据证据与独立结果判据

身份:[RoboAuto: Autonomous Robot Program Search through Multi-Level Physical Understanding](https://arxiv.org/abs/2610.36533v1),作者 Buzhao Liu、Jianing Ye、Xiu Yuan、Yangtong Feng、Chengsong Huang、Tyler Dinh、Yevgeniy Vorobeychik、Ning Zhang、Chongjie Zhang(Washington University in St. Louis)。原文text第1–11、67行及QA `<paper id="2610.36533v1">` 核定v1与首次提交2026-10-27,未核后续修订。原包前缀 `asset-roboauto-*`。

作者报告:一层保存按物体类组织的 affordance(可实施交互方式)、空间关系、动作效果与前提;每条保留适用条件、当前场景待测量、证据事件,句子标 demonstrated/inferred/untested;另一层保留在当前搜索池上验证过的可执行程序。新在线证据可支持、挑战或细化原条目。数据集视频先转为实体、交互事件、前状态/动作/后状态/可见证据、整回合结果,再跨记录提炼。依据:text 第376–411、2255–2346行,§3.1/Appendix C.1(24–27页);QA page24、27–28 的相关内容。它直接支持“离线仿真数据可生成候选”,不支持“从视频看起来成功即可发布程序”。

作者报告的确定性辅助检查有数字/单位、评估任务指令与动宾短语、API名/函数调用模式,再逐条人工检查,以核高层经验没有特定场景数值、任务脚本或实例身份。依据:text 第1410–1472行,Appendix B.1。P15 只能借用“检出风险后复核”的结构:Lesson 可能合法包含有证据的量化条件,Procedure 必然含代码与参数单位,不能照搬禁数字/禁API当所有资产的硬规则。

作者报告:阶段带预期物体状态与执行 verifier,失败停止后续阶段,聚焦最早不成立阶段;独立模型会话用任务、计划、知识、日志和同步场景/腕部视频审查失败,可能覆盖程序verifier;已通过阶段出现退化可以重开。环境 task predicate 才是整任务成功最终判据,成功场景跳过视频审查,程序verifier错报失败记为验证器错误。依据:text 第2368–2410行,Appendix C.3(27页);QA `<page num="27">`。附录 coder prompt 第65行(text 3046)写“auditor reviews every verdict”,比运行叙述更宽;本笔记以方法运行叙述为主,保留两处口径差异,不能用prompt证明每个成功都被独立视频复核。

作者报告:证据不能解释原因时先提出竞争假设和可预见差异,用单独 experiment 程序获取诊断信息,再修候选;实验与完成任务的候选程序分开。依据text 第2411–2438行,Appendix C.3,QA page27–28。最终程序在保留场景评估(Robosuite每程序100,其他50),该数量是论文评估面板,不是 P15 默认样本数。真机仍由人复位和安全监督,作者只在仿真内自主搜索。依据:text 第1614–1629、884–896行。

读窗记录:report/text `/result/content/0/text` 开头1–67及第376–411、884–906、1410–1478、1614–1629、2255–2438、2440–2515、3038–3060行;QA所选页1,2,3,4,5,24,27,28,重点核page27–28。未经读取的其他正文不作已核声明。

## 3. 可直接回并的 P15 自动化规则(项目建议,尚未实施)

### 3.1 确定性检查:决定能否进入独审,不替模型判真

1. 冻结候选身份与原件:kind、content hash、源 run/session/程序revision、观测/视频/调用回执、任务验收条件、资产/能力/知识版本、机器人/手型/后端/坐标/单位、仿真配置与实际参数。来源缺失、hash不符、unknown未对账、正文不完整,不可进入可发布集合;保存成功只表示候选存在。
2. 同一次来源与同一内容重复提交可幂等归并,保留各证据引用与请求原ID;相同字节不重复创建发布版本。格式规范化只能作用于明确无语义字段,禁止把参数、阶段顺序、前提和恢复分支规范掉后认定程序等价。
3. 语义近似仅标“可能重复”,不得自动删原件、覆盖历史或并合声明。Lesson的“同结论同条件”与Procedure的“同程序同合同”分开比较;程序源码相似不证明行为相同。
4. 先查参数schema、类型、单位、能力名/版本、依赖可用性、禁止的旧task身份/plan_ref、隐含场景坐标、证据可见性和状态闭合。Procedure需可执行完整程序与合同;Lesson需条件、主张、支持/反例与未验证项,不硬造执行stage。模型可提出修订,宿主重新做准确版本校验。
5. 冲突候选集合按“适用条件有交集且建议/结果/约束不相容”产生,而不是文本出现反义词即判冲突。条件不重叠保留分支;同条件矛盾保留双向反例与uncertain状态,进入定向检验,不靠新文档日期胜出。

### 3.2 独立判断:审查主张范围和下一轮最小补证

独审读取准确候选全文与原件,区分作者观察、推断和未测;核因果链是否跳过观测、候选是否抄了场景常数、效果是否只是Tool ACK、程序自判器是否与作者共同犯错。输出 pass/revise/reject/inconclusive、适用范围、失败反例、受影响依赖集、待验证假设与验收计划;候选作者不能给自己签最终通过。模型独立会话只是组织隔离,不保证统计或方法上的独立,评测判据/保留集/权限要单独冻结。

确定重复可留一个可选资产并挂多来源;近似但无新增适用范围/有效证据/成本优势,归档为候选而非扩库。声称互斥但条件不清,先补条件;真正同条件冲突,选择能区分两解释的仿真cell/反例。没有足够证据则保持争议,不发布统一结论。

### 3.3 运行验证:按资产类型和影响集设计

Procedure先跑准入/静态检查,再在独立任务执行固定版本,冻结baseline与candidate、环境初态和物化扰动,保留开发/独立保留集及全部失败/unknown流向。修改共享程序、Tool合同、prompt、知识或机器人绑定,要扩展回归集到所有可能受影响调用者;仅有一次轨迹无法证明依赖完整。仿真数据集可提供支持/失败样本、场景初态和扰动来源,离线回放只能检已观测假设,不能替代会改变接触动力学的真实仿真执行。

Lesson按其主张测试:描述性“在观测条件X发生Y”核来源和反例;建议性“X时用A优于B”需受控配对验证;无法变成可执行任务的知识做type-aware证据审查,不能伪造已完成stage。当前RSI发布报告要求stage等程序证据,Lesson非运行路径若使用需显式扩展合同,不绕过原Service。

任务效果优先独立冻结的几何/状态/约束判据,视频与模型用于覆盖不全的判断并说明盲区。程序verifier、模型judge、环境谓词矛盾须保留并复核;无传感覆盖不能判“无损伤”。候选不得同时自由改自己被评分的判据;验收规则变更单独版本、复核并重跑baseline。安全/关键约束单独报告,不能被平均成功率掩盖。

重复次数、任务权重、统计区间、最小提升/非劣界限和预算由每个试验目标预先声明,不能统一套2/3、60%或50场景;达不到证据量记inconclusive。按任务/条件分层报告成对损益,区分质量、成本、时延;避免用更少模型调用掩盖更多物理失败。仿真通过只授明确仿真适用范围,不自动授field。

### 3.4 自动发布:证据满足政策后推进精确版本

自动化链仅在已启用且版本固定的发布政策内运行:确定性门通过+独审通过+所需真实验证通过+回归无未决退化+证据hash/范围匹配,才调用现有共享ExperienceService的发布应用路径。发布校验应绑定候选version/content hash;Procedure再绑定program revision/hash;simulation/field分开,expected_head_revision作并发条件。头版本已改变则重新核候选与当前基线关系,不能盲目覆盖。

发布产物是不可变版本、适用条件、验证面板、反例、政策/审核身份与依赖,及可变可选用指针。对后续新任务检索/完整读回/实际采用分别验收。私有源只派生共享候选,保留谱系,不把私有版本原地共享;隐私与原件暴露范围独立检查。所有unknown沿原请求对账,不换ID重发。当前独立validator/受控管理入口尚未装配,函数存在不是自动发布已可用。

### 3.5 自动撤回与重新验证:保留版本,控制未来使用

触发分两层:已证伪关键前提/关键约束违例/证据篡改或身份失配,立即按已启用政策停止该版本用于新检索/新采用并隔离,保留原件与原因;单次普通失败、统计波动、模型怀疑只触发复核或限制范围,不能无据认定整体失效。发生能力合同、手型、引擎/资产、判据、知识依赖变化,受影响资产改为needs_revalidation,是否限用取决于原发布政策和影响范围。

撤回后重新计算依赖:引用该Lesson/Procedure的派生版本、新任务候选和current指针均标影响,禁止继续把已撤回证据计为有效支持;有不受影响的条件分支可保留精确范围,不能一刀切删除全部历史。在途任务保准确已采用版本与执行身份;撤回事件不能热替换程序。是否停止由任务当前状态/已确认风险按现有取消协议执行,停止未知先对账,不重发动作。回退仅选择仍有效、兼容且通过当前范围校验的旧版本;不存在则无可用版本,不凭“上一个”自动认为安全。

恢复发布要有新不可变修订、反例处理、扩大后的回归/保留验证和新的独审回执,原撤回事实不抹掉。此撤回方案是 P15 的生命周期设计推导;本轮论文读窗没有核到等价生产实现,不把它归给作者。

## 4. 与本地现状连接及验证边界

本支读过 `notes/2026-11-02-rsi-simulation-data/rsi-delta-evidence.md` 与 `simulation-evidence.md` 的指定证据说明,用其作项目背景;它们已由父任务/前轮按luban-kb-query检索并回源。未把前轮运行手册当本轮部署状态,也未声称本支重新查询OV或核源码。当前链已有候选保存、全文读回、显式采用和发布/撤回应用函数,独立验证器及管理接线未装;新方案要复用该底座,不另建经验服务。仿真已有环境/传感/录制基础,但批次程序adapter、初态恢复、隔离容量、unknown停止与回执仍待接/验。相同seed不保证动力学确定性,旧历史数据不等于能恢复精确当前状态。

本轮检查仅包括真实MCP成功回执、原文身份与指定读窗、false/true正文相同性、原包hash和笔记范围;未进行产品测试、物理运行或发布验收。主代理仍需把这些建议与其他支结果交叉审查,不以本笔记自称完成代替最终验收。

## 5. 原始包、参数与SHA256

所有文件位于 `original_doc/2026-11-02-luban2-paper-policy/`,只新增 `asset-*`,未写SOURCE.md(由主代理汇总)。`.args.json`为实际请求参数,其他json是客户端原回执;均无凭证。主原文pointer为 `/result/content/0/text`;discover同pointer;qa同pointer内保留paper/version/page XML。采集时间读取每包 `retrieved_at`(本轮约15:14–15:15 +08:00),不代发表时间。

| 文件 | SHA256 |
|---|---|
| `asset-discover.args.json` | `63e632e7f6de421434ce47530e34a0b840e60dbf6d2b3bf9da1bb9699fe0b015` |
| `asset-discover.json` | `426cc61595ac59773ac29689b18ef07d1972c5c4f02b942af6a327c0f5e2f895` |
| `asset-roboauto-qa.args.json` | `302cb7b7d882f90b119204877fd8064d4720ffb854f7a7f6b44be4202e30b6a7` |
| `asset-roboauto-qa.json` | `7ed501b8a4524205644774dd202174a05fb8cb9835f8ba547bf82bb6087fa5a0` |
| `asset-roboauto-report.args.json` | `42b63a356999169993afce654a21f1d8382edec54649d78ecd183bc4596f6ce9` |
| `asset-roboauto-report.json` | `1fb3c9d520c68e81fa77ac7bb36deea65959a7079cb60fbe33eddeaaf9069f96` |
| `asset-roboauto-text.args.json` | `348c05eff3c5e2e805253c84173bc0c8b3fe0784b7d36b81edc172ac20ff7aaf` |
| `asset-roboauto-text.json` | `755871ccc6679bbd78b370f54b72980a72ddec67ffe85b28e71b811a401e391a` |
| `asset-roborsi-qa.args.json` | `813983b17c3efc2c2f27f11440745551788d3909bb842311d48091be38ef98ee` |
| `asset-roborsi-qa.json` | `c102506d58aa753f9dbecd32d8b017846f0d58990bd8011cc669639a1e3e0460` |
| `asset-roborsi-report.args.json` | `601879ce19eed07e4cceddf70761435a551adb46a3f98116e149c16d23967124` |
| `asset-roborsi-report.json` | `9ed49c7b189a12aa45a63586301e7495bf2a0f22854823faea22e64a8d71f4a3` |
| `asset-roborsi-text.args.json` | `ab5811f952a97ff56ba0d26b71462636420ff31b57078eef10b4d1fd046eff45` |
| `asset-roborsi-text.json` | `50363a0a88ad180e3a9cb480bc7fed04150199519eaf3050228c1091b676cc7e` |

请求false与true的正文同hash:RoboRSI `5fd4c623b823965e834fc2168e543e51c2c22fc0c22a34bf70fc6936f6609ede`;RoboAuto `0e557f64b690e74a4be4c23a4894fb088529668379df4acead5a11f628b9c19d`。这是正文性质/重复返回的验证,不是全文科学核验。


### R4集成来源补记

父代理已将工具目录原字节归包到工作区original_doc/2026-11-02-luban2-paper-policy/mcp-tools.json(SHA256 16a57b6176551447eb5c80f16a90ff81a02e9206616b43082b126f7cd4299cc9),SOURCE.md与manifest.json登记全部回执/参数;上文/tmp路径仅记录当次实际读取位置,不再是离线交付的唯一依赖。
notes/2026-11-02-real-task-paper-policy/sim-dataset-interface-evidence.md
# 当前仿真数据集接口与新Agent数据用途对接

2026-11-02。主代理按已知REPO原文回读;S为P13 code/.worktrees/r159-camera-alignment,HEAD实核3d4a354e3c0e0b105acc39c7631c7df22a02e18c。只读,不运行模块、训练、仿真、模型或产品。

## 已核事实

1. S/src/sim_service/portal/datasets.py:1–10、166–205:读reports内episodes_summary和benchmark episode,最终结果来自离线judge,不以rollout自报success顶替;SIGNAL_POINTS曲线降采样不是训练数据。
2. 同文件:100–140:旧合成流程只有通过判分的集才渲染视频;这解释旧数据可能无失败录像,不能用于证明P15新默认必采已实现。包只认存在对应.sha256的LeRobot或HDF5文件;文件名/manifest不证明导出成功。
3. 同文件:307–347及portal/app.py:146:现只读GET /api/v1/datasets、/{dataset_id}/metadata、/episodes、/episodes/{index}、/episodes/{index}/video、/package?format=lerobot或hdf5;video或package不存在明确404,非请求即生成。当前源码注册API前缀还应以app的API定义为准。
4. S/src/sim_service/workbench/datasets.py:1–5、182–225:另一个数据集视图读samples/masks/manifest/spec及COCO annotations,仅预览缓存会写;它是感知图像数据,并非机器人动作示范时序。不能因都叫dataset就把COCO框标签当机器人控制标签。
5. S/src/sim_service/dataset/manifest.py:43–110:数据集保存spec/assets/camera/joint/源码等实际hash、seed和参数;声明的图像确定性仅同host/GPU/driver/Isaac/assets内的poses/masks/bboxes/depth/rgb。该静态图生成声明不证明机器人动态接触/策略运行确定性。

## 回并设计的方式(拟建)

- 数据构建模块先从上面现只读目录取得现有dataset/episode/判分/媒体/包;固定原路径与hash形成SourceDatasetSnapshot。对COCO与动作时序分开映射schema,缺原始命令/时间/标定明确不合相应动作训练合同。
- 新Agent任务的原生DSH/程序/Stage/视频清单通过适配形成新episode视图和DatasetRelease;不伪造为已经在现Portal生成的新类型,也不覆盖旧数据集。
- 既有数据可用于有权限的经验支持/反例、覆盖分析、输入回放与训练候选。涉及改变动作效果必须在独立worker重新执行,历史观测回放不是物理反事实。
- 先按任务与派生谱系分组,再切窗、扩增和导出;训练、开发选择、最终测试分别登记。视频缺失保原件,不因旧流程只渲成功而删除失败。
- 新程序试验走Agent→Framework→Sim;现模型EvalRunner只用于模型/检查点合同,不能把模型源码当checkpoint。真实训练和试验并发本轮均未执行。

## 关键字节摘要

| S相对路径 | SHA256 |
|---|---|
| `src/sim_service/portal/datasets.py` | `915c0003cf76afa2a5cb3a2d848f90e3fe03dba166b1d6cde018fd031f26224a` |
| `src/sim_service/portal/app.py` | `33846133b35eadedf9f5797a855d513d2c13d93bf3f94558327952489f363179` |
| `src/sim_service/workbench/datasets.py` | `49a3c7c51b510c524adbf7003ac3c09b57068ef96eb80f5951c766410b4492fc` |
| `src/sim_service/dataset/manifest.py` | `4064dc94edebc04341e1416bb97643ea58017dd150000b52bc07ee07de729aaa` |
notes/2026-11-02-real-task-paper-policy/dataset-training-policy.md
# 真实运行与仿真数据怎样成为可用材料

2026-11-02,Asia/Shanghai。性质:论文原文取证与P15实施设计建议;没有训练、仿真、模型或机器人运行,没有改正式四稿、产品或发布状态。

## 1. 结论与适用范围

运行资料应形成三个独立用途视图:**改进程序与经验、训练有明确输入输出的模型、评价冻结的程序/Agent/模型**。三者复用同一套不可变原件与血缘,但分别判资格。默认无限期保存成功、失败、恢复、未知与采集缺项;“完整保存”“任务成功”“训练可用”“可作独立评价”分别记录,不能用一个ready或success代替。

这轮互补证据支持:失败上下文可指引训练样本选择;仿真数据要按目标效用和覆盖选择;仿真扩增应在已支持参数空间内受控生成,并通过真实或目标域验证。它们**不证明只靠聊天、录像或现有NPZ即可训练控制策略**,也不证明P15已经具备论文中的生成器、数据评分模型、训练器或机器人集群。

本笔记接续当前四稿的设计:Agent程序经现有`run/step(Capability)→Stage→Framework`执行;DSH保存原生会话权威;隔离worker、DSH证据桥和跨源封存待建设;每型号current供给与逐新调用核发布;默认无限期保存。未把旧“新建CapabilityExecutionService”设计带回,也未给模型评测器塞入LLM程序。

## 2. 实际科研取料与材料性质

本轮按`luban-alphaxiv-research`及其`references/mcp.md`执行,实际schema复用父代理`/tmp/p15-alpha-tools-20261102-r4.json`;没有重复tools/list。一次`discover_papers`涵盖用户词面英文翻译`robot simulation datasets / training / real task traces / reusable program experience`,未设日期排除和人造论文数量门槛。20条发现候选仅为导航;选取下面三篇补足数据用途、选择和生成问题,未与另一分支重投RoboRSI/RoboAuto。

| 实际论文身份 | 作者身份、版本和日期依据 | 本轮用途 |
|---|---|---|
| [Learning from Fleet Experience: Collective Experience Learning Across 96 Robots](https://www.alphaxiv.org/abs/2610.25736v3) | 原文头`2610.25736v3 [cs.RO] 30 Oct 2026`;附录A实际读到Chao Yu、Shu’ang Yu、Hao Lin、Hongzhi Zang、Yuxiang Yan、Chenxi Jiang等作者,Tsinghua/AgiBot/Infinigence AI,通讯Maoqing Yao与Yu Wang。发现回包首次发布字段2026-10-19,不与修订日期混用 | 成功/失败轨迹的不同作用、动作监督与机器人留出 |
| [TUCO: Curating Simulation Demonstrations for Sim-to-Real Robot Policy Co-Training](https://www.alphaxiv.org/abs/2610.05407v1) | 原文头Ning Zhu、Mengfei Zhao、Yikai Tang、Zhangyujie Sun、Peihao Li、Dongyue Ni、Jindou Jia、Jianfei Yang;头部版本`2610.05407v1 [cs.RO] 4 Oct 2026` | 目标效用与集合覆盖、同一成功源仍有不同迁移价值、评分数据与最终评价分开 |
| [Active Generative Simulation: Meta-Learning What to Simulate for Sim-and-Real Policy Co-Training](https://www.alphaxiv.org/abs/2610.19479v1) | 原文头Liqian Ma、Vaibhav Saxena、Utkarsh Aashu Mishra、Shuo Cheng、Yongxin Chen、Danfei Xu,Georgia Tech;版本`2610.19479v1 [cs.RO] 14 Oct 2026` | 在用户指定空间内优化仿真生成分布,真实train/val与最终机器人评测分别承担不同作用 |

每篇先`get_paper_content(fullText=false)`请求报告导读,再`true`请求原文,最后单次合并三问`answer_pdf_queries`。**实际三个false回包均为作者论文提取文本,文本与对应true完全相同**,具标题/作者/章节/参考文献与页尾结构;因此记为`extracted_author_text_fallback`,没有声称拿到了三份AI报告。问答实际返回带页码的PDF筛选原文XML,并非独立专家评审。原文按下节窗口回读;本轮未取得原始PDF字节、未通读所有页、未独立复现实验。全部10次研究调用有成功终回执,无unknown、无重投。

六类工具的实际取舍:feed未用,因为问题不是热点;discover已用一次;报告/全文已用三组;PDF问答已用三次同篇合并;公开研究者未用,因为作者原文身份已足够;公开仓库未用,因为这轮不复现论文实现,LUBAN映射由本地固定源码及既有取证提供。未访问个人库、个人注解或账号写入工具。

## 3. 论文具体支持什么

### 3.1 Fleet:失败指导学哪里,成功动作提供如何做

作者研究的是视觉语言动作模型(VLA)π0的策略参数更新:轨迹包含多相机图像、本体状态、实际执行动作及二元结果。FERT将成功轨迹放入动作监督缓冲,失败尾部上下文用于检索相关成功片段、提高其训练采样优先级。该方法不把失败动作直接当成功示范,但失败具有选择价值。这是**该具体算法的用法**,不能推广为“所有训练只能用成功数据”或“失败可以不保存”。[原文§2.2、§3.1.1–3.1.3,印刷页6、8–9;全文字符窗口见§8。]

作者先做专家示范监督微调与人工接管数据聚合初始化,之后FERT阶段不再采新专家纠正动作;操作者仍给结果标签和复位环境。因此不能称“从任意失败日志无人工启动训练”。测试在两个未参与训练采集的同型号机器人上,每策略120次试验;这是同平台不同机器人实例迁移,不是任意手型或跨任务泛化。作者摘要的93.3–99.2%是其五项任务结果,不能成为本项目预计成功率。[原文§4.1.1–4.1.4,印刷页17–18;摘要。]

对P15的启发:保留`failure_context→related_success_segments`关系及检索特征/选择器版本;从成功片段提取动作时保留原始观测、发出的命令和实际反馈。程序异常恢复与动作策略恢复分开:捕捉到一次成功恢复可成为候选材料,仍须标触发状态、恢复前提和独立效果。本文没有证明P15可直接用这些轨迹微调DSH背后的LLM,也没有证明任何失败片段天然是合格负样本。

### 3.2 TUCO:成功不是训练效用标签

作者以闭环目标域rollout为反馈,估计每条源示范对目标表现的影响,再联合轨迹效用和集合覆盖选子集;源/目标必须有兼容的观测与动作接口。既有全部仿真数据、随机同量数据与按效用选择的数据,训练价值不同;不能按“仿真成功”一项就全部喂给训练器。[原文§4.1–4.4,印刷页4–5。]

真实实验每任务用冻结仿真预训练策略取得10条操作者确认成功的轨迹,它们**同时作为共训真实示范和数据选择评分反馈**;从1200条仿真候选中选600条,共训采样20%真实/80%仿真,最终另做每方法每任务40次真实执行。作者明确最终评价rollout与评分rollout分开。三任务平均成功率85.8%,全部仿真共训25.8%;这是其任务、数据和模型配置的作者报告,不证明P15自动能达到该差异。[原文§5.1表1、附录C.1/C.3/C.5,印刷页8、20–21、25。]

对P15的启发:可用训练或开发集合的成功/失败/恢复表现寻找覆盖缺口,不能用最终隐藏测试答案选训练子集。本文10条真实轨迹不是盲测集;复用为评分与训练是作者明示协议,不能包装为完全独立验证。论文也没有声称实现跨手型接口对齐;附录E.3明确跨任务、跨embodiment及大型VLA适配仍需研究。

### 3.3 MetaGenSim:生成更多之前,先问要生成哪里

作者先在用户给定的任务/物体位置/相机/纹理参数空间生成探测数据,用真实训练/验证划分训练辅助评分网络;把轨迹效用映回生成参数,经核密度估计构造生成分布,再生成新示范、训练最终策略。评分器训练、数据生成、最终策略训练是三个对象;不是让Agent任意改仿真物理以提高测试分数。[原文§3.1、§4.1–4.2,印刷页3–5;算法1印刷页19。]

真实四任务各10条示范,最终策略用Diffusion Policy并在Franka上评测;表1的完整任务计数为作者方法58/80、均匀生成23/80、仅真实26/80。该例说明不对齐的仿真量可负迁移;不把该混合比例或数量写成本项目通用门槛。[原文§5、表1,印刷页5–6。]

作者明确生成器只覆盖用户暴露的因素,真实实验未暴露的背景/灯光不能自动对齐,稀疏探测可能漏高效用区域,且无显式多样性约束。[原文§7,印刷页9。] P15首版应先用真实支持且物化可追溯的矩阵与固定预算,记录覆盖再决定扩增;MetaGenSim式评分器和分布学习是后续研究选项,不能写成现SimService已具备。

## 4. 三类用途和逐用途资格(本项目建议)

| 用途 | 训练/改进的实际对象与最低输入 | 成功、失败、恢复和unknown如何处理 | 交付物与资格 |
|---|---|---|---|
| A:程序、Lesson与Procedure改进 | 不改模型权重;任务/约束、实际模型可见输入、准确程序修订、Tool与Capability原结果、核验依据、适用场景/版本 | 成功提供方法;失败提供条件/反例;恢复记录触发→修订→效果;unknown可作缺口调查,不能变成因果结论或效果通过 | 证据关联的候选经验/程序,沿现独审和隔离实跑/策略确认流程;通用模板必须排除旧task/Stage/观测/client等现场身份 |
| B:模型参数训练 | 先声明对象:感知模型用图像及检测/分割/位姿标签;机器人动作模型用时间对齐的可见观测、本体状态、实际命令、动作语义/单位/频率和有效mask;LLM程序/工具策略微调另需模型实际输入→合格目标程序/调用的专门schema | 成功不能一律视为专家动作;失败可供检索/困难例选择,风险/价值/恢复训练另需可靠标签和对应算法;unknown不得默认为0回报/负样本。可靠恢复片段在注明触发条件和独立核验后才可作为该恢复任务的监督 | 不可变DatasetRelease与特定training_contract、资格决定/排除原因;LLM微调与风险/恢复训练是本项目待研究路线,以上三论文不直接证明其有效性 |
| C:固定评价与回归 | 分别声明评固定程序、整套RSI Agent、或checkpoint策略;冻结目标/分布/初态/观测范围/资源/判据和被测配置 | 所有尝试保留,任务失败/环境失败/数据缺失/停止/unknown分别计数;恢复成功可计入整Agent任务成功,但不倒改最初程序失败 | 独立评价清单、全部分母/有效配对/缺项;最终测试材料不进入候选作者、在线检索或训练选择器;评完用于改进须转开发并另建新盲测版 |

资格最少三轴:`permission`(允许什么研究/训练用途)、`evidence_quality`(原件/时间/字段/标签可信度)、`use_contract`(当前训练或评价所需schema)。`data_complete=true`不能替代任一轴。现阶段优先兑现A和C的单worker闭环;B先产可验证导出契约和小批次质量报告,训练何种模型由独立研究规格决定。这是实施顺序建议,不是新增训练任务或资源授权。

## 5. 与现有LUBAN数据接口怎样接

本轮先按`luban-kb-query`调用OV语义查询并全文读取`viking://resources/compile/simservice/v2/08-dataset-training/模块中间稿_08数据合成重仿真资产生成触觉与离线训练/模块中间稿_08数据合成重仿真资产_2more_ea6c5aaa.md`。该2026-10-16机器编译稿只用于定位;当前能力以前序固定源码取证及下表实际回读为准。

| 现有对象 | 可接内容与边界 | 接入建议 |
|---|---|---|
| Sim `SessionRecorder` | 本轮回读固定S源码`tools/isaacsim/sil/recorder.py:35–146`;NPZ保存`t_ns/q/object_pose/overlay_pose`,一次一段。不是RGB视频,也没有从这里读到策略所需完整issued action序列 | 将状态轨迹作为原件之一,另接相机/命令/时钟/标定/标签;不能把相邻q差分直接冒称原始执行动作,若作派生动作必须声明转换误差与合同 |
| `CaptureSessionManager` | `src/sim_service/resim/capture_harness.py:126–165`实际回读,按录制profile和topic选择建立capture;跨源接入与完整性沿simulation-evidence限定 | 冻结实际topic/类型/频率/时钟/外参与capture ID;录到bag不等于存在必需topic或无丢帧;不因补数据重复动作 |
| Portal模型评测入口与EvalRunner | 本轮回读`src/sim_service/portal/evaluation.py:276–330`,输入checkpoint/model/release;更完整控制权证据见simulation-evidence | 策略模型release可沿已支持模型协议评测;Agent程序走拟建程序worker适配,两者不同时控制同一环境 |
| Portal策略数据页 | 父代理另回读`portal/datasets.py`:是已有benchmark/judge报表只读汇总,rollout自报成功不是judge;曲线降采样不是训练数据;视频/包已有条件限制 | 仅用于定位已有证据和真实导出包,不把页面有一行数据当DatasetRelease已通过训练资格。详见同目录`sim-dataset-interface-evidence.md`(由父代理交接,不在本分支冒称已读该稿) |
| Workbench COCO数据 | 父代理另回读`workbench/datasets.py`及`dataset/manifest.py`:静态感知图像/标注与静态图生成确定性scope | 可对接B类感知训练;不冒称已有机器人策略轨迹、完整动态重放或动力学确定性。COCO样本与动作episode分别建立schema/资格 |
| DSH与Agent | `dsh-data-evidence.md`已核:唯一原生事件、压缩血缘、writer flush与SDK实时能力不同,Tool展示结果不保证含全部canonical值;程序内部step不全是顶层Tool | A类采用实际模型可见surface和准确程序,不把压缩摘要当原始用户发言;B类必须结合原Stage/动作/传感,不用聊天正文替代控制轨迹 |

S固定根为P13 `code/.worktrees/r159-camera-alignment`,HEAD `3d4a354e3c0e0b105acc39c7631c7df22a02e18c`,仅证明源码事实。Framework/Agent固定版本、复位保姿态、seed未全穿透、snapshot deferred及worker隔离限制依[simulation-evidence](../2026-11-02-rsi-simulation-data/simulation-evidence.md);DSH身份/桥缺口依[dsh-data-evidence](../2026-11-02-rsi-simulation-data/dsh-data-evidence.md)。没有新查部署或运行能力。

## 6. 数据集版本、分组与泄漏防范(拟建协议)

不要把原采集账本改造成训练库。以原`EvidenceManifest/ResearchSessionSnapshot`封存版本为输入,另建只读派生的`DatasetRelease`清单及用途视图;原件、业务结果和原采集游标不改写。每版最少记录:

- `dataset_id/revision/content_hash`、全部source_manifest/hash/cuts、许可与脱敏策略、schema/exporter/normalizer/labeler版本、创建与审查回执。
- 每episode关联task/session/activation、case/attempt、worker generation与WorldRef、程序/模型/手册/Skill/Tool/current实际版本、场景/资产/相机/物化参数hash、实际初态与种子语义。
- `source_kind=real/simulation`、`training_target`、observations/actions/labels的语义/单位/坐标/时间、可见性、有效mask、缺失和派生方法;`physics_truth/derived_label`不放进只允许真实传感的策略输入。
- 逐样本`eligibility`与原因、所属split、lineage/group、重复/近重复族、成功/失败/恢复/环境异常的定义和核验引用;采集时间与标签修订时间分开。
- 固定split manifest及生成器/采样器/选择器版本、可复算索引和hash、排除/重采/缺项统计;补件或重标形成后继release,不修改已发布训练输入。

分组先于切窗和扩增,禁止把一个episode相邻帧随机分到训练/测试。基础分组把同一任务重试/恢复、Session fork继承、同源录像分段、同一示范的仿真派生与重复导出连成同一血缘组。生成后代继承源分组;做近重复检查不能只比文件名或seed。

额外隔离轴按要声称的泛化决定并写进benchmark:跨机器人实例按robot ID留出;新对象/新布局按对象资产/场景族留出;新任务或新程序族按任务/程序谱系留出。不能一面把同一源示范派生物跨集合、一面声称未见数据;也不能为凑比例切开连接过大的血缘族。比例与最小数量由任务分布/预算论证,本稿不编统一8:1:1。

建议明示四种角色:`train`用于拟合策略;`development/curation`用于调程序、选择数据、调生成分布/阈值;`validation`用于约定的模型选择;`sealed_test`只作最终检验。MetaGenSim的元学习val已参与评分器优化,因此在本项目角色上属于选择器开发输入,不能再叫完全未触及的最终测试。TUCO复用真实成功轨迹作训练与评分也须如实登记。

同一个“用户任务”可能产多个程序版本和失败修订。把P1失败放train、P3成功放test会泄漏该任务解决方案;应按原任务谱系分组。模型作者、候选作者、经验检索目录与选择器都不能看到sealed_test的目标答案/判分truth。**发布current是运行供给,不是测试集隔离机制**;封存评价应记录每次实际current generation和更换事件。需要比较固定配置的实验在隔离授权配置中运行,不让后台发布变化悄悄改被测对象。

## 7. 可实施的生成、训练交接与评价流

1. **声明用途与输入输出。** 先说明要改善程序、感知、动作模型还是整Agent;给定任务分布、能力/传感/动作接口和验收。只有视频时可做审查/视觉研究,不能声称已满足机器人动作监督。
2. **固定源与分组。** 从可回读封存清单按权限抽取;unknown/缺项保留调查,逐用途决定纳排。冻结源血缘和split,再做切窗、重采样、格式转换。
3. **制定仿真矩阵。** 仅对实际支持的场景/资产/相机/参数物化生成;每cell留真实参数和hash。初态读回不符、seed仅配置未动力学确定、reset保姿态等限制保留;不得发明当前不支持snapshot能力来完成复现。
4. **运行原程序链并收全结果。** 拟建worker经Agent/Framework执行;严格试验必采未ready不启动。收成功、失败、恢复、unknown、环境失败及缺项,真实核验后再标结果。程序探索和数据生成可复用基础设施,但目标与计数分别定义。
5. **在开发集合选择与补覆盖。** 首版可采用可解释的任务/场景/失败类型覆盖与人工核验抽样;复杂TUCO影响函数/MetaGenSim元学习作为单独可行性研究,不把LLM主观打分冒充论文方法。新生成数据继承来源split;避免只围绕已成功场景扩增。
6. **导出并做契约检查。** 感知COCO和机器人时序格式分开;核原始输入/标签、实际命令对齐、采样频率、有效mask、相机/关节顺序、坐标和norm统计(只从训练集拟合)、label真值可见性、包hash。存在LeRobot/HDF5包也须核schema与目标模型合同,不以扩展名通过。
7. **交给明确训练规格。** DatasetRelease只交授权训练流程,另固定模型初始权重、损失/采样比例、训练配置和输出checkpoint;本轮不创建TrainingJob、预算或云任务。A类无需权重训练,继续候选与模板链;B类成果是实际checkpoint而不是一条经验发布记录。
8. **独立闭环评价。** 固定程序、整Agent、动作模型各走相应适配。评价原目标、资源/时延/动作代价、恢复次数、约束违反、分母与unknown;模型loss与语法检查不能替代任务成功。Sim结果只对其分布与引擎成立,真机适用需另获运行授权并实际验证。
9. **按产物分别采用。** Procedure走原经验发布链;模型checkpoint走模型制品/上线评价;DatasetRelease保留训练与评价血缘。新失败可进入后续开发池和回归,已被用于改进的测试版不继续冒充盲测。

## 8. 实际阅读覆盖、定位与科学核验状态

原件根:`original_doc/2026-11-02-luban2-paper-policy/`,从本笔记可用`../../../../original_doc/2026-11-02-luban2-paper-policy/`回读。所有全文/报告/问答文本pointer为`/result/content/0/text`。字符窗为Python Unicode字符串0起、右开区间;页码说明注明印刷页,问答XML页num在Fleet比印刷页通常多1,不混写。

| 原包 | 实际重点读窗(不是全文覆盖声明) | 内容性质和限制 |
|---|---|---|
| `data-discover.json` | pointer完整`[0,9330)`候选列表 | 候选元数据,不作科学结论 |
| `data-fleet-report.json` | `[0,27000)`曾输出但外层总输出截断;明确完整读到开头约1650字符与末尾250字符,后续只以full明确窗口核结论 | false实际fallback;不要据曾请求输出称全篇已读 |
| `data-fleet-full.json` | 开头`[0,600)`;`[19600,26900)`、`[56300,63200)`、`[110000,115100)`、`[132000,136000)`;其他搜索命中上下文仅导航 | 作者提取原文;方法、初始化、评价及作者附录局部核验;未全篇复现 |
| `data-fleet-queries.json` | XML页num7、9、19、43各`[0,1200)`;其他大输出发生截断,不记为完整页读取 | 筛选原文XML;关键主张另回读full窗 |
| `data-tuco-report.json` | 开头`[0,1600)`、末尾250字符;首次大输出截断部分不计完整 | false实际fallback |
| `data-tuco-full.json` | 开头`[0,600)`;`[9500,16600)`、`[23800,30000)`、`[39000,46500)`、`[71900,77700)`、`[87000,91600)`、`[98000,100535)`;搜索split等上下文作导航 | 作者提取原文;方法、表1、附录C与局限局部核验;参考文献窗口不作为读过被引论文 |
| `data-tuco-queries.json` | XML页num4、8、21各`[0,1200)` | 筛选原文XML,不当独立审评 |
| `data-active-report.json` | 开头`[0,1600)`、末尾250字符;首次大输出截断部分不计完整 | false实际fallback |
| `data-active-full.json` | 开头`[0,600)`;`[8700,11400)`、`[12900,14800)`、`[18100,21800)`、`[30900,32900)`、`[56500,58600)`、`[63200,65300)`;其他搜索上下文导航 | 作者提取原文;目标、评分/划分、表1、限制及算法局部核验 |
| `data-active-queries.json` | XML页num3、4、9各`[0,1200)` | 筛选原文XML;未声称取回所有PDF页 |

参数原件与各研究回执配套保留,全文URL请求未带版本但回包实际含上述版本,未来需重取时显式版本校验。三篇作者身份均已在原文实际读到;未核会议录用、期刊发表或其他后继版本。没有生成派生原文阅读件,没有把中文本笔记冒充作者报告。

本轮完成原件JSON解析、回执成功/非tool-error核对、三组false/true文本一致性核对、明确窗口回读与文件hash记录。没有模型训练、环境运行、统计复算或独立科研审查,论文结果均标作者报告,P15取舍均标建议。正式稿回并和SOURCE统一索引由主代理负责。

## 9. 原件与参数字节摘要

下表由实际落盘文件计算;文件只增不改,所有研究请求时间/ID在原回执;args是请求记录,不是科学证据。共享tools schema依赖另列末尾,不将临时路径说成已正式发布。

| 文件(相对原件根) | SHA-256 |
|---|---|
| `data-active-full.args.json` | `b79b9741067140fe216dc10268629509247cc2cae4ba06c72809e56400dbdab9` |
| `data-active-full.json` | `f251e70fb565136ccca62234f4c64a27f921f6f02bcbc49a8248992f7534f626` |
| `data-active-queries.args.json` | `79337ad91a146586e57ae0e60cdaea0f4cae1ba9b8fe081ac72f072db0014ce1` |
| `data-active-queries.json` | `cc13513fc98ca0d17e5b8138042892abf71553d6d31f230e8deb64be76ef6ad5` |
| `data-active-report.args.json` | `1347c1acdd0a7dfcea4adfc69dbee30c6df7a7de3f15acea1f5a42e7325c93de` |
| `data-active-report.json` | `fcddc7d17ce313eb4b51a6609b17ef973f71b61f9d72dae62fea7557ab0a8693` |
| `data-discover.args.json` | `bf1e5da3681dbdc8c3a0aaedfde033222de80910116a388c7cd25bd190d4aede` |
| `data-discover.json` | `f2da716245135d5374ab4388aea29cc32fec94a8c9c0c2f17cae3b67ff959652` |
| `data-fleet-full.args.json` | `a6a54324243118a6dfe1af8b7306b3a5ec82a29a9554b7439ef92034e529b0af` |
| `data-fleet-full.json` | `95da6f2b8bdf0094dd7f0eff3aa460c3d410efb9ea505cb89fcfb8286ea85fbd` |
| `data-fleet-queries.args.json` | `3d68be4e07d1775fe60cefbaa085145064d5b3e1ccdd8f9d530a88fdeb33bb87` |
| `data-fleet-queries.json` | `224326ffb4a5b707b8192e1b076a1cd68eda9dd398640ed6ee23b43d87394a21` |
| `data-fleet-report.args.json` | `1b65ec555f34dd5c88cb6f0df15ef4633a79ee47b210c4bd0bb87551d96880d5` |
| `data-fleet-report.json` | `9c26fa849d7480aed62ef4f420ed1fa25f40e591859bc85bfd87032307b66e98` |
| `data-tuco-full.args.json` | `b55d0bba227e6ec3f681f4d86c8d29d0ea979e0ee5f1a5c92ce4e00b06c72d4a` |
| `data-tuco-full.json` | `ea0d76c14c9065f47a189ba90bbefd361dd7d4d6576766fc3a4bc8f7df942d41` |
| `data-tuco-queries.args.json` | `fd8f961e064e63fdb0cff7a8778778ccd9031ab52a4c50f0e8f67ad274e7fb3d` |
| `data-tuco-queries.json` | `db54ed54db18a29cdf74dfdaf33b22f8d5d59bd317da9d31f774d3706099962a` |
| `data-tuco-report.args.json` | `9744d7908f1c59347b244ac0f10def92257effd8927f90188456c85fbfefc11a` |
| `data-tuco-report.json` | `c20694135c35cd9608dadee92524056bc321f57b9d0755fd741b793b93174044` |

工具schema依赖:`/tmp/p15-alpha-tools-20261102-r4.json`,SHA-256 `16a57b6176551447eb5c80f16a90ff81a02e9206616b43082b126f7cd4299cc9`,实际读到discover/content/queries schema;父代理需在正式原件包中登记该依赖,不能仅靠临时文件交付。

本轮本地回读文件字节摘要(源码根S为§5固定版本;四正式稿为本分支读取时版本,后续主代理修订应另记版本):

| 来源 | SHA-256 |
|---|---|
| `01-项目-projects/15-Agent技能工具钩子-skill-tool-hook/notes/2026-11-02-rsi-simulation-data/simulation-evidence.md` | `12f9758dc2459c0f8a73fd8b2f2d5bccd4d18cd43e5088a9dcced9765980e11f` |
| `01-项目-projects/15-Agent技能工具钩子-skill-tool-hook/notes/2026-11-02-rsi-simulation-data/dsh-data-evidence.md` | `76b897ccbc6697a10fa641b9942d4089891c200b97db63b333012d0106029314` |
| `01-项目-projects/15-Agent技能工具钩子-skill-tool-hook/2026-10-29-LUBAN-2.0-知识经验与工具执行架构.md` | `f3d92b9f7aab3fffa6474c73d97fa26fdbba91ee04948c941364a802fed2478a` |
| `01-项目-projects/15-Agent技能工具钩子-skill-tool-hook/2026-10-29-LUBAN-2.0-Agent运行时与动态装配设计.md` | `5b34c4d5472359718209e7af769e0cf76e8a540f0ced7f2881d5d50368b54206` |
| `01-项目-projects/15-Agent技能工具钩子-skill-tool-hook/2026-10-29-LUBAN-2.0-工具执行与程序复用协议.md` | `29181f03e377f7b84463740355289ef845f8cf91ae34cdab4ff4a6396f33979f` |
| `01-项目-projects/15-Agent技能工具钩子-skill-tool-hook/2026-10-29-LUBAN-2.0-本轮架构调整分工.md` | `a1a9bb1a7dd64651308fa29417af53c8c0df66d186539ce7b5bd982606a94b43` |
| `01-项目-projects/13-具身自进化-embodiedevo/code/.worktrees/r159-camera-alignment/tools/isaacsim/sil/recorder.py` | `2e61fd14d38b8ea5ae975c08f2a0103a1e8e8a40f4f68f8d4fef4084d87b1bfa` |
| `01-项目-projects/13-具身自进化-embodiedevo/code/.worktrees/r159-camera-alignment/src/sim_service/portal/evaluation.py` | `8a5fc437091e609c8a96cbd0ffbad4d4aa7399da85c3c72115f931b5d47cc4cd` |
| `01-项目-projects/13-具身自进化-embodiedevo/code/.worktrees/r159-camera-alignment/src/sim_service/resim/capture_harness.py` | `a543346b87848398c7e217ffa5aef5794e54b1a57c5e3c6ca9c89f77014399cf` |


### R4集成来源补记

父代理已将工具目录原字节归包到工作区original_doc/2026-11-02-luban2-paper-policy/mcp-tools.json(SHA256 16a57b6176551447eb5c80f16a90ff81a02e9206616b43082b126f7cd4299cc9),SOURCE.md与manifest.json登记全部回执/参数;上文/tmp路径仅记录当次实际读取位置,不再是离线交付的唯一依赖。
notes/2026-11-02-review-revisions/asset-automation-research.md
# 经验与程序模板自动筛选发布:外部做法与 P15 建议

核验时间:2026-11-02 14:48(Asia/Shanghai)。作者角色:外部机制取证与设计建议;本稿不改正式方案,不代表用户已选定自动化政策,不代表产品已实现或验收。

## 判断

**不能把“每条经验先由人批准”写成行业标准。** 本轮四个有代表性的官方来源同时覆盖研究系统和开源框架:Voyager 以执行反馈和自动 critic 决定技能收录;DSPy/GEPA 以评价函数和验证集自动保留候选;LangMem 提供后台自动提炼、合并与持久化;Hermes 明确默认允许 Agent 自由写 Skill,逐条人工审写是可选配置。它们支持“自动提炼、自动筛选已是现成技术路线”这个结论,**不构成市场采用率调查,也不能证明机器人共享发布已有统一标准**。[Voyager](https://voyager.minedojo.org/)、[GEPA](https://dspy.ai/current/api/optimizers/GEPA/overview/)、[LangMem](https://langchain-ai.github.io/langmem/concepts/conceptual_guide/)、[Hermes](https://hermes-agent.nousresearch.com/docs/user-guide/features/skills)。

对 P15 更合适的候选路线是:在已授权的用途和资源范围内,**自动提炼 → 独立机器审查 → 真实任务验证 → 按政策自动共享发布 → 持续复用观测与撤回**。人制定目标、评价标准和用途授权,处理证据矛盾、授权范围变化及不能自动裁决的例外;不把人逐条点选设为默认串行步骤。这是本稿建议,尚未成为用户裁定。

## 取证方法与范围

- 按 `luban-kb-query` 先执行 OV 语义查询“RSI ExperienceService 经验共享发布 独立验证 候选”,用于发现旧资料;命中多为历史设计/二手笔记,未据其摘要形成当前实现结论。当前 RSI 事实以本项目指定的 [源码证据稿](../2026-11-02-rsi-simulation-data/rsi-delta-evidence.md)及本次源码回读为准。
- 外网仅使用 Kimi WebBridge 真实浏览器,在 Google 分别搜索 Voyager、DSPy GEPA、LangMem、Hermes,再打开官方站点回读正文。浏览器会话 `p15-asset-research03`;只使用本任务新建标签页。
- 不将搜索摘要作为最终证据;未下载整站、复制整篇版权正文或创建新的原件目录。下文为机制概括与链接;未安装或运行这些框架。

## 四个代表性机制

| 对象与证据性质 | 官方正文确认的自动化 | 人的作用及限制 | 对 P15 可借鉴的部分 |
|---|---|---|---|
| **Voyager**:Minecraft 开放式学习研究系统 | 自动课程产生任务;程序执行结合环境反馈、执行错误与 critic 自验证;技能按描述向量索引并供后续任务组合。公开代码 `voyager.py:353–354` 在 `info["success"]` 时调用 `add_new_skill(info)`。默认 `critic_agent_mode="auto"`,也提供 manual 模式。 | 论文场景是 Minecraft;自动 critic 的判断不是物理机器人独立真实性担保。技能库收录也不是跨用户、跨用途受控发布协议。 | 成功轨迹可自动沉淀为代码资产,再检索组合;把保存条件与真实任务结果关联,无需每个成功技能人工命名入库。 |
| **DSPy/GEPA**:提示/程序文本优化框架 | 由执行轨迹和文字反馈提出变体,先在训练小批次运行,改进后在验证集评估,维护互补候选并返回验证集总体表现最优者。可记录候选谱系、逐样本成绩与评价预算。 | 用户提供任务集、metric(评价函数)及反馈;这属于评价设计,不等于人工逐条批准。其优化对象主要是语言模型系统的文本组件;验证集分数不自动等同真实机器人泛化或共享发布许可。 | 自动批量比较;保留按环境/任务条件互补的候选,结合失败理由,而非只按一次成功或单总分留一个模板。 |
| **LangMem**:长期记忆工具库 | 对对话与当前记忆状态进行模型提炼、扩展/合并;支持执行热路径主动保存及交互后后台反思;Store Managers 可自动持久化。 | 官方明确最佳记忆系统通常依赖应用需求,开发者应决定内容、形成时间与存储方式。其 procedural memory 指系统行为/提示规则;不是 P15 已绑定源码与合同的 Procedure。自动提炼并不证明提炼内容正确。 | 将在线候选保存与离线跨任务合并分开;避免重复、过度提炼;保留适用条件和原始来源,不能用摘要替换程序/证据。 |
| **Hermes Agent**:通用自改进 Agent | `skill_manage` 可创建/修改/删除技能;Agent 发现有价值的多步工作流、避坑路径或用户纠正时可保存。后台 review 可建议或暂存改动。官方明确 `skills.write_approval=false` 为默认,自由写入包含后台自改进;设为 true 才进入人工 approve/reject。 | 内容扫描与人工审批是独立设置;社区技能安装确认、外部内容扫描和 Agent 自建经验写入也不是同一流程。自由写个人本地 Skill 不证明可直接发给机器人共享执行。 | 自动写与例外人工可以配置共存;不要把“独立审查”偷换成人工,也不要把安装外部技能的确认流程套成所有自提炼经验的门槛。 |

来源与可定位段落:

1. Voyager [项目官方正文](https://voyager.minedojo.org/):“Skill Library”“Iterative Prompting Mechanism”“Self-verification”;公开实现 [固定版本 voyager.py](https://github.com/MineDojo/Voyager/blob/12025800790e16ddc9e4f61de18863859b4edf31/voyager/voyager.py#L353-L354)。浏览器从 main 页面回读后取得其文件最新 commit `12025800790e16ddc9e4f61de18863859b4edf31`;自动/人工 critic 选项在同文件初始化合同。此处引用代码行为,不把研究结果套到 LUBAN。
2. DSPy [GEPA 官方说明](https://dspy.ai/current/api/optimizers/GEPA/overview/):“How Does GEPA Work?”“Algorithm Summary”“Implementing Feedback Metrics”“DspyGEPAResult”;该页关联 2025 年 GEPA 论文,当前文档页面标日期 2026-08-21。采用当次读取机制,不把 current 永久固定为某个未来版本。
3. LangMem [Core Concepts](https://langchain-ai.github.io/langmem/concepts/conceptual_guide/):“Types of Memory”“Writing memories”“Integration Patterns”;[官方入口](https://langchain-ai.github.io/langmem/):“Key features”。两页均已回读。
4. Hermes [Skills System](https://hermes-agent.nousresearch.com/docs/user-guide/features/skills):“Agent-Managed Skills (skill_manage tool)”“When the Agent Creates Skills”“Gating agent skill writes (skills.write_approval)”。已读取正文并针对中段完整回读,以避免长页面截断;默认自由写和可选人工门为该页当次公开合同,不声称本机已安装或实测。

## 与当前 RSI 底座的关系

2026-11-02 指定 Agent 工作树 `15cf94a5f570b0c98e27855a51621d9ea34b7b24` 已有 Lesson/Procedure 在线私有候选、完整读回与显式采用证明;`ExperienceService` 已有 `register_candidate`、`validate_candidate`、`publish`、`withdraw`。候选保存返回未发布状态;共享发布要求可信独立 verifier、准确版本/hash、证据引用及经验级核验包装;Procedure 另绑定准确程序版本/hash,区分 `simulation|field`。**现有方法没有规定“verifier 必须是人”或“每条必须有人工按钮”**。但这不等于已经完成自动发布:实际装配仍将独立验证器设为 unavailable,未核验到外部 publish/validate 的运行接线。来源:本项目 [rsi-delta-evidence.md 第 3 节与装配缺口增补](../2026-11-02-rsi-simulation-data/rsi-delta-evidence.md);本次回读 `P13/code/LUBAN-Agent-RSI/backend/luban/application/rsi/experience.py:439–538`、`infra/bootstrap/rsi_private_experience.py:10–24`,并重新核对该工作树 HEAD。

因此应**复用已有候选/版本/读回/采用/发布/撤回合同,补自动评审与发布编排接线**,不能另造平行经验库,也不能宣称现在已有线上自动发布 RPC。独立审查者可以是受信机器验证器或独立 Agent;独立意味着不能由作者仅凭自己的生成结论签发通过,也不意味着模型投票可替代真实观测。

当前旧稿“首版共享发布由维护者人工确认”在 [未决清单 D05](../2026-11-02-rsi-simulation-data/design-summary-and-open-decisions.md)中已明确是建议、待决定。本次外部调查不能把该建议升级为用户决定,应把它作为可选择政策之一重新讨论。

## 推荐自动流程(待决定、待实施)

1. **自动形成候选**:任务结束或批次收口后,从准确 run/程序 revision/观测/视频/错误中提炼 Lesson 或 Procedure。在线候选可继续保存,私有源不可原地改成共享;跨任务筛选形成有源谱系的新共享候选。去重、归并相似规则,保留反例与未知,不能只提炼最终成功回合。
2. **自动做类型审查与证据检查**:格式/合同/hash/环境依赖先做确定性检查;独立 Agent 回读准确来源,核对论断是否超出证据、是否与反例冲突。Lesson 的方法条件与证据审查不伪造 Stage;如其声称能提升任务效果,应另做效果试验。Procedure 需要源码、参数与前后条件审查。现经验核验包装对 completed/future Stage 的要求需类型化扩展,不能为了自动通过补假 Stage。
3. **运行独立验证任务**:在已授权资源范围内自动挑选冻结案例/初态,复用原 `run()/step(Capability)` 和真实 Stage/观测链执行。候选与评价案例分开;若修改模板源码则新建版本,不能把自修订后的成功归到原冻结模板。保留每次失败、环境错误、未知和代价。参数/手型/后端/对象条件不同可形成多个适用资产,不用总体平均分掩盖局部退化。
4. **按可配置政策自动选用/发布**:机器验证器产生绑定准确 version/hash 的报告;发布执行者检查用途、证据覆盖、独立性、对比要求、无未决冲突和期望 head revision 后,复用 `publish` 原子更新共享头。这里的“批准”可由已授权政策自动作出;不要增加每条人工点选的隐藏步骤。阈值、最小覆盖和回归标准应随具体任务目标定义,外部框架没有替 P15 决定统一数字。
5. **自动分发、观察、撤回**:后续任务按用途/环境读取共享准确版本,完整曝光后生成本任务新 ProgramRevision,并记录 applied/not_applied;真实执行结果回流,满足已定义的退化/反例政策可自动暂停分发或撤回。发布回执、索引可查、完整读回、实际采用、物理成功分别统计。

建议首版自动化先覆盖已授权的 `simulation` 范围,具备真实案例证据后按政策发布;`field` 需要自己对应的实测/授权与适用条件,不能因为 simulation 通过而自动扩域。这是用途分开,并非要求每次 field 经验都人工点批准。

## 人工只处理明确例外

推荐把人保留在:变更目标或评价政策、扩展共享主体/用途或真机执行授权;证据冲突/真实性未知而机器无法裁决;要求推翻既定拒绝规则或撤回决定。自动检查失败、缺证、unknown、版本头竞争先保持 candidate/隔离/重评或对账,**不自动转为“所有失败都等人审批”**。选择 Hermes 式逐条人工开关也可以,但应注明是本项目选用的政策与理由,不称行业惯例。

本稿未实施上述流程,未修改产品/正式稿/HTML,未启动模型优化或机器人任务。剩余设计工作是:决定自动化授权范围,接通独立验证器和受控发布执行者,按 Lesson/Procedure 补齐报告合同,定义各类任务评价/反例/撤回政策并完成真实闭环验收。
notes/2026-11-02-hub-task-audit/live-task-design-impact.md
# 已有World搬运业务对2.0设计的窄补丁

2026-11-02,Asia/Shanghai。本文为只读取证后的设计建议,未修改产品或正式主稿,未调用网络、模型、业务接口、仿真或机器人。

## 结论与样本边界

应该用已经定位到的World任务作为“既有业务入口”的贯穿案例,而不是将RSI开发试验当作该业务。原任务是`mission-dashboard-e649f1e325f5f28dd5ede978a297dd5f`、“手臂装配搬运”,创建时间`2026-11-02T07:26:43.923196Z`(北京时间15:26:43),从指定工作台S4搬到另一工作台S1。只读World原件显示`mission_source_type=world`、`creation_source=MANUAL`、executor=`5474ba96-434d-4b56-886a-32866dddb532`,状态`SUCCEEDED`。这证明存在正式系统里的业务任务记录;MANUAL不证明具体发起人、商业订单或物理执行效果,不能据此声称生产订单已实际搬运完成。

单任务原件位置:`/Users/admin/.local/state/luban-harness/project15/hub-task-audit-20261102/world-beijing-page1.json`,按上述mission_id定位其`mission_spec`与`extends_info.world_completion`。本轮仅读取该条,不复制全量列表到项目。主代理另已核Hub登记`runtime_kind=real`/`execution_system=external_linkerbot`,Agent OpenAPI为Lightweight Mission Agent、列表中同任务为SUCCEEDED/“搬运完成”;这部分是主代理现场取证交接,本子任务没有重查线上。具体通道经HTTP还是ROS、当时控制器实际版本与物理证据仍未核;不因存在HTTP adapter就断言现场选的是HTTP。

World记录`mission_status_message="已完成 · World 统一结算"`,`world_completion.method=agent`、previous_status=RUNNING、results_confirmed=true;但`confirmation.execution_stopped=false`、`slots=[]`、`snapshot=""`,合同`completion_contract.slots`和`completion_contract.rules.slots`也为空。可准确称“系统已结算成功、Agent报告完成”;不能据此称独立物理验收、设备已停止或源/目标槽位实测已满足。空集合不是正面物理证明,execution_stopped=false也不单独证明设备仍在运动。

## 源码独立核对

下文A=`01-项目-projects/13-具身自进化-embodiedevo/code/LUBAN-Agent-RSI/backend/luban/`,HEAD=`15cf94a5f570b0c98e27855a51621d9ea34b7b24`;所读指定文件无工作树改动。W=`/tmp/r209-world-preflight-source/`,HEAD=`2ea1c7a405f8211686f5d840df84ae19a643113f`。这些是固定取证源码,不能冒称当前线上制品一致。

| 范围 | 实际实现证据 | 对本案含义 |
|---|---|---|
| 轻量监控 | A `server/lightweight_app.py:43–65`装配mission合同/轻量列表/外部回调,health说明external_linkerbot;`server/http/routers/lightweight_missions.py:26–69`提供带keyword/分页的`/api/missions/list` | 轻量Agent只读应按其实际API,不因full Agent详情/程序执行历史接口405就推任务不存在。 |
| 任务准入 | A `server/http/routers/mission_contract.py:381–419`验World permit、经mission_admission及store.accept;执行系统不匹配返回503而非改任务 | 保留World/Robot/任务身份及原授权,不为新设计另造direct副本。 |
| 执行器选择 | A `infra/bootstrap/mission.py:78–97`依安装配置选择external_linkerbot或Framework;`:46–75`外部协议由配置选择 | 不能按mission文本、模型选择或超时动态切协议;执行器选择不是每任务新造调度层。 |
| 外部控制路径 | A `application/mission_contract.py:100–102,815–898`按external执行器提交不可变任务、后续查询/收状态;`infra/adapter/linkerbot/commands.py:48–69`投影验证后调用dispatch/query/cancel | 此路径存在独立任务控制器,不等于DSH生成程序/Framework Stage。原样本没有可证DSH/程序/Stage经历,不补造这些字段。 |
| HTTP可选适配 | A `infra/adapter/linkerbot/http_executor.py:56–101`使用`/linkerbot/missions/{operation}`并区分不确定写调用;`:103–123`接收回调/查询流 | 是外部执行器的一种实现证据,不是本次运行协议的证明。 |
| 状态语义 | A `application/mission_contract.py:1007–1058`仅接收准确mission关联的MissionStatusReport并持久化;`:1583–1626`按原版本/原report_id向World同步 | 接收/状态上报/World结算和物理效果分别记录,保原身份及unknown,后台学习不得重发任务。 |
| World报告/取消 | W `internal/server/http/scheduling_handlers.go:1028–1093`核Robot授权及row_version;`mission_cancel_handlers.go:19–41,79–85`原任务查询与已终态直接返回 | 查到SUCCEEDED或取消接口返回终态都不能替代设备停止证明。 |

固定W源码未定位到当前记录中的`completion_contract`/`world_completion.confirmation`完整实现,因此本文不以旧W源码解释当前“统一结算”的精确规则。空字段及false来自实际单条记录,不从旧实现推定当前服务器有漏洞。

## 任务适配器怎样承接

设计沿现有World任务接收、许可、原任务幂等、分配、状态回报入口,在Agent现有宿主按实际安装executor分流:external_linkerbot保留外部dispatch/query/cancel及控制器回报;luban_framework且真实装配DSH的新版本,才进入本设计程序/Capability/Stage链。不要把external任务自动转换成DSH重做,更不能对已SUCCEEDED任务回放来补缺失证据。

DSH可以在未来获准且已实际接通的任务运行时承担规划/判断;若外部控制器只有Mission级命令合同,就以这一级真实能力包装并明确粒度,不虚构低层Capability或Stage。任务已经由外部控制器执行时,后台只分析已有证据;将来要改进其执行,必须先核控制器可用合同和验证条件,不绕过原任务所有者直接发原语。

## 空判据对经验与自动发布的影响

保留World原SUCCEEDED不改历史;后台候选单独标注“系统完成已确认、物理效果未独立核验、停止证据未提供、程序/Stage不适用或未采集”。既有manifest/验证报告补这些实际适用范围,不另建任务状态协议。

这条记录可作为任务结构/来源关联、监控接口选择及证据缺口的资料样本;不能单独训练成物理搬运成功标签,不能提炼“该抓姿/程序有效”的Procedure,也不能按空slots全部满足自动发布物理成功经验。Lesson若仅陈述已核接口/证据边界,可按现有资料类独审验证;主张物理方法有效的Lesson、Procedure须补固定来源的实际控制/观测与独立效果验证。在冻结合同里应新增什么判据,属于未来任务/模板版本建议,不回填历史空判据、不伪造新测量。

## A/B/C/D窄改建议

| 既有方向 | 只需增补的设计 | 验收边界 |
|---|---|---|
| A · Agent框架 | A1承接World原任务时先核安装执行系统;原外部执行器保持原路径;DSH Session仅在实际启动时绑定。A3后台消费同一Mission的封存记录,保live任务、开发试验、联调来源 | external样本不产生虚构DSH session/run,恢复不重新dispatch已完成任务。 |
| B · 工具封装与执行 | B1按executor可用合同装工具;轻量列表与原任务查询按实际支持映射。B2程序/Stage仅适用Framework;外部控制器仍由现有executor负责,不为统一图把任务拆成假Stage | 405按不支持处理;任务状态/受理/效果/停止各不替代,未公开低层能力不生成假调用。 |
| C · 知识经验资产 | C2按来源和证据完整度分类;C3在现type-aware验证中补物理主张证据要求,空判据不视作通过物理效果;C4按execution_system/profile/用途限制采用 | 本样本不能直接成为已验证搬运Procedure;已核接口知识可独立作为资料候选,不把全条样本丢弃。 |
| D · 数据采集 | D1/D3复用原Mission/World/Robot/版本、完成确认与来源时间;外部控制器原request/report有则关联,无则列缺口;DSH/程序/Stage无经历记不适用,历史未采记未采。D2媒体/停止证据缺失如实 | 不以空slots/snapshot或SUCCEEDED补造录像、动作轨迹、物理成功/已停止;不要求为采集重新执行业务。 |

本文仅给四方向窄补丁,不新增Hub/World调度器、任务数据库或通用协议平台。业务系统成功记录保持原归属,学习和自动发布的证据等级另行核定。
original_doc/2026-11-02-dsh-upstream-core/SOURCE.md
# DSH官方源码原件

取得:2026-11-02 Asia/Shanghai。官方HEAD经git ls-remote核为ce7073d51254c26cd63b22a60835b8f948deb447。git clone因LibreSSL连接失败两次;同一官方commit源码由Python urllib获取codeload归档。

来源:https://github.com/deepseek-ai/deepseek-harness/tree/ce7073d51254c26cd63b22a60835b8f948deb447
归档:https://codeload.github.com/deepseek-ai/deepseek-harness/tar.gz/ce7073d51254c26cd63b22a60835b8f948deb447

归档SHA256:c3f334cc42e5838303b0232b813304230787708895ef21b18df5814cb5d439ea。公开源码;许可见repo/LICENSE。repo为该归档原样解包,无Git目录。原件只增不改。读取不代表升级或运行任何DSH实例。
notes/2026-11-03-contextdb-task-plan/r233-evidence.md
# RSI R233 对齐证据

2026-11-03 核对 P13 项目及本地源码。以下路径相对工作区根。

- `01-项目-projects/13-具身自进化-embodiedevo/STATUS.md:1` 10:37 最新项目记录。R233 已部署且隔离验证通过,10:22 模型探针 429,新真实任务尚未下发。后面的 fcefa4e8 段属于历史。
- `01-项目-projects/13-具身自进化-embodiedevo/notes/development-2026-10-29/R233-task-plan-tools.md` 记录设计、固定提交 `de74ed3993890bba3c964e2a69755e03a8385467` 和 10:26 部署验收。R233 新任务的真实模型计划调用当时尚待验证。
- 源码位于 P13 `code/.worktrees/r233-task-plan/backend/luban/`。 `infra/adapter/tools/rsi_task_plan.py:16` 定义严格入参,:38 与 :57 定义读写工具。 `infra/bootstrap/rsi_task_tools.py:242` 及 :558 负责工具装配和可信身份绑定。
- `infra/data/sqlite/agent_task_sessions.py:68` 定义版本表,:516 检查会话/run/任务步骤,:543 追加整版及同调用幂等。 `application/agent_runtime/task_loop.py:1595` 与 :1722 负责原调用归档补结算。
- `infra/adapter/tools/rsi_task_context.py:514` 提供 `task_read` 的 `full` / `progress`。后者读已记录正式验收、阶段及经验进度,缺失返回不可用。R233 计划条目是有序描述、模型状态和原因。
- 本轮仅对齐 P15 设计与图。ContextDB 的两个运行资源域为本轮设计决定,P13 的部署记录只说明 RSI Agent 计划工具的状态。
notes/2026-11-02-dsh-core-r8/integration-work.md
# A方向:DSH真实集成与可交接工作包

2026-11-02;设计拆分,未实施。只读固定源码;没有运行产品、模型、仿真、HTML/DOM或部署。按 `luban-kb-query` 路C读取指定快照,未用旧知识页替代源码。

## 1. 结论与版本边界

A方向应把原任务宿主、DSH原生引擎、LUBAN业务插件、Python边界拆开交付。保留DSH的Agent Loop、Session、工具流水线、Skill供给、持久化、压缩和子代理;A新增业务任务绑定、批准资产装配、案例资源分配和证据桥。B继续持有具体业务handler、程序环境及逐step受理;C持有准确运行知识/批准发布;D持有关联、游标、跨源封存。不能把“内嵌DSH”做成另一套模型循环或Session数据库。

当前取证 `R=original_doc/2026-11-02-dsh-upstream-core/repo/`,官方提交 `ce7073d51254c26cd63b22a60835b8f948deb447`,来源及归档摘要见该批次 `SOURCE.md:3-8`。下文 `R/` 均为工作区根相对路径。本稿先读取10月28日 `f3803c96974ad4a94195fb97e5c637e9c2a3afe3` 快照,再对最新树逐项回核;主要原生接口字节一致,SDK新增query必须更新认识,差量见末节。当前取证不表示升级运行实例。

设计输入为P15根四主稿:架构、运行时、统一协议、分工(文件名均保留2026-10-29,内容为11月2日)。特别承接分工 `A1–A4/B1–B4/C1–C4/D1–D4`,协议 `P6/P7/P8/P13/Q13/Q14`。P13当前RSI仍使用自身TaskLoop,详见既有 `notes/2026-11-02-service-flow-r7/current-rsi-delta.md:11-15,35-49`;DSH接线是目标,并非既有部署。

## 2. 已有能力怎样保留、配置及扩展

| 层次 | 已核事实和证据 | 本轮设计归属 |
|---|---|---|
| 原生引擎 | `R/packages/core/agent/src/index.ts:150-166`:AgentHandle的dispose停止循环、等退出、注销Agent/Session并卸载scope。`R/packages/core/agent-loop/src/index.ts:495-544`:原有序teardown含cancel、whenIdle、scope.dispose、writer.close、注册移除。 | 原样组合;不重写Agent Loop/Session/factory;A1只拥有handle并正确选择业务释放时机。 |
| 工具贡献和范围 | `R/packages/core/tools/src/index.ts:121-152`:register有作用域、重复名检查、output.schema/render和disposer;`156-165`:restrict只约束global,scope-local仍可见;`264-285`:resolve形成完整受理集合。 | A2可信插件管理贡献及最终读回;不能只查局部注册表,也不能以restrict推断所有本地Tool均被屏蔽。 |
| 工具政策 | `R/packages/core/tools/src/events.ts:8-49`:pre/execute/post/result及取消、原身份与observe-only约束;`R/packages/core/tools/src/index.ts:379-400`:guard为单调拒绝。 | pre/guard做模型Tool边界准入;execute透传至B并等待原结果;post只改模型反馈,不撤销动作;result供D采必要canonical结果。hook名称不等于同名durable事件。 |
| Skill | `R/packages/skill/skill/src/index.ts:247-274,380-422`:Provider同步注册、list/get异步取料、scope层、invalidate与注销。`R/packages/skill/tool-skill/src/index.ts:74-89,128-145`:原生skill工具装正文并按可见性提供目录。 | 原生skill保留;A2实现批准版本Provider与资源reader;C提供正文/资源,Provider不是新的技能执行器。 |
| 持久化政策 | `R/packages/session/session-checkpoint-policy/src/index.ts:63-82`:模型stream前、顶层Tool body前、agent/pre-step调用sessions.flush。`R/packages/core/session/src/index.ts:1329-1358`:flush等待全部监听者,返回是否有监听者参与。 | 配置保留已有checkpoint政策和真实后端;A4补跨进程查询/回执,不能重复建通用checkpoint流水线。flush=false不能记durable。 |
| 历史读取 | `R/packages/session/session-persistence/src/index.ts:162-174`:read不争写权;`handle.ts:73-109`:分页读与write handle flush分离。`R/packages/session-query/session-query/src/index.ts:134-145`:observeSession提供原生live/cold观察租约。 | A4只读受限桥;原writer仍属原生命周期,D不新开writer、不tail解析存储格式。 |
| 子代理 | `R/packages/subagent/subagent/src/index.ts:398-428`:原生child/descendant目录不用启动Agent;`types.ts:80-108`:start/end由runId配对并带provider/local。 | 配置原生fork/continuation及容量;A3只管业务case与物理资源,A4保存activation关联,不再写子代理调度器。 |
| 压缩 | `R/packages/compaction/compaction-basic/src/region.ts:508`已有sourceEventSeqs。 | 配置保留原生压缩,D记录完整log和实际surface血缘;不能自己删历史来处理上下文。 |

## 3. Python客户端和SDK服务端的真实边界

**当前可达:** `R/packages/sdk/server/src/server.ts:497-540`穷尽分发initialize、session/prompt、session/query、session/resume、session/wait、working-directory/get/set、shutdown。prompt用原agent.followup(`:270-287`),resume无输入恢复(`:349-364`),wait等根及原生后代idle(`:374-389`)。`R/python/sdk/src/deepseek_harness/client.py:26-40`有profile、patches等启动配置;`:261-279`有泛型request。泛型request支持已有服务端方法,不会让未实现的方法可用。

**新增query的范围:** SDK `server.ts:297-339`把Desktop式输入路由到原生命令或prompt,`query-input.ts:14-26`只识别compact、明确permission变更、plan、goal,不是任意插件命令/RPC扩展口;识别成功但命令失败不会退回prompt。Python高层 `api.py:220-237`已改为调用query,等待命令活动/goal的规则不同于普通prompt。A0/A1需明确选择:业务内容用显式session_prompt,受信管理输入才按原命令通路;不能把含斜杠的原任务文本意外当权限/goal命令。不能把此query误当会话历史查询。

**live并不完整:** server `:171-195`发送session.event及按Session创建产生的subagent.started;`:197-214`仅向SDK报告local子代理结束,未携带原生activation runId。Python `client.py:622-665`根据所收到subagent.started维护父子边,而非从原生持久目录重建完整树。断连/冷恢复/再次activation不可只靠该缓存收全。

**缺口在SDK桥而非DSH本体:** 最新SDK仍没有history read、明确cut flush、原生树/activation查询、运行时装配管理、单Session cancel/dispose专用端点。DSH原生 `R/packages/api/session-controller/src/index.ts:516-541,550-552`已存在Remote cancel、events、observeEvent;子树和runId也见上表。SDK插件 `R/packages/sdk/server/src/index.ts:78-94`直接把request交固定server处理,没有本稿已核的任意第三方method注册口;query也只认原生白名单命令。不能只在Cordis中提供名叫capture的服务便宣称Python能调用。

**建议最小实现选择:** 保留官方SDK stdio/prompt/query/resume/wait。LUBAN可信插件提供业务service;在SDK server/protocol/client边界加明确命名空间和类型的受限转发,或经上游实际支持的扩展路由接入,实施前择一固定。若官方没有扩展口,维护最小局部patch及上游差量测试;不要复制整套server或另造模型调度服务。协议字段中request_id、权限、producer instance/generation和明确cuts必须验证。首版不引入第二日志存储;D的导出只作固定只读证据。

全局shutdown不是任务结束:server `:451-479`drain全部后代并dispose所持Session;SDK插件 `index.ts:39-49,69-93`还会dispose根runtime并退出进程。不能拿Python client.close当某个任务取消或维护结束。多任务共享runtime须有局部受限cancel/dispose桥;若首版按任务独立进程,也必须先结算B原动作,不能以进程退出证明设备停止。

## 4. A侧细分工作包(均为设计建议,尚未写产品)

### A0 · 组合配置与版本兼容基线(A1前置)

- 输入:固定DSH提交/包版本、Agent executor路线、B handler合同、C资产reader合同、D required sources。
- 主改位置:LUBAN Agent组合根及专用DSH profile/patch配置;不改core loop。核官方已有agent-loop、tools、skill/tool-skill、真实session-persistence后端、checkpoint政策、compaction、subagent/fork和SDK server的依赖及加载顺序。
- 输出:同一runtime的服务/插件清单、启动ready、实际注册集合、权限和版本摘要;stdout保留协议帧(SDK `index.ts:1-7`)。
- 合作:A牵头,B/C/D提供各自依赖;先固定SDK进程拓扑及原权限边界。
- 验收:无模型的组合加载检查、缺依赖fail-closed、重复/保留名明确失败、无第二factory/消息writer、未装的额外Tool不泄露。ready只证明组合就绪。

### A1a · 原任务与DSH身份绑定(原A1)

- 输入:原World/Agent任务身份和不可变executor配置、原授权、目标/判据、A0组合。
- 主改位置:Agent原mission任务宿主、`infra/bootstrap/mission.py`路线选择及 `infra/bootstrap/rsi_task_runtime.py`组合;通过官方SDK或原生AgentHandle创建真实DSH实例,不新建模型request循环。
- 输出:RuntimeAssembly及SessionRunLink,含source_task_ref、真实task/run、session、assembly、原Framework上下文;外部executor只产生原记录关联,其DSH字段not_applicable。
- 交接:B1/B2取得同一任务的业务调用上下文;D1取得可信source_requirements与真实producer;C1提供该型号current成员。
- 依赖:A0、B任务上下文;执行器迁移仅作用新运行。
- 验收:重复World受理不重派;外部任务不生成空壳Session;prompt/wait/恢复不被误记物理成功;任务、Session、turn和program_run可独立追查。

### A1b · 业务环境与模型生命周期分离(原A1+A4)

- 输入:业务状态、DSH状态、B程序进程及原Stage停止/unknown回执、A1a关联。
- 主改位置:原TaskLoop finally/root.close责任迁入任务宿主(当前Agent `backend/luban/application/agent_runtime/task_loop.py:1497-1498`;见R7差量稿固定Agent SHA);保留B程序环境,可信插件持原AgentHandle生命周期;SDK补局部cancel/dispose受限桥。
- 输出:明确的“封新派发→请求原操作取消/对账→结算停止或隔离unknown→flush→释放”回执;普通turn/idle维护不释放程序。
- 交接:B负责原Stage取消/程序关闭,D保存停止范围及最终cut,A只在已知边界释放case和handle。
- 依赖:B2、A4b。原生dispose按DSH已有序teardown执行,不复制实现。
- 验收:连续两个turn/三次程序修订仍是同任务环境;断线不重发动作;取消失败仍可查原操作;单任务结束不shutdown共享runtime;disposed不改写physical_stop=confirmed。

### A2a · 批准Tool/Skill供给与最终集合(原A2)

- 输入:C current_revision/manifest及不可变正文/resource hash、B可信handler registry引用、任务授权与后端范围。
- 主改位置:Agent可信`luban-runtime`插件、批准资产reader及原生scope register/SkillProvider;用专用组合scope提供LUBAN handler,禁止数据库任意eval/import。
- 输出:desired/applied assembly、实际Tool schema/hash/handler身份、Skill目录/正文/资源可读证明;模型Tool与程序Capability集合分别记录。
- 交接:C1/C4供资源与发布变更;B1交schema、canonical输出合同和handler;D1收准确applied成员及模型可见版本。
- 依赖:A0、C唯一current及资源合同、B handler适配。
- 验收:同名冲突/坏hash/缺依赖明确错误;scope/global/保留transport都核完整集合;skill全文与资源实际读到;Skill声明不能扩大Tool权限;激活回执丢失按原change核集合,不换ID重装。

### A2b · 空闲维护与逐调用current受理(原A2,和B2共同承担)

- 输入:当前发布CAS序号、pending change、在途Tool批次、排队输入和B逐step受理位置。
- 主改位置:Agent任务宿主管理状态、可信插件维护边界和最终集合读回;B2程序step宿主增加同current发布线性化的受理检查。不能只挂DSH外层pre-execute:一次execute_code内含多次step。
- 输出:原change的pending/applied/conflict;每个新调用准确current/合同/受理时刻;CURRENT_CHANGED沿原程序边界回到外层Tool,再在整批次结算后进入维护。
- 合作:C给原子current读/CAS语义,B保已受理操作旧身份并让未受理调用交回,D保存受理和采用证明。
- 依赖:A2a、C4、B2;A只阻下一模型dispatch,不在执行中的变更Tool内等待自己idle。
- 验收:发布前受理的操作原实现结算;发布后未受理step不继续旧实现;排队输入不丢;Tool/Skill切换不无条件杀程序;内容损坏不回退历史;长程序current变化无死锁。

### A3a · 改进工作项认领与原生子代理关联(原A3)

- 输入:D不可变manifest、source_task_ref、分析器版本/改进目标、C候选用途。
- 主改位置:Agent既有业务账本扩ImprovementWorkItem及CAS认领;复用DSH原生spawn/fork/消息/activation,不另建Agent队列执行器。
- 输出:持久去重键、claim_generation、真实分析/作者/独审Session及activation关联;补证生成后继工作项,未知外部请求先reconciling。
- 合作:D3交封存事件及连续补扫游标;C组织候选/独审问题;A4提供原生树和activation。
- 依赖:A1a、A4a、D3。external业务无source_run也可认领;后继分析Session不可伪装原现场经历。
- 验收:事件与补扫重复输入只认领一次;重启不重复创建分析;作者/独审上下文隔离;原生子代理完成不直接标候选已通过。

### A3b · 案例/worker身份与资源占有(原A3)

- 输入:冻结TrialBatch/Case、B真实后端能力与资源清单、D采集要求、实际原生子代理容量。
- 主改位置:Agent业务模块的WorkerAssignment持久分配;不改DSH并发算法、不写新的机器人调度服务。
- 输出:case_attempt→worker/generation→Agent/Framework/Sim端点、目录/ROS/GPU/录制资源占有;取消关联和停止结算状态。
- 合作:B3实际创建/准备/reset/读回;D2确认必采ready与原件;C/B4提供盲测和比较规格。
- 依赖:A3a、B3资源合同;先一worker实证再申请多worker验收。
- 验收:一个worker只有一活动assignment;两个case不串控/串reset;DSH子代理end或租约到期不自动还池;unknown隔离并保旧generation;迟到回执不归新attempt。DSH容量和GPU/物理容量分开报告。

### A4a/A4b · 原生证据读取与SDK最小桥(原A4)

- 输入:D的授权订阅、session/from_seq/through_seq、原实例/generation、request_id;A提供真实writer/Session所有权,A3提供case关联。
- 主改位置:可信插件复用原SessionController.events或SessionQuery观察/持久read;SDK protocol/server及Python侧只补受限typed代理和错误;D另实现consumer ledger/seal。原生消息不双写。
- 输出:A4a交live与固定cut分页、header/格式/seed/子树及activation runId;A4b通过原sessions.flush交durable cut及barrier,失败/false/unknown不造成功;同seq摘要冲突可追查。
- 交接:D1收source generation、顺序和树;D3收cut与durability;B1交canonical值,B2交程序每step/原Stage证据。canonical value不默认在durable日志中(`R/packages/core/tools/src/contracts.ts:321-325`),单靠消息采集无法补足原执行结果。
- 依赖:A0原持久化后端、A1b释放顺序、A3关联;Python传输超时不重发模型/物理动作。
- 验收:先订阅后固定cut补读,seed/冷恢复/多activation/并行完成/压缩/断线缺口均覆盖;flush监听失败或未装后端可见;先source_durable再consumer_persisted;不同租户/session禁止广播越权;跨源seal由D,不在A伪造统一原子落盘。

## 5. 可以并行与必须先后

先固定A0和A1a+B1/B2/D1的最小合同,再并行实施A2a资产供给、A1b生命周期、A4原生数据桥;A2b依赖C发布CAS及B逐step边界,单纯Tool注册完成不能验收。A3a可用固定D manifest做只读业务分析接线,A3b必须等B真实隔离/停止合同后才进入资源联调。C3独审与发布、D3封存不会因A4已有SDK桥自动完成。

首条联调交付应同时带:一个真实入站身份、实际DSH Session/assembly、一个原生Tool调用、一个程序多step、原Stage结果回程序再回模型、原消息cut/flush及D关联回执。后续再验一个隔离case、两worker隔离、候选验证发布和新任务准确采用。上述均为后续验收要求,本轮仅完成源码/设计核对。

## 6. 上游最新版本差量复核

已完成最新归档只读差量回核。18个关键文件中16个与10月28日快照逐字节一致:core tools的index/events/contracts,core agent/index与agent-loop/index、core session/index、session-persistence的index/handle、session-checkpoint-policy/index、skill与tool-skill/index、subagent的index/types、SDK server/index、SessionController/index、SessionQuery/index。对应证据行号可直接落到本稿当前R树。

其余两个文件发生变化,已用diff及新原文回读:

- `R/packages/sdk/server/src/server.ts`新增query及活动/goal管理、图片name透传、shutdown等待命令任务与goal生命周期释放。当前route在`:497-540`,query在`:297-339`,live通知在`:171-214`。没有新增本稿所需read/flush/activation/资产管理专用SDK接口。
- `R/python/sdk/src/deepseek_harness/client.py`新增`_query`(`:228-241`),通知订阅next可本地超时;父子通知缓存的实质不变但行号移至`:622-665`。另回读新`api.py:220-272`及`query-input.ts:14-26`,确认高层run的命令语义与白名单限制。

本轮没有运行SDK、模型或原生测试;验收只完成版本来源、源码字节比较、接口/调用关系和工作包覆盖核对。最新上游在此范围并未把内部API自动暴露成Python历史/flush接口;也不能据SDK缺桥说整个DSH缺历史/取消/子树。
notes/2026-11-02-service-flow-r7/current-rsi-delta.md
# R7总图与P13当前RSI差量核对

2026-11-02,只读源码/文档核对。仅保存本稿;没有运行产品、HTML、测试、模型、仿真或机器人,没有SSH/网络操作。按`luban-kb-query`路C读取开发项目实际工作树,不用旧wiki覆盖当前实现。

## 结论

R7 `figure-contract.md`的程序主链仍成立:任务程序由Agent持续Python子进程运行,`run()`中的`step(Capability)`回调宿主,经原Stage、能力宿主、Gateway和Provider执行,结果先回程序。`program_validate`和`execute_code({})`的基本合同未改变;外部执行器分流仍保留。

**必须更新的是R209交付状态和取证版本。** P15四主稿仍把R209规划/驱动/新手力写成待实施;P13已提交并记录实际部署六项增补能力、SDK六维力投影和匹配运行手册。不能继续写成“当前未注册/待开发”,也不能据部署/ready推定真实GPU消费、手部物理效果或抓取闭环已经验收。

**DSH内嵌仍是P15目标接线。** 本次读取的P13 R209任务运行入口仍创建自身`TaskLoop`和`ExistingModelAdapter`,不能把P13的实际RSI运行画成已经使用DSH原生Session/Tool管线。R7将此路径明确为“目标Framework/DSH链”是合适的。

## 版本与编辑态

P13项目HEAD:`c6820dadf0a612c96a37fee7e090146cf6ccb0e1`。本次读取的项目index中三个gitlink,以及对应干净工作树HEAD一致:

|服务|完整SHA|实际回读工作树(P13相对路径)|
|---|---|---|
|Agent|`d7dccb6a8c4dd58ed1480d6f3ef4c50f52030acb`|`code/.worktrees/r209-agent-runtime`|
|Framework|`6cf303c0f74d11b607b3e14281282090ff78f793`|`code/.worktrees/r209-framework-integration`|
|SimService|`dd617b25d73a83568ba6db8a9cade0d71246e901`|`code/.worktrees/r209-sim-hand`|

三棵R209树`git status --porcelain`均为空。本次没有fetch/远端SHA复核;“已部署/已推送”属于P13当前记录的事实声明,未在本轮连接机器复验。

不要用`code/`下旧主目录代替上述来源:Agent主目录仍`15cf94a5f570b0c98e27855a51621d9ea34b7b24`;Framework主目录仍`c706db96fe72e5fbc69f5193bea4867c456a8879`且保留4件修改;Sim主目录仍`3d4a354e3c0e0b105acc39c7631c7df22a02e18c`且保留5件修改。原WIP未改。P15旧取证的A15cf94a5/F9f038c7/Sim3d4a354只代表此前版本,不能作R209当前能力表。

下文源码路径以`A/`=`P13/code/.worktrees/r209-agent-runtime/`、`F/`=`P13/code/.worktrees/r209-framework-integration/`缩写;所有行号均来自本次真实原文。P13为`01-项目-projects/13-具身自进化-embodiedevo`。

## 主链核对

|问题|当前结论|真实证据|
|---|---|---|
|任务程序在哪运行|Agent注入`FeedbackProgramProcess(persistent=True)`;该类用本机Python创建子进程。不是把任务源码送到Framework或Sim执行。|`A/backend/luban/infra/bootstrap/rsi_task_runtime.py:1159-1167`;`A/backend/luban/infra/runtime/rsi_feedback_program.py:71-118`|
|step怎样出入程序|worker的`step(action)`发送`host_call("step", {"action": action})`并等待同submission/id的结果。|`A/backend/luban/infra/runtime/rsi_feedback_program.py:351-372`|
|是否还经原Stage|宿主建立request_stage提案并用`StageLoop.run_until_boundary`执行;Stage端口调用`client.start_stage`,沿原ID查询/取消。|`A/backend/luban/infra/adapter/rsi_feedback_execution.py:306-318,391-398`;`A/backend/luban/infra/adapter/rsi_stage_execution.py:175-202`|
|Stage怎样到能力|Framework Stage整合实例化`BoundedStageExecutor`;`kind=capability`分支调用`host.call_capability`;能力宿主再调用Gateway,Gateway解析Provider执行。|`F/src/robotskill_framework/stage_execution/application.py:1010-1017`;`F/src/robotskill_framework/stage_execution/executor.py:86-94`;`F/src/robotskill_framework/skill_execution/sdk/runtime_host_services.py:186-207`;`F/src/robotskill_framework/skill_execution/capability/capability_gateway.py:84-106`|
|程序校验参数|必填`source`和`reason`;可选`stage_contracts`、`private_experience_use`。严格禁止额外字段。校验/保存不执行动作;unknown reconciliation可能只提案不保存。|`A/backend/luban/infra/adapter/tools/rsi_program_execution.py:18-38,195-209,226-235`|
|程序执行参数|`ExecuteCodeInput`无字段且`extra="forbid"`,调用`execute_code({})`运行当前准入程序,不再附源码或plan_ref。控制空参由宿主紧邻计划绑定,规划/控制仍两个step。|同文件`:41-44,214-218,237-246`|
|外部执行器分流|仍从不可变启动配置选择一个executor:external_linkerbot用外部executor;luban_framework用FrameworkMissionExecutor。不是新增DSH后自动替换引擎。|`A/backend/luban/infra/bootstrap/mission.py:78-97`|
|DSH是否当前真实引擎|该RSI入口实际创建`ExistingModelAdapter`和自己的`TaskLoop`;模型请求在TaskLoop中调用`self.model.request`。这足以限定当前任务链,不推断所有机器/其它产品都未接DSH。|`A/backend/luban/infra/bootstrap/rsi_task_runtime.py:433-454`;`A/backend/luban/application/agent_runtime/task_loop.py:1318-1329`|

源码保留旧Stage action分支不等于当前模型回到五Action设计;R7只需保留当前`kind=capability`路径。Framework Stage执行器不加载任务程序,文件首行即明确此边界;`wait`亦由该Stage执行器执行并可取消(`F/.../stage_execution/executor.py:1,166-174`)。

## R209新增支持与仍未证明的边界

当前Framework源码已注册六项上下文能力:`planning.scene-read`、`planning.scene-update`、`planning.contact-policy-set`、`planning.held-object-attach`、`planning.held-object-detach`、`manipulation.configure-hand-drive`。证据:`F/src/robotskill_framework/framework_capabilities/backend.py:29-45`。`geometry.project-pixels`已有真实producer分派,不再只是拟议投影入口:`F/src/robotskill_framework/framework_capabilities/perception/capture_provider.py:197-204`。

五项planning上下文首版限制cuMotion,不能把所有后端画成同等支持;非cuMotion按`UNSUPPORTED_CAPABILITY`拒绝:`F/src/robotskill_framework/framework_capabilities/planning_context.py:35-43`。原planning/arm能力仍在原backend目录,新增上下文不是新服务。

SDK手力公开投影已经实现:保留每指`force6d`、N/N·m、slip有效性与来源时钟;无效六值返回null,轴标定明确false、力矩参考点null,不能据其计算已标定摩擦系数:`F/src/robotskill_framework/framework_capabilities/hand_force_messages.py:29-56`。真机configure-hand-drive的SDK受理可以是`accepted_unverified`,`effective`仍为null,不等于硬件效果确认:`F/src/robotskill_framework/framework_capabilities/device_hand_drive.py:68-84`。

P13 `STATUS.md:6-10`记录R209三服务已实际部署,六controller/三规划及21运行手册已核;具体安装/真实运行记录在`P13/notes/development-2026-10-29/R209-incremental-design/10-implementation-progress.md:70-86`。同稿`:84-86`记录R211初始化成功但首模型429、0Tool/无抓取;`P13/STATUS.md:13-21`记录R212首模型503自然失败、R213仅准备未reset/submit。因此本轮不能把新增能力的实际物理闭环或GPU碰撞消费写成验收完成。本次没有执行这些验证。

World新增接入仍后置,未变为抓取前置;P13实施进度`:28,80`和`CURRENT-ISSUES.md:101,107`分别保留范围与实现/现场验收差别。不要因新增planning能力就补画程序每步自动回写World或新World Tool。

## 对P15应修改的准确句子

以下仅给主代理集成建议,本稿没有修改四主稿/图合同。

1. 架构稿`:14`的“最新 R209 的五项规划场景能力与驱动设置仍属待实施设计”,改为:**“P13 R209已提交并记录实际部署五项规划上下文能力、手部驱动设置及SDK六维力投影;cuMotion与手型/后端支持边界保留,实际GPU消费、驱动物理效果和完整抓取闭环仍待验收。”**
2. 协议稿`:32`的“R209六项新增能力、动态规划几何和新手力投影按待实施合同处理,不画成当前已注册”,改为:**“P13 R209六项增补能力、动态规划几何与SDK新手力投影已进入当前源码并记录部署;2.0沿原Stage接入,按实际后端与返回有效性使用,不将注册或ready等同现场物理验收。”**
3. 分工稿`:33`的“R209新增规划/驱动/新手力是P13待实施工作,2.0接线依赖其真实交付后才宣称支持”,改为:**“R209新增规划/驱动/新手力已由P13实现并记录部署,2.0复用匹配版本及实际支持合同;P13尚未完成的物理/GPU验证继续保留,不在本项目重复开发底层或提前宣称验收。”**
4. 架构稿`:223`的“P13待实施R209”及P15 AGENTS当前段同类措辞,改为**“P13已实现并记录部署的R209及其未完成现场验收”**;在源版本说明中添加本稿三个完整SHA,保留旧取证为历史。
5. R7图合同“目标Framework/DSH链”措辞可保留;建议在当前事实段加一句:**“P13当前RSI模型链仍为Agent自身TaskLoop;图中内嵌DSH是2.0拟接入目标,已实现的程序worker与原Stage/Capability底座沿用。”**

R7其余主链无需因R209再造服务、Capability RPC或Action层;外部执行器样本仍按其原路径归因。以上四主稿行号为本次读到的编辑态,主代理集成时若他人已修改需按原句重新定位。