arkevo_task_scaling:把真实专业软件资料变成 RL task

一句话定位:这是一个“方法论 + 合同 + 检查工具 + 个案脚本”的上游生产框架,把真实工程、教程和职业工作流转成可训练、可评测、可追溯的任务;它已经用 Blender 的 KUKA 首题走通 01–07,但通用自动批量调度器仍未完成。

Python 3.12+ Harbor task RewardKit Rule 80 / VL 20 不是已完成 benchmark

先建立全局心智模型

这里的“任务”不是一句 prompt。一个可交付任务至少同时包含:像真实委托的题面、合理阶段的 workspace、声明交付物、可靠 verifier、来源与版本证据,以及可复现的运行条件。原工程只是资料,不会自动变成任务;能打开文件也不等于任务可解、可评分或可分发。

flowchart TD
  T["01 Taxonomy
职业场景 · 工作流 · 输入输出"] --> A R["02 Raw data
工程 · 资产 · 视频 · 配套文件"] --> S["准入与脱敏派生
原生检查 · 依赖 · 干净输入"] S --> A["03 初版任务
题面 + workspace + verifier"] A --> C{"派发 workspace
是否含工程文件?"} C -->|"有"| B["输入基线
同版 verifier + RewardKit"] C -->|"无"| P["正常试解
基线字段为 null"] B --> P["04 多模型试解
3–5 配置 · 每题各 1 次"] P --> Q["05 聚合审题
逐项分析 · 校准 · 修订"] Q -->|"修订或重跑"| A Q -->|"验收并冻结"| F["Final
冻结题面 · 输入 · verifier · 参考"] F --> E["06 正式评测
每配置每题独立 3 次"] E --> D["07 数据产品
Harbor 包 · 证据 · HTML"] F --> V["固定软件 probes + RewardKit
Rule 80% · VL 20% · Agent 0%"] V -.-> E H["Harbor 环境接口"] --> BK["Bunker adapter
通用版待实现"] H --> DK["Docker backend
本仓待验证"] H --> VM["专用 VM backend
后续"] P -.-> H E -.-> H
核心区别

“配方版本已记录”“文件哈希正确”“原生运行已验证”“任务已冻结”“正式成绩完整”是五件不同的事。仓库刻意不让其中任何一项冒充其他项。

01–07:每一步吃什么、做什么、产出什么

1

Taxonomy:先定义职业工作,再选题

输入
  • 职业场景、岗位交接与真实委托资料
  • 历史分类文档
处理

scripts/import_blender_context.py 导入;arkevo taxonomy 通过 Schema、ID、组别、数量与职业引用检查目录。

输出
  • software/blender/taxonomy.json
  • 固定 profession、group、workflow ID

已实现:导入与校验 不代表任务覆盖率

2

Raw data:登记、准入、脱敏派生

输入
  • .blend、贴图、视频、教程、配套文件
  • URL、作者、许可线索、版本、依赖
处理

sources 查本地 SHA256;原生脚本检查打开、依赖、功能、保存重开、媒体与敏感信息,并从原始物派生干净副本。

输出
  • software/blender/sources.json
  • 私有原始物、脱敏派生物、准入回执

登记与哈希检查已实现 KUKA 个案已运行 其他资产逐件待验

3

初版任务:题面、阶段输入与 verifier

输入
  • Taxonomy workflow
  • 通过准入和脱敏的资料
  • 真实可发现的客户要求
处理

构造自然题面、合理生产阶段的 workspace、交付路径、requirements → criteria 映射、最少 hidden references 和初版 probes;task-check 只做草稿合同校验。

输出
  • task.json、instruction.md
  • workspace/、tests/、参考解

KUKA 已完成 building-generator 仅草稿 通用自动 authoring 待实现

4

多模型试解:用失败发现题目问题

输入
  • 初版任务与 3–5 个候选配置
  • 若含工程:未修改输入副本
处理

每个模型对每题独立试解 1 次;先按相同 verifier 评输入基线,再保存轨迹、原生作品、分项证据、耗时与失败类型。

输出
  • trajectories、artifacts、criterion evidence
  • 适用时的 input_reward 与逐项变化

KUKA 两配置个案已跑 通用调度器待实现 本次少于默认 3–5 配置

5

聚合审题:修题、校准、冻结

输入
  • 题面、workspace、原始资料、rubric
  • 多模型轨迹与作品、基线、评分证据
处理

区分模型能力不足、歧义、缺资料、环境故障与评分漏洞;检查参考正例、替代解、部分完成、缺陷、投机样例和独立 holdout。

输出
  • review、calibration、修订记录
  • 冻结任务、verifier 与 reference manifest

KUKA 已完成 通用自动审题待实现

6

正式评测:独立三次,不做幸存者平均

输入
  • 冻结任务、环境、预算与 evaluation plan
  • 每配置每题 3 个独立 rollout
处理

arkevo metrics 严格核对 pipeline、task、verifier、configuration、phase 与 attempt;solver failure 计 0,verification error 使整组 incomplete。

输出
  • trials.jsonl、metrics.json
  • avg@3、pass@3、缺失与错误清单

核心聚合器已实现 KUKA 六次结果有效 通用正式执行器待实现

7

数据产品:任务包、证据与可读网页

输入
  • 冻结 task package 与正式结果
  • 作品、轨迹、评分明细、来源与版本
处理

生成 Harbor 包、质量报告、数据集页与任务页;solver 包、verifier 私有材料和完整展示包保持隔离;导出前重新脱敏。

输出
  • products/<version>/
  • 可下载任务包、HTML、证据索引

KUKA 内部小样已验收 通用生成器待实现 查看 KUKA 个案页 →

诚实状态

pipeline.py 的 production_plan() 只返回计划,不执行任何阶段。当前完整流程是“助手 + 明确命令 + 个案脚本”的半手工系统。

CLI:arkevo 命令全表

src/arkevo_task_scaling/cli.py 是薄入口。所有命令输出 JSON;基础检查不会启动 Blender、不会调用模型,也不会产生付费请求。

子命令主要输入输出 / 作用退出码
check--root综合检查 policy、pipeline snapshot、80/20 权重、模型尝试数、taxonomy、sources、示例 task;明确仅 foundation records0 成功;1 输入/结构错误
plan--root --software七阶段、依赖、当前 progress 与可用 pipeline profile;mode=plan_only0 / 1
taxonomy--root --softwareSchema、唯一 ID、group 前缀、profession 引用、预期数量校验摘要0 / 1
sources--root --software --asset-root逐来源 missing / verified / hash_mismatch;只证明字节完整性0 全部匹配;2 有缺失/不匹配;1 命令错误
task-checkpath [--policy] [--identifiers]草稿合同、交叉引用、路径、权重、合同文本隐私;总是列发布 blockers0 结构有效;1 校验/读取失败
pipelines--root读取 profile registry;不解析文件指纹0 / 1
pipeline-resolve--pipeline-id / --pipeline-version / --tag计算当前组件与代码文件哈希、完整 pipeline_digest;不写文件、不执行0 唯一命中;1 选择不唯一或内容错误
pipeline-snapshot同上不可覆盖地写 pipelines/<id>/<version>.json;同版异内容拒绝0 新建或同内容重入;1 冲突/错误
privacy-checkpath --root [--policy] [--identifiers]扫描文件名与支持的文本,输出哈希绑定报告,不回显匹配秘密0 text_checks_passed;2 failed 或 coverage_pending;1 命令错误
metrics--plan --trials严格完整性检查与 avg@3/pass@3 聚合0 完整;2 缺 attempt / verification error;1 无效记录
展开:常用命令
.venv/bin/arkevo check --root .
.venv/bin/arkevo plan --root . --software blender
.venv/bin/arkevo taxonomy --root . --software blender
.venv/bin/arkevo sources --root . --software blender --asset-root ../blender
.venv/bin/arkevo task-check examples/blender/building-generator/task.json \
  --policy configs/privacy.json
.venv/bin/arkevo pipelines --root .
.venv/bin/arkevo pipeline-resolve --root . --tag complex-assets
.venv/bin/arkevo pipeline-snapshot --root . \
  --pipeline-id blender-complex-assets --pipeline-version 0.4.4
.venv/bin/arkevo privacy-check PAYLOAD --root .
.venv/bin/arkevo metrics --plan evaluation-plan.json --trials trials.jsonl
退出码 2

表示“命令成功执行,但结果不能放行或不能发布 headline metric”,不是 Python 崩溃。尤其 coverage_pending=2 必须补原生/媒体适配器证据。

数据合同:task.schema.json

task.json 是制题侧合同,不应整体暴露给 solver。当前 Schema 明确是 draft only,且 status 只能为 draft;KUKA 的冻结状态由个案证据维护,通用合同校验器不会“晋级”。

字段类型 / 约束真实示例作用
task_id, task_version非空字符串blender-building-generator-candidate, 0.1-draft题目与修订身份
pipeline_refnull 或 ID/version/64 位 digest旧草稿为 null绑定真实生产配方;不能事后猜
sanitization_policyID + versionrl-task-basic-sanitization@0.1.0声明合同所用隐私策略
status当前只能 draftdraft防止基础校验冒充发布冻结
software, taxonomy_version必须匹配 catalogblender, 1.0-20261013绑定领域分类版本
workflow_primary已知 workflow IDMOD-12本轮主要新增能力
profession_primary已知 profession IDG主要职业语境
source_ids, source_family已登记、家族一致procedural-buildings来源追溯与防泄漏划分
input_manifest安全相对路径;planned/readyworkspace/start.blendsolver 实际可见输入
deliverables唯一相对路径output/final.blend声明交付,不信任额外自报文件
requirementsID、文本、至少一个可见 evidence sourceinstruction.md 的某节确保评分要求可发现
criteriarule/vl、通道内权重、关键性、状态草稿当前为空把公开要求连接到判分
references最少私有参考;pending/acceptedexpected values / image / native project只给 verifier,不可与输入同路径
runtimeversion、validated、notes来源为 Blender 2.93,当前未验防止“文件存在”冒充可运行
verification版本、通道权重、阈值、封顶、校准状态{rule:.8, vl:.2, agent:0}冻结评分语义
open_questions字符串数组许可、参数、起点如何构造显式保留未决风险
展开:仓库中的真实草稿片段
{
  "task_id": "blender-building-generator-candidate",
  "task_version": "0.1-draft",
  "pipeline_ref": null,
  "workflow_primary": "MOD-12",
  "profession_primary": "G",
  "source_ids": ["procedural-buildings"],
  "deliverables": [
    {
      "path": "output/final.blend",
      "purpose": "可继续调整并运行的建筑生成工程"
    }
  ],
  "requirements": [],
  "criteria": []
}

contracts.py 额外做了什么

结构与唯一性

JSON Schema;requirement / criterion / reference ID 唯一;输入和交付路径唯一。

路径隔离

拒绝绝对路径、..、反斜线、冒号和非规范路径;private reference 不得同时派发。

需求可发现

每个 requirement 的 evidence path 必须在 input_manifest 中。

引用闭包

criterion 只能引用已知 requirement 与 reference;agent criterion 被禁止。

两层权重

Rule/VL/Agent 通道权重总和为 1;每个启用通道内 criterion 权重也须为 1。

永不假装发布

即便结构有效,仍返回 release_ready:false 和 runtime、校准、许可等 blockers。

数据合同:taxonomy.schema.json

Taxonomy 编码的不是“工具菜单”,而是 职业场景 · 工作流 · 输入 · 输出 · 验收重点。Geometry Nodes 或 MCP 是实现手段,不会自动形成新职业。

层级字段示例校验
根software, versionblender, 1.0-20261013非空
来源provenance.document/sha256/source_date历史 Taxonomy 文档与日期SHA256 格式、YYYY-MM-DD
职业id/title/commissioners/roles/downstreamG 游戏美术与实时内容ID 唯一
工作组id/title/expected_count/capabilityMOD 模型与几何,14 项组 ID 唯一、实际数量精确匹配
工作流id/group/title/professionsMOD-01 按规格设计道具或设备^[A-Z]+-[0-9]{2}$,前缀等于 group
任务语义commission/input/output/verification_focus用途与尺寸 → 可编辑模型 → 规格、部件和曲面质量均为非空文本

5 类职业

G 游戏;F 动画影视;A 建筑可视化;P 商品广告;M 动态图形。

6 组生产工作

MOD 14、ANI 16、TEX 12、MAT 13、SCN 15、PIP 10。

80 个 workflow

每题一个 primary workflow;辅助标签只记录本轮新增能力,不把继承成果冒充考点。

展开:真实 workflow 示例
{
  "id": "MOD-04",
  "group": "MOD",
  "title": "建筑模块与套件制作",
  "professions": ["G", "A", "F"],
  "commission": "制作墙、门窗、转角和屋顶模块",
  "input": "模块清单、网格步长、立面/平面、拼接尺寸和允许变化",
  "output": "可复用模块库及组合验证场景",
  "verification_focus": "接口、尺度、枢轴和多种拼接;单栋楼不能替代模块能力"
}
读法

commission 回答“谁委托什么”,input 回答“接手时有什么”,output 回答“交给下游什么”,verification_focus 回答“怎样避免表面完成”。

Pipeline versioning:配方身份不是一个版本字符串

当前可用路线是 blender-complex-assets@0.4.4。完整身份是 pipeline_id + pipeline_version + pipeline_digest;tag 只用于选择和分组,progress.json 只记录进度,两者都不进入 digest。

pipeline_id

稳定路线名:blender-complex-assets。

pipeline_version

配方修订:例如 0.4.4。

pipeline_digest

组件和代码清单的 canonical JSON SHA256。

pipeline_run_id

未来完整执行实例;当前通用执行器尚未实现。

versions.py 怎样计算 fingerprint

  1. 读取 configs/pipelines.json 中 profile。
  2. 对每个 component 文件保存相对路径、字节数与 SHA256。
  3. 递归枚举 code_roots,拒绝 symlink,跳过 cache / .pyc。
  4. 按 role 和路径排序,构造不含 tags 的 payload。
  5. 用紧凑、排序键、禁止 NaN 的 JSON 序列化,再计算 SHA256。
  6. snapshot 自己仍标记 execution_started:false、native_runtime_validated:false。
def content_digest(value):
    body = json.dumps(
        value,
        sort_keys=True,
        separators=(",", ":"),
        ensure_ascii=False,
        allow_nan=False,
    )
    return hashlib.sha256(body.encode()).hexdigest()
版本相对前版的关键变化注意
0.1.0基础阶段、模型、评分、隐私、Taxonomy、Python 包代码/Schema;16 个代码文件仅初始通用配方快照
0.2.0加入 native intake、媒体 patch/review;新增下载、Blender 检查、脱敏、贴图抽取、序列化审计等脚本;绑定 KUKA 资产与二进制配方更完整,不等于准入已执行
0.2.1新增 render preview metadata 清理,并修改原生 stage 脚本接入独立预览检查针对 PNG 自动写入路径的问题
0.3.0加入 KUKA 公开题面/规格、pilot 配置、隔离 trial runner、任务 probe、视觉 judge 与探索性合分KUKA 双工位首题进入实际试解
0.4.0加入正式 evaluation protocol、关键失败封顶、479 时刻原生取证、Harbor/RewardKit、进程文件限制与正式三次框架历史正式运行曾遇基础设施故障
0.4.1共享内存工作集保护、并发上限 2、逐帧重设验收相机、图片/原生/VL 哈希绑定;新增 process runtime 与 render 模块修复缓存误判和镜头切换问题
0.4.2有界 Blender 初始化;VL 派发前图片隐私检查;新增 blender runtime 与 judge privacy校准完成,但正式调用受可选 beta header 阻塞
0.4.3精确过滤不兼容请求头并记录线上配置;重做六次独立 solver 批次评分代码未变;solver 运行属于此版
0.4.4视觉请求省略不兼容 temperature;VL 0.2.0、完整 verifier 0.2.2;统一 frozen-artifact regrade六次原始 solver 仍属于 0.4.3,不能重标
快照边界

snapshot 只保存哈希清单,不归档源码字节、容器、模型 endpoint,也不证明执行过。历史复现仍需要 Git/源码归档、固定镜像和运行回执。

Privacy 与 sanitization:三道边界都要检查

configs/privacy.json 定义 rl-task-basic-sanitization@0.1.0。目标是让真实账号、宿主绝对路径、邮箱、凭据和认证链接不进入模型可见材料或产品,同时在私有控制侧保留原始物、哈希和替换映射。

检查点实际 payload必须具备的证据
造题模型读取前原生工程派生副本、规格摘要、教程提取、必要预览干净派生物 + 白名单摘要;不喂整份 raw dump
solver 派发前instruction、workspace、附件、工具说明、环境可见文件实际派发哈希 + 文本 + 原生/媒体 + 依赖闭包
产品导出前最终工程、轨迹、日志、媒体、HTML、下载附件对新生成内容重新检查;旧输入回执不能复用

privacy.py 的规则与保护

路径

Unix、Windows、UNC、file URL、home 环境变量;先做 NFKC 与两轮 URL decode。

身份

username 类字段、当前工作站用户、私有 identifier 词表、邮箱。

凭据

Bearer、常见 key 前缀、token query、带密码 URL、secret 字段。

文件系统

文件名和目录名也扫描;不跟随 symlink;special file 阻塞。

保密报告

只报告 rule 与 file_id,不回显命中值、敏感路径或上下文。

内容绑定

报告包含 policy hash、identifier-set hash、逐文件 hash 与 payload digest。

status含义退出码
text_checks_passed支持的文本与文件名无命中;不是完整脱敏0
failed规则命中、非法结构或 symlink2
coverage_pending存在 .blend、图片、压缩包、大文本、二进制或空 payload2
命令错误目标、策略或词表读不到1
status = (
    "failed" if findings
    else "coverage_pending" if uninspected
    else "text_checks_passed"
)
禁止误读

coverage_pending 不是“基本通过”。它表示检查器明确不知道二进制或媒体里有什么,必须由专用 adapter 与人工复核补证。

Native intake:怎样让 .blend 真正“可进入制题”

来源哈希只回答“是否是登记的那份字节”。原生准入还要回答:能否用固定软件安全打开、依赖是否齐全、目标功能是否工作、保存重开是否保持、渲染是否有效、脱敏是否破坏工程,以及授权是否允许计划用途。

flowchart LR
  A["登记 URL / SHA / 版本 / 权利线索"] --> B["固定 Blender
factory-startup + disable-autoexec"] B --> C["结构与依赖 inventory"] C --> D["功能 probes
播放 / 控制 / 渲染"] D --> E["对副本脱敏
路径 / 名称 / metadata / 像素"] E --> F["保存并重开"] F --> G["重复结构与功能检查"] G --> H["媒体 OCR / metadata / 人工复核"] H --> I["serialized string 补查"] I --> J["干净 authoring_input
按 SHA 绑定回执"]
脚本通用职责边界
import_blender_context.py从历史 Markdown 表格重复生成 5 职业、6 组、80 workflow 与 4 条来源;快照文档,不复制 .blend相同内容幂等;差异文件默认拒绝覆盖
bootstrap_blender_intake.py在自有隔离环境下载 hash-pinned Blender 与原始资产,核对版本、大小、二进制 SHA响应与日志留私有;bootstrap 后仍未宣称 native open validated
inspect_blender_native.py枚举 scenes、objects、bones、constraints、drivers、images、路径类型、依赖;公开摘要中敏感值变成 digest详细原字符串写私有审计;functional validation 仍 pending
clean_intake_preview.py删除 PNG 中 renderer 写入的路径 metadata,并逐像素证明不变只覆盖这类 PNG metadata
audit_blend_serialized.py对 plain/gzip/zstd Blender 文件补查 printable ASCII 中的已知 identifier 和常见绝对路径补充检查,不覆盖任意编码与全部 native semantics

准入层级

  1. 来源已登记,URL、家族、哈希和许可线索存在。
  2. 本地字节与登记 SHA256 一致。
  3. 依赖已准备,外部文件与插件可定位。
  4. 在固定版本原生软件中安全打开。
  5. 相关控制、播放、模拟或参数功能实际运行。
  6. 保存重开、渲染和媒体复核通过。
  7. 授权用途经审核;“可下载”不等于“可转售”。
KUKA 边界

仓库中的 *kuka*、kuka_*.py、verifiers/kuka-v2、web/kuka-task 与 tasks/blender 是第一个完成个案,不代表通用 adapter。详细过程请看 KUKA case study。

Sources:来源登记不等于许可或可运行

software/blender/sources.json 当前登记 4 个历史 Blender demo:BMW27、radial tiling、procedural buildings、pizza delivery。保存版本横跨 2.73、2.93、4.2、5.0,全部仍标记 runtime_validated:false 与 rights_status:pending_review。

字段作用不能证明什么
source_family在派生 task 前做家族级 train/test 划分不证明内容授权
source_url追溯下载来源不证明当前可访问或可再分发
relative_path + sha256 + bytes确认本地文件身份不证明可打开、播放、渲染
saved_version提示兼容环境不证明新版 Blender 能正确迁移
candidate_workflows初筛可能的制题方向不等于已有合格任务
license_evidence保存许可线索不等于法律/商业用途审核完成

Verification:Rule 80 / VL 20 / Agent 0

这是 reward 贡献比例,不是 criterion 数量、调用次数或耗时比例。规则通道可以包含真正的功能测试;VL 只判断难以可靠程序化的有限视觉质量;自主探索 Agent 被移到制题、probe 开发、审题和离线复查。

Rule · 0.8

原生交付、尺寸、关系、参数、连续时间、接触、事件、可编辑功能。不能只数对象/节点。

VL · 0.2

造型、材质、灯光、变形、表演等必要质量;看可信、规范化、与工程绑定的证据。

Agent · 0

标准 rollout 判分不运行自主选视角或工程探索 Agent,避免高成本与高方差。

base_reward = 0.8 * rule_score + 0.2 * vl_score
# 通道内部 criteria 按各自显式权重汇总。
# 核心失败可应用校准后的 cap;success 另行计算。

固定软件 probes 与 RewardKit 的分工

组件负责不负责
软件 probe打开声明产物、测量几何/动画/参数、生成可信证据不信任 solver 自报的 measurements.json
RewardKit执行 criteria、分组、权重、明细输出不自动发明 Blender 专业规则
VL judge按有限 rubric 和质量锚点判断证据不自主增加要求,不因缺证据返回假 0
任务合分逻辑关键失败 cap、独立 success、错误分类不把服务故障当作品失败
缺通道

VL 服务失败时不能把 Rule 的 80% 重新归一化成 100%,也不能直接当作品 VL=0;它是 verification_error,正式指标保持 null 直到按协议解决。

Input baseline:输入已有多少,不等于模型新增多少

workspace 情况baseline_status分数语义
含工程,待评分pendinginput_reward=null,排入同版 verifier
含工程,有效评分scored保存总分、逐 criterion 分数与证据
没有工程,仅文字/图片/视频not_applicableinput_reward=null、reward_delta=null;不补造工程
含工程,但验收设施故障verification_error分数为 null,保留错误并按协议重试
reward_delta = final_reward - input_reward
# 有效范围 [-1, 1];负值保留,用于发现退化。
# 它只用于审题诊断,不替代正式 reward 或 success。

通用约定计划保存为 input-baseline.json 与 baseline-comparison.json,但当前没有 Schema 或 CLI;KUKA 已由个案脚本完成。

Evaluation:avg@3、pass@3 与错误语义

正式评测在任务、输入、环境、verifier、参考、阈值、judge 和预算冻结后进行。每个配置对每题独立运行三次;“同一作品打三遍分”不算三次。

avg@3  = (1 / N) * sum(
    (r_i1 + r_i2 + r_i3) / 3
    for each planned task i
)

pass@3 = (1 / N) * sum(
    max(s_i1, s_i2, s_i3)
    for each planned task i
)

evaluation.py 的实际聚合核心

valid = (
    len(attempts) == 3
    and all(t["status"] != "verification_error"
            for t in attempts.values())
)
per_task.append({
    "task_id": task_id,
    "complete": valid,
    "avg@3": mean(t["reward"] for t in attempts.values())
             if valid else None,
    "pass@3": int(any(t["success"] for t in attempts.values()))
              if valid else None,
})
trial statusreward / success对 headline metric 的影响
scored必须有 [0,1] finite reward 与 bool success;error=null正常计入
solver_failure明确 0 / false,并有原因计入,不能从分母删除
verification_errornull / null,并有错误整组 incomplete,avg@3/pass@3 均为 null
缺 attempt不存在整组 incomplete,不做幸存者平均

聚合器还拒绝:exploration 混入 evaluation、计划外 task、重复 run ID / attempt、pipeline identity 不一致、task/verifier/configuration 版本不一致。仓库 synthetic fixture 的结果是 avg@3=0.35、pass@3=0.5,不是真实模型基线。

Model config 与 preflight

configs/models.json 保存候选字符串,不把“名字写进配置”当作 endpoint 已可用。执行前还必须固定 runner、完整模型 ID、effort 映射、endpoint、工具、预算、客户端版本和配置哈希。

阶段候选配置状态 / 事实
explorationCodex + gpt-6-astra + xhigh配置标记 validated;历史 preflight 文本成功,早期内层 sandbox 文件闭环失败,后续外层隔离已跑通
explorationClaude Code + claude-opus-5-5 + xhigh最小文本与文件工具闭环通过
explorationseed-2-1, gemini-4候选,runner/effort 未固定,未验证
reviewerCodex + Astra + xhigh配置中仍为 validated:false
evaluationAstra、Opus、seed-pro 三候选通用配置仍为 false;KUKA 个案实际只证明其明确记录的两种配置
preflight 的意义

最小文本调用、文件工具闭环、Blender 查询和真实图片评分要分别验证。模型名称能返回文本,不代表 runner sandbox、可选请求头、temperature、图片输入、并发或长任务一定兼容。

Infrastructure:统一接口,后端逐个验收

flowchart LR
  A["Arkevo
task · workspace · verifier · manifest"] --> H["Harbor
trial 调度 · Agent · 产物交接"] H --> E{"Environment backend"} E --> B["Bunker
专用个案已跑
通用 adapter 待实现"] E --> D["Linux + Docker
Harbor 已有 backend
本仓待验证"] E --> V["Windows / desktop VM
后续"] H --> R["独立 verifier"] R --> P["软件 probes"] P --> K["RewardKit"]
层接口职责当前状态
Arkevo任务、workspace、环境要求、verifier、版本合同与个案存在
Harbor调度、Agent、轨迹、产物交接、调用 verifierKUKA 专用接入已运行
Bunker backend创建独立容器、执行、传输、资源、回收直接共享作业与个案隔离已验证;通用分配 adapter 待实现
Docker backend自有 Linux / AWS / 阿里云上的同一路线Harbor 能力存在,本仓跨服务器复现待验证
VM backendWindows / 专用桌面软件、许可与 GUI后续设计
RewardKit + probes可信取证、criteria、合分、明细通用模板仍故意不可运行;KUKA 个案已实跑

Harbor 环境接口至少要记录

SANDBOX 文档

docs/SANDBOX.md 的用途是让获授权的内部同事安装并登录运维客户端、连接共享 CPU worker、使用共享存储。它包含内部连接材料,必须留在控制侧,绝不能进入 solver workspace、Harbor task、HTML、源码下载包或对外交付。本页不复制其中任何凭据、主机、证书或 token。

templates/harbor 为什么会主动失败

模板只声明 Harbor 1.3 形状、/app/output artifact、独立 verifier 和 RewardKit 的 0.8/0.2 权重。它缺少固定软件镜像、真实 probes、VL judge、私有参考和校准阈值,所以 tests/test.sh 故意退出,不制造常量 reward 或存在性假通过。

配置文件:谁管什么

文件职责不要混淆
configs/pipeline.json七阶段依赖、输出和实现标签计划不是运行器
configs/pipelines.json当前 profile、组件、code roots、tagstag 不是 immutable identity
configs/progress.json软件各阶段当前事实不进入配方 digest
configs/models.jsonexploration/reviewer/evaluation 候选与次数候选名不证明 endpoint
configs/privacy.json文本扩展名、大小、规则、neutral usernames不能关闭 coverage 或回显匹配
configs/verification.json80/20/0、fixed probes、reference policy、missing judge policy全局默认阈值仍待任务校准
configs/native-intake-kuka.json首例资产、Blender、镜像与 hash pin个案配置,详见 KUKA
configs/kuka-*.json媒体 patch/review、pilot、evaluation 个案不应推广为任意 Blender 通用准入

Python library:模块之间怎样协作

包内代码刻意保持“普通 domain function + 薄 CLI”。这样 Harbor、脚本或未来调度器都能复用同一逻辑,也能在不调用模型和 Blender 的单元测试中验证边界。

模块主要入口责任边界
cli.pymain(), check_repository()解析参数、编排基础函数、输出 JSON 和映射退出码;不放专业逻辑
contracts.pyvalidate_schema(), validate_task(), validate_weights()Schema 与 task 交叉引用;只认 draft,不做原生发布验收
taxonomy.pyvalidate_taxonomy()目录 ID、组、职业引用与精确计数;输出 catalog_only
sources.pyvalidate_sources(), check_sources()来源 Schema、相对路径与 SHA;输出 registered_static_audit
versions.pyresolve_pipeline(), seal_pipeline(), check_pipelines()配方选择、内容寻址与不可覆盖 snapshot;不执行生产
pipeline.pyproduction_plan()验证阶段拓扑并合并 progress;明确返回 plan_only
privacy.pyscan_payload(), check_contract_privacy()保守文本/文件名检查;原生、媒体、依赖仍由 adapter 负责
evaluation.pyaggregate()冻结计划的完整性与宏指标;不执行 rollout 或 verifier
io.pyparse_json(), relative_path(), inside(), sha256()拒绝重复 JSON key、NaN/Infinity、路径逃逸和非规范相对路径
schemas/*.jsonDraft 2020-12 Schemastask/taxonomy/sources/evaluation-plan/trial 的可安装合同
展开:严格 JSON 与路径为何重要
# 这些值会被拒绝:
{"reward": 0, "reward": 1}  # duplicate key
{"reward": NaN}             # non-finite
"../private/reference"      # parent traversal
"/host/path/file.blend"     # absolute path
"a\\b"                      # non-portable separator

# 合格包内路径:
"workspace/start.blend"
"output/final.blend"

目录地图

arkevo_task_scaling/
├── configs/                  阶段、版本、模型、隐私、评分与进度
├── pipelines/                不可覆盖的配方 fingerprint snapshots
├── docs/                     设计与运行协议
├── software/blender/         Taxonomy、sources、实施入口与历史证据
├── src/arkevo_task_scaling/  CLI、contracts、versions、privacy、metrics
│   └── schemas/              task/taxonomy/source/evaluation/trial JSON Schema
├── examples/blender/         明确标记 draft 的合同示例
├── templates/harbor/         故意不可运行的集成边界样板
├── scripts/                  导入、原生准入、脱敏、个案执行脚本
├── tests/                    合同、版本、隐私、来源、CLI、指标测试
├── data/                     本地大文件与私有参考约定
├── runs/                     运行产物,Git 忽略
├── products/                 冻结包与 HTML,Git 忽略
└── web/kuka-task/            KUKA 展示个案

零基础推荐阅读顺序

  1. README.md:先看 01–07 全图和当前状态。
  2. 本页:建立通用合同、CLI、版本、隐私与评测心智模型。
  3. docs/DESIGN.md:理解为什么这样分层。
  4. docs/MODULES.md:把阶段映射到文件与实现状态。
  5. software/blender/WALKTHROUGH.md:看首题真实进度。
  6. software/blender/LESSONS.md:看评分、相机、内存、接口与脱敏踩坑。
  7. 按问题查 VERIFICATION / EVALUATION / PIPELINE_VERSIONS / SANITIZATION / INFRASTRUCTURE。
  8. 最后读 src/ 与 tests,用测试确认协议不是口号。

与 arkevo_blender_rl 的耦合与边界

arkevo_task_scaling 是上游方法论与首例实验场;arkevo_blender_rl 是 Blender 专用的批量自动化流水线(authoring → solver → scoring → packaging)。两者不是同一个执行器,也没有共享运行时 import。

耦合点已验证事实使用方式
Taxonomy snapshot两仓 taxonomy.json 当前逐字节一致;47,050 bytes,SHA256 a7d0a0a5…272c38批处理 authoring skill 从本地 snapshot 选择 profession/workflow ID
Task Schema snapshot两仓 task.schema.json 当前逐字节一致;5,832 bytes,SHA256 779c7afd…13826批处理发布时校验 authoring 生成的 task.json
合同语义需求可发现、公开输入与 private reference 隔离、安全相对路径、Rule/VL criteria 等概念沿用批处理在自己的 authoring skill 中增加更严格的校准与发布流程
版本策略上游 80/20 KUKA 配方不会被批处理 70/30 覆盖两套 scoring profile 独立版本化
概念阶段两者都走造题、求解、评分、打包;上游强调 01–07 数据生产方法批处理把中后段变成长驻 worker、handoff event 与不可变交付

arkevo_task_scaling

跨专业软件的方法论仓;当前助手 + 脚本半手工逐题;默认 Rule 80 / VL 20;含来源准入、Taxonomy、输入基线、avg@3/pass@3、KUKA 首例。

arkevo_blender_rl

Blender 批处理系统;四个独立组件和事件队列;authoring/solver/scoring/packaging 自动推进;Rule 70 / VLM 30;采用本地复制的合同快照。

同步 caveat

批处理仓的 references/context-lock.json 当前记录的两个 snapshot digest 与实际复制文件的现行 SHA256 不一致,说明 lock metadata 已陈旧。实际文件彼此 byte-identical,但尚不能把 lock 当作可靠的自动同步证明;更新任一上游合同后应显式复制、重算锁并做跨仓测试。

测试告诉我们的真实边界

Contracts

隐藏 requirement、绝对路径、unknown references、agent judging、错误通道权重与“把 draft 改 frozen”都会失败。

Versions

源码/配置变化会让 sealed version 失败;tag/progress 不改 digest;snapshot 篡改被拒绝。

Privacy

JSON escape、URL encoding、敏感文件名、symlink、binary、空目录都有测试;clean receipt 会随内容变化。

Sources / IO

missing/hash mismatch、路径逃逸、symlink escape、duplicate JSON key、NaN/Infinity 都被拒绝。

Evaluation

缺一次、verification error、混 phase/version/config、重复 attempt 都阻止 headline metric。

Native intake

PNG metadata 去除须像素不变;patch 须匹配 source hash;serialized scan 支持 plain/gzip/zstd synthetic fixtures。

常见误解与重要 caveats

不是 benchmark

仓库是生产框架和首例证据,不是已具规模、跨资产验证、可直接训练的完整 benchmark。

数量不可外推

历史文档提到的 820 来源、1,506 候选题和 210 题集合没有完整清单随仓保存,不能作为当前已验收数量。

来源与权利

四个历史 demo 的 SHA 已登记,但未在本项目内完成原生运行或用途审核;“公开下载”与“允许再分发/训练”是两件事。

基线尚未通用化

输入基线协议很完整,KUKA 也跑过,但 input-baseline.json、comparison Schema 和 CLI 仍待实现。

基础设施事实

共享 Bunker 可运维使用,KUKA 专用隔离已跑;这不等于通用 Harbor–Bunker adapter、Docker 跨服务器复现或 GPU 路线已经验证。

最反直觉的一点

输入高分不自动说明题坏,输出涨分也不自动说明 verifier 鲁棒。必须看“新增项是否改善、继承项是否退化、伪解是否获益”的逐项证据。

术语表

术语零基础解释
RL task供 Agent 操作软件并由 verifier 返回 reward 的完整任务单位,不只是一段 prompt。
Taxonomy职业场景和工作流目录,定义典型输入、输出和验收关注点。
workspace实际派发给 solver 的阶段工程与附件集合。
solver尝试完成任务的模型 + runner + 工具 + 环境配置。
verifier隔离读取声明交付,运行 probes、VL 判断与合分的验收系统。
probe在 Blender 等原生软件里测量真实结构或行为的固定程序。
Rule程序化、可重复的规格或功能检查通道。
VL / VLM视觉语言模型判断通道,只处理程序难以覆盖的视觉质量。
RewardKit执行 criteria、分组、加权并保存明细的评分组织工具。
Harbor任务封装与 trial 调度框架,连接 Agent、环境、产物和 verifier。
Bunker一种计算环境平台;需要 adapter 才能成为通用 Harbor backend。
hidden reference只供 verifier 使用的最少预期值、图片、片段或工程;不等于隐藏需求。
input baseline未修改派发工程在同版 verifier 下的得分,用于分析新增工作。
reward_delta最终得分减输入得分;诊断改进/退化,不是正式 reward。
avg@3每题三次 reward 先平均,再对计划中所有题做宏平均。
pass@3每题三次中至少一次 success 的比例。
solver_failure执行设施正常,但 solver 未完成;按冻结协议计 0。
verification_error评分设施或服务故障;不是作品 0 分,会阻止完整指标。
pipeline_refpipeline ID、version、digest 三元组,绑定生产配方身份。
snapshot_recorded当前配方内容与不可覆盖 snapshot 一致;不代表实际运行。
source family同一原作品、版本或共享组件形成的家族,用于先切分再派生任务。
sanitization对模型输入、solver payload 和产品中的身份、路径、凭据等做检查与安全派生。
coverage_pending文本检查无法覆盖某些文件,必须补原生/媒体检查的阻塞状态。
calibration用正例、替代解、部分完成、缺陷、投机样例和 holdout 验证评分器。
frozen artifact regrade题面/输入不变、只升级 verifier 时,对同一冻结作品统一重新评分并保留旧分。

研究者可以从哪里开始动手

只想理解

按“README → 本页 → WALKTHROUGH → LESSONS”阅读,再打开测试看每条边界如何被强制。

想接新资产

先登记来源与家族,做固定版本原生准入和脱敏派生,再选择 workflow;不要先写 prompt。

想做自动化

优先补通用 pipeline_run_id stage receipts、baseline Schema/CLI、Harbor backend adapter 与 packaging generator。

最终检查句

任何“完成”声明都要追问:完成的是文件结构、内容哈希、原生功能、评分校准、运行完整性,还是产品交付?只有证据对应,状态才有意义。