zizi 0e3964da2c W00 固定工作树、资料与数据边界:新版设计文档树、改造计划与验证清单基线;工作树资料与数据边界。
按 R2 串行阶段整理提交;包内文件为该阶段交付(含后续小增量),状态以工作包清单为准。
2026-09-10 19:25:40 +08:00

6.9 KiB
Raw Blame History

S02 任务运行

职责与对象

可靠执行与证据,不承担文学裁决。

实例归属以总体架构为准;结构、状态和公开外壳分别引用数据模型与接口契约。

公开接口

用例 输入责任 输出与后果
create_task 已授权任务合同和流程版本 持久化任务
claim_step 执行器用途和能力 有租约的尝试
execute_role 冻结角色请求和预算 标准结果、终态及证据
append_event 当前尝试和有类型事件 持久化序列
control_task 作者范围、动作和预期状态 暂停、取消、恢复或新尝试
read_task 任务身份和用途 当前状态、产物和恢复依据

所有接口在本模块的接口.py 暴露。输入输出类型由同一公开表面导出,外部不导入私有模型或 SQL。

内部职责

文件 职责
接口.py 任务运行公开用例和可导入合同
模型.py 任务运行稳定对象、外壳及内部状态
存储.py 任务运行所属记录的 SQL 与版本读写
执行合同.py 宿主请求、标准事件及完成结果
任务领取.py 领取、租约、心跳和尝试身份
作用域互斥.py 同作品或来源的排他任务范围、持有者和过期写入保护
步骤执行.py 已登记步骤及检查点写入
恢复控制.py 暂停、取消、重试和未知结果
角色策略.py 角色能力、工具范围和版本冻结
模型调用.py 统一调用、明确终态及结构校验
角色会话.py 固定角色对话、会话批准下的派生回合、已存证据重放和最终结构校验
预算管理.py 额度窗口、预留、结算及未知用量
工具调用.py 工具允许集、参数和读取回执
事件记录.py 有序事件持久化与订阅依据
运行证据.py 输入输出、脱敏、暂存补交和关联
原文生命周期.py 原文授权、临时租约、完整归档、清理及中断恢复
配置版本.py 运行配置验证、启用及固定副本

完整路径及运行模板见目标文件清单,逐文件意图、边界与目标见任务运行文件设计。

实现约束

运行配置版本同时固定角色参数、具名提供方协议/地址、凭据引用、预算账户、计价实现版本及宿主版本;Pi另固定Node与包位置。保存草案、验证和启用分开,未装配验证器不能生成验证回执。离线合同证据只用于隔离评测配置,不能启用生产配置。

任务从已启用版本取得不可变绑定,绑定时核对任务角色策略和资源构建。启动装配按这一绑定创建模型执行器和角色循环;后续启用新版本不改变旧任务。请求中的提供方、模型、推理等级和工具必须与固定角色配置一致;可选输入输出合同引用须匹配已登记步骤,业务动态字段仍由任务固定Schema生成。证据保存运行配置哈希与计价版本,不保存凭据值。无凭据模板见提供方配置。

  • 模型调用期间不持有领取长事务,完成写入受尝试身份和租约保护。
  • 恢复复用已持久化的输出;调用未知先对账,再决定是否建立新尝试。
  • 工具范围、角色模型要求和额度窗口来自冻结策略;失败不能绕过能力要求。
  • 任务、检查、证据、作者决定和采纳分别记录。

模型发送分为准备与执行。通过角色、领取及原文授权检查后,宿主先核对协议能力、地址和凭据,并固定可序列化请求;此阶段不访问模型、不占用调用次数。准备成功后,S02保存输入证据、预留预算并在同一事务登记已发送,随后执行已准备的请求。确定的配置错误属于未发送失败;已开始外发却缺少可靠结果的调用才按未知费用处理。宿主不自行决定预算或绕过发送关口。

角色会话和模型回合分开:直接角色执行通常只有一回合,Pi可根据允许工具继续有限回合。每个模型回合都走同一发送、额度、费用及证据保护;工具调用结果不是最终角色产物。角色收尾另校验固定输出结构、来源和必需回执。Pi的agent_end可能只是底层一轮结束,必须等到agent_settled并核对最终消息与S02已确认回合;不能从Pi自报模型名或SDK费用反推真实计费。

对话历史由S02从批准的初始请求、已核对模型结果和具名工具结果组装。Pi通过进程内提供方回调请求下一轮,不持有提供方凭据;内置文件/终端工具、目录自动发现、自动重试和压缩关闭。直接循环与Pi消费同一组S02回调。角色职责和动态输出合同在原文批准前固定,安装资源的代码哈希同时包含Python与Pi工具桥。

新尝试先调用登记owner的来源与结构重验,再从同一会话的完整证据重建对话。已结算模型回合和已保存工具结果只重放,不再次外发、读取或计费;旧证据保留原尝试归属,新回合引用前序回执。每轮消费继续重验当前来源和保留批准。已有派生缺完整响应、费用未决或超出原批准预算时,不以空历史重跑掩盖缺口。

同作品抽取与归并使用独立于步骤领取的作用域租约。作用域键由业务用例登记,包含用途、作品或来源和需要互斥的操作族;持有者为任务,持有代次由服务端递增。窗口步骤还须持有各自的有效尝试身份。续租、转交和释放均核对持有者与代次,旧持有者不能释放新租约。

归并写入在短事务内锁定并复核作用域持有代次、有效期和当前步骤身份,然后提交分析版本;接管会更改代次,旧执行器的迟到写入必须拒绝。模型调用期间不保持数据库长事务。正常结束、取消与异常过期分别有释放或接管路径;此机制保留原作品抽取互斥的行为,不以“同一步只有一个 worker”代替整个作品范围的互斥。

协作与失败

编排定义步骤,本模块执行;基础设施注入 Pi、直接模型、文件和连接实现。

断流无终态、结构错误、预算不足或证据未落库都不能记为成功;取消后的结果不能更新当前业务。

临时敏感原文与持久证据分别处理,最长 24 小时临时租约不能自动变成长期归档。授权、归档事务与 migrating 恢复以原文证据生命周期为唯一合同;具体反例按测试用例重写。

验收行为

  • 断流。
  • 租约过期。
  • 重启。
  • 取消。
  • 未知用量。
  • 证据补交。
  • 无仓库安装运行。

验收入口和替换条件见迁移与验收;这些条目是目标行为,不是已通过测试的声明。