跳转到内容

Aira AI-CAD 增长基准协议(v1,2026-09-07)

本协议定义一组可公开复算的真实模型建模任务,测量成本与可靠性随重复规模和续改深度的增长。 它关闭上线计划 §11 当前目标的第 4 条(“增加重复规模和续改轮数观察增长”),并且是此后契约或验证改动触及 AI 建模路径时的回归集合。判据在运行前写死;运行结果只追加到 docs/benchmarks/results/,不改判据。

  • 任务经真实 provider(DeepSeek)和产品入口运行:浏览器工作台、AI SDK 网关、宿主验证、独立 STEP 回读。 假 provider 与离线几何只用于接线检查,不进入结果表。
  • 只统计能由封闭公式给出体积、实体数、面数、边界的任务。成功由独立 OCP 回读对照公式判定,与模型自述无关。
  • 每次付费运行需用户明确授权;协议本身不构成费用授权。

单位 mm,体积 mm³。N = cols × rows。

编号 类别 起始状态 指令(逐字) 真值
T1 薄壁阵列,创建 空白文档 从空白创建一个顶部敞开的薄壁盒体:外形 X 0–120、Y 0–80、Z 0–40 mm,底厚 2 mm,四周壁厚 2 mm;在底面上打 {cols} 列 × {rows} 行的 Ø6 mm 贯穿孔,列沿 X、行沿 Y,孔中心在 X 15–105、Y 20–60 范围内等距分布,首末孔中心落在范围端点上。用参数 cols、rows、holeDiameter、wall 表达;最终返回一个实体。 V = 120·80·40 − 116·76·38 − N·π·3²·2;1 实体;面数 11 + N;边界 [0,0,0]–[120,80,40]
T2 扫掠 + 法兰,结构续改 sweep-created.aira.json(e56930:R=10、r=8、L₁=60、L₂=40、ρ=40) 在管子起点端面(X=0 处的截面)加一个与管同轴的法兰盘:外径 40 mm、厚 4 mm,从 X=0 向 −X 延伸到 X=−4,中心通孔与管内径相同并贯穿法兰;用新参数 flangeDiameter 与 flangeThickness 表达;其他不变,实体仍命名为 tube。 V = π(R²−r²)(L₁+L₂+πρ/2) + π(20²−r²)·4 = 22,638.15;1 实体;X 下限 −4
T3 放样,结构续改 loft-saved.aira.json(98fbe7:60×40 矩形 → Ø24 圆,h=70) 把顶部截面从直径 24 mm 的圆改为边长 20 mm 的正方形(中心不变,仍在 height 高度处),用新参数 topSide 表达正方形边长;其他几何与参数不变。 V = h/6·(A₁ + 4A_m + A₂),A₁=2400,A₂=400,A_m=40·30=1200 → 88,666.67(h=70);1 实体;6 面
T4 多实体,结构续改 complex-part-v2-edits-1e8f86.aira.json(cols 6、holeDiameter 8、pinDiameter 14,138,388.42) 在两片叉耳之间的底板上,沿 Z 轴增加一个 Ø10 mm 贯穿孔,中心在 X=60、Y=40;用新参数 centerHoleDiameter 表达孔径;保持其他几何、参数与 bracket / pin 命名不变。 V = 138,388.42 − π·5²·8 = 137,760.10;2 实体,命名 bracket / pin 不变
T5 多实体,结构续改(改路径) 同 T4 把弯管的弯曲半径从 10 mm 改为 15 mm,用新参数 bendRadius 表达;保持其他几何、参数与 bracket / pin 命名不变。 V = 138,388.42 + π(4²−2.5²)·(π/2)·5 = 138,628.99;2 实体;Y 上限 105

勘误(2026-09-08):T5 的指令有两种读法——直段长度不变(管子随弯曲半径伸长,Y 上限 100 → 105)或端点不变(直段各缩 5 mm,体积 −65.73); 真值按前者。2026-09-08 的 T5-5 取了后者,程序、期望声明与实测自洽而按真值判失败。此后运行的指令末尾加“两段直段长度不变”以消歧; 2026-09-08 结果行保留原判。

起始文件按 SHA-256 记录在结果里;文件本身存于用户授权的临时目录,不进仓库。

格 cols × rows N 真值体积
S1 4 × 3 12 48,313.42
S2 8 × 6 48 46,277.66
S3 16 × 12 192 38,134.66
S4 32 × 24 768 5,562.62(公式值,不判)

同一指令只改两个数字。假设:程序用循环表达阵列,token、费用与耗时应与 N 无关;若随 N 线性增长,说明模型在 逐孔写几何,这是失败模式而不是“更难的题”。S4 的孔距 90/31 ≈ 2.90 mm 小于孔径 6 mm,孔相互重叠,真值公式 不再成立——S4 只测成本增长,几何判据改为“1 实体、有效、边界不变”,体积不判。 勘误(2026-09-08):S3 同样病态——cols 16 在 90 mm 上的孔距 6.0 mm 等于孔径(相邻孔相切),rows 12 在 40 mm 上的孔距 3.64 mm 小于孔径(重叠), 真值公式不成立;宿主修复栈溢出后该格实测为 166 实体、1,053 面、40,907.45 mm³。N=192 要有真值须换板材尺寸或孔径;改动前 S3、S4 两行只表示成本与宿主行为。 修订格 S3′(2026-09-08 增补,同一指令只改两个数字):cols 15 × rows 7,N = 105,孔距 X 6.43 mm、Y 6.67 mm 均大于孔径,真值 V = 43,054.39、1 实体、116 面、边界不变。 它是 Ø6 孔在该板上不相交的最大阵列(cols ≤ 15、rows ≤ 7),规模轴因此止于 N = 105;零付费复核:S1-1 的程序改参数后宿主 18 s 提交,独立回读与公式一致。

3.2 深度轴(T1 的 S1 状态上连续续改)

Section titled “3.2 深度轴(T1 的 S1 状态上连续续改)”

每条序列从 S1 的创建结果重开,六轮依次执行;每轮都必须满足真值,前几轮的几何不得被后一轮破坏。

轮 指令(逐字) 真值(w=壁厚,d=底孔径,N=底孔数)
k1 把 cols 改为 8,其他不变。 N=24:47,634.83
k2 在盒体两个短边(X=0 和 X=120 的壁)外壁中央各加一个 Ø8 mm 的贯穿孔,孔轴线沿 X,中心在 Y=40、Z=25;其他不变。 47,634.83 − 2·π·4²·2 = 47,433.77
k3 把 holeDiameter 改为 5 mm,其他不变。 47,433.77 + 24·π(3²−2.5²)·2 = 47,848.46
k4 把 wall 改为 3 mm,其他不变。 120·80·40 − 114·74·37 − 24·π·2.5²·3 − 2·π·4²·3 = 70,152.69
k5 在底板中心 X=60、Y=40 处加一个 Ø6 mm 的贯穿孔,用新参数 centerHoleDiameter 表达;其他不变。 70,152.69 − π·3²·3 = 70,067.87
k6 把 rows 改为 4,其他不变。 N=32;底孔 y 在 20–60 四等分:20、33.33、46.67、60,与中心孔 (60,40) 的距离 6.67 > 3 + 2.5;70,067.87 − 8·π·2.5²·3 = 69,596.63

k5 的中心孔与底孔互不相交(cols 8 的 x 序列 15、27.86、40.71、53.57、66.43、… 与 60 的最小距离 6.43 > 3 + 2.5),所以真值仍是简单相减;Ø10 会与相邻底孔重叠,故取 Ø6。 假设:每轮成本只随程序长度变化,不随历史轮数增长;守恒律保证未提及的几何不变。

  • 每格 n = 5 次独立运行;每次从同一起始文件重开(规模轴从空白文档),互不共享上下文。
  • 成功率报 Wilson 95% 区间,不报点估计;成本与时间报中位数与最大值。
  • 序列(深度轴)以整条序列为样本:n = 5 条序列,报每轮的成功率与每轮成本中位数。
  • 跑前写死,跑后不改:n、判据、终止规则、封顶。中途发现协议错误只能作废整格重跑并在结果里注明。

数据来源为产品自身的任务卡与 trace(FlowMeter 的 gauges/counters、NativeAgentUsage)、网关标准输出 与独立回读,不另建采集器。

指标 定义 来源
首试成功 第一份计划被宿主接受并提交,没有 needs-repair 诊断 流程记录无 rejected
最终成功 预算与终止规则内提交且几何判据全部通过 回读
修复次数 宿主拒绝后模型重发计划的次数 流程记录
调用数 provider 请求数 counters calls
查库数与查询词 aira_library_reference 调用数与每次的查询词 counters lookups;网关 [gateway] library lookup 行
token 已结算请求的输入/输出 token,及 provider 报告的缓存命中/未命中 counters in/out;raw usage
未结算用量 取消或超时时在途请求的用量,记 unknown,不估算 —
费用 按运行日 DeepSeek 官方牌价与缓存命中拆分计算;记录牌价日期 gauge cost 与牌价
provider 耗时 全部 provider 响应时间之和 counters provider
CAD 耗时 浏览器内计划执行(预览、验证、提交、回读)时间之和 counters cad
首个可见结果 提交指令到第一次 model.commit 完成的时间 页面记录器以头版本变化时刻计
总时长 提交到任务卡终态 gauge duration
峰值内存 任务期间评估 trace 的 wasmMemoryBytes 最大值 快照 evidence wasmMemoryBytes
上下文字节 用户消息字节数与其中模型上下文、签名清单的字节数 网关请求捕获(假 provider 栈同一函数),或 counters chars

回读命令(仓库现有工具):

终端窗口
uv run --no-project --python 3.12 --with cadquery-ocp-novtk==7.8.1.1 python tools/independent-step-verifier/verify_step.py <STEP>

全部满足才算通过,任一不满足即失败,没有“近似成功”:

  • status = passed 且 valid = true;
  • 体积相对误差 |V_measured − V_expected| / V_expected ≤ 1e-6(S4 除外,见 §3.1);
  • 实体数、面数与真值相等(面数只在真值列给出时判);
  • 边界各分量与真值之差 ≤ 1e-6 mm;
  • 命名实体(T4、T5)名字集合不变,由守恒报告确认。
  • 提交后 3 分钟内没有计划到达即点击停止,记失败,用量按“未结算 unknown”处理; 勘误(2026-09-08):2026-09-08 的 48 次付费运行里 9 次失败有 8 次是这条规则停止的,且没有一次是几何错误;产品自身的任务时长默认已改为 5 分钟, 此后“无计划停止”改按产品预算(5 分钟),由产品的 TASK_TIMEOUT 判定,记录器不再自行点停。已记录的行保留原判。
  • 单次任务最多 2 次修复,第 3 份计划被拒即失败;
  • 每格费用上限 $0.15(规模轴 S4 为 $0.30),超出即停止该格剩余运行,已跑样本保留并注明 n; 勘误(2026-09-14,M3):该上限按 2026-09-07 实测单价(创建 $0.02–0.05)设定。M3 在提交 27ce6d14 上重跑 S1 时,一次创建即结算 $0.2122(7 次调用、432,358 输入 token、2 次查库、turn 4),是 09-08 同格复测均价 $0.027 的 8 倍;来源是内置代理循环续传后模型在提交计划后回读自检(与目标探测协议 §14 记录的现象一致),不是几何或产品错误。按原上限每格都会在 n=1 停下,P1 拿不到区间。自 S1-2 起规模轴每格上限改为 $1.25(5 × $0.25),深度轴每轮每次上限 $0.40,超出即记 budget 并终止该序列;S1-1 原判保留(按原规则触顶,n=1 → 续跑至 n=5)。判据、n 与终止规则不变。
  • 单次任务预算沿用产品默认(16 轮、6 次修复、12 分钟、$0.5),不为基准放宽。 勘误(2026-09-08):括号里的数字是当时工作树里一段未提交的临时预算,不是提交版本的默认;2026-09-07 与 09-08 两轮运行的构建都取自提交,产品默认为 48 轮、16 次修复、30 分钟、$5。自 2026-09-08 起产品默认时长改为 5 分钟,单次程序执行另有 60 秒上界、单次评估 120 秒上界;此后运行按当次构建的默认记录。

代码提交号;Web 与 Gateway 构建的 dist 哈希;运行时身份(aira_occt_feature_graph v0.16,248 个绑定); 模型 id、思考模式与推理强度、温度(沿用产品配置,不改);预算配置;指令文件哈希;起始文件 SHA-256; 牌价日期;浏览器与 OS 版本;机器(CPU/内存)。provider 侧的随机性不可控,所以用 n=5 与区间表述。

改进结论只能来自同条件对照。基线为提交 fbdd9f3(签名清单、上下文最小化、守恒律与导出修复之前;计划合同 0.5.0,Web 与 Gateway 必须同为该提交的构建)。基线子集:S1、S2 各 n=3,深度轴 k1–k3 一条序列 n=3。 基线的失败也如实记录;基线与现状的差异只按同一格同一判据比较。

  1. 启动真实栈(网关 dist + Web dist + 夹具/抓取助手),记录 §8 的全部变量。
  2. 规模轴每次:清空本地存储 → 提交 T1 指令 → 等待终态 → 导出 STEP → 回读 → 写一行结果。
  3. 深度轴每条序列:从 S1 的保存副本重开 → k1…k6 逐轮提交、等待、导出、回读、写行;任一轮失败则序列在该轮终止,后续轮记 not-run。
  4. 每行结果附 STEP 与 .verify.json 的 SHA-256;文件存临时目录。
  5. 汇总表按格给出成功率区间、成本与时间的中位数/最大值、峰值内存,附增长曲线的数值表。
  • docs/benchmarks/results/<日期>-<提交号>.jsonl:每次运行一行,字段见 results.schema.json。
  • docs/benchmarks/results/<日期>-<提交号>.md:汇总表与结论;结论只陈述测到的增长,不外推。
  • 复算:任何人用同一起始文件、同一指令、同一回读命令与本文的公式可以重新判定每一行;token 与费用可用 牌价与结果里的用量重新计算。

规模轴 4 格 × 5 = 20 次创建,深度轴 5 条序列 × 6 轮 = 30 次续改,基线子集 6 + 9 = 15 次;按本轮实测单价 (创建 $0.02–0.05、参数续改 $0.003、结构续改 $0.01–0.05)估算合计 $1.0–1.5,跑前按 §7 封顶。