8 Commits

Author SHA1 Message Date
lili
882ca3f357 feat(cheap-gen): W-AXIS 波2 判定语义重置——独立模型玩法判定阻断+拆残笼+判定档切 M3
裁定三落地:accepted = 机械预筛 ∧ 独立模型玩法判定,九门 pass 降为「未见明显死」预筛。

- 波2a 玩法判定器(cheap_verify.py):读 brief+run-summary+全程截图(含新增局中连拍
  midplay-1..N,play.cdp.cjs 只读并发拍、不进任何门判据),布尔裁 broken/hollow/off_brief,
  fail-closed;判定真相层落 evidence/judge.json + verdict.json 写回 accepted/judge 段;
  金标夹具 fixtures/judge-golden/ + judge_golden.py 校准跑批
- 波2b 拆残笼:check 词法 tokenizer 替换 stripCode 正则(字符串内 // 假阴根修,292 在册
  源零差异);prompt v1.6.3 外科清洗(两层奖励→纯设计语/删盲驱动器围设计/删熔断恐吓),
  registry 热取==内置逐字节一致(cheap_roles 内置回退同步);edit_file 空白归一+近似片段提示
- 判定器补修:空输出有界重试一次(glm 思考吃光 max_tokens 时 content 空)+重试放大公式
  反缩 bug 修(旧 min(×2,6000) 大 base 反缩)+finishReason 落盘;imagesSeen 模型自报+
  盲检微扰重掷、两掷均盲=仪器故障 degraded(闲鱼中转静默丢图实锤,不再错杀 hollow)
- 判定档切 MiniMax-M3(创始人 2026-07-10 拍板,裁定三①边界随 v2 plan 修订):
  generation.yaml judge.model+max_tokens=202752(512K 网关实探 400 拒,取实探上限);
  3 例盲案 M3 重判全 accept、¥0.026/局
- 三路消费对齐:CLI 预筛语义修(cheap_studio 喂 verdict.pass 而非 finished,违裁定三的
  放行已纠)/Service 路 apply_gameplay_judge 显式 prefilter 参数/result_out 权威改读
  accepted(无键回落预筛,旧产物兼容)+trace.gameplayJudge additive 透传;
  tier2 gate_judge/genconfig 同步判定配置与消费

测试:test_gameplay_judge 33 项新增,全仓 pytest 480 绿;真判定闭环 accept ¥0.061。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 04:27:18 -07:00
lili
1c4d5838ec fix(cheap-gen): 撤写锁·全放开 + max_tokens 512K——创始人纠偏 + 浏览器验收坐实
创始人 2026-07-08/09 两次纠偏,各揪出一个写锁法漏的真根因:
① 浏览器验收:写锁 core.js 致「榫卯」brief 出「陶艺」游戏(主题漂)——规范应是文件位置
   + 绝对通用 plumbing(L1_FIXED 已锁 host-config/game/index/entry/main),不该把模型限死到
   只改几个文件(只改几个文件游戏做不好玩、切不中题)。→ 全撤 write_whitelist,game-logic/
   core/render/assets 全放开,模型自由做好玩切题游戏;截断类失败靠 harness 门兜不靠锁。
② max_tokens:实测 M3 单轮能输出 17000 tokens/finish_reason=stop、accepts 40K/512K 无报错
   ——16K 是自设限非模型限;cheap 走 OpenAI inline thinking(thinking 吃 output 额度)致大文件
   整写截断(heritage 黑屏/thrash 病根之一)。→ genconfig max_tokens 16K→512K(统一上限,可调)。

浏览器验收 it8(不锁+stripCode修复+足量token):heritage=榫卯工坊·直榫凳·选料→画线→凿卯→
修整(切题修好);action=撞了得分535·1771米·翻转30(坏死修好);trpg=已清9层3次升级(死锁没了+
内容更全);全 1-2 attempts 无 thrash。残余 idle-sim「↑NaN」(render.js:164 upgradeCost=NaN,
模型数值 bug,待修)。build_reskin_system_prompt 撤锁后未用(留待清理)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 04:27:17 -07:00
lili
bfeaea2d42 feat(tier2): 创始人令提生成预算阈值——writer 40→60 轮 / step_cap 60→100 / model_calls 80→120 / 墙钟 1800→2700s
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
F-2 两轮实证 40/60 是预算墙非能力墙:美食类硬 brief R1 churn 到 step_cap、
R2 设计收敛后 writer 仍 40 轮被截,resume 续修窗只剩 ~20 步修不完。步顶 100
= writer 60 + 续修 ~40 headroom;失控保护交 ¥ 两段式(50/75)与墙钟 2700。
cheap Service 显式传 150 不受影响;cheap CLI 继承(纯兜底,¥10/15 是真闸)。
tier2 97/97 + cheap 329/329。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 00:14:32 -07:00
lili
0a9504e400 fix(tier2): 设计团队墙钟 240→420s(F-2 R1 两败局实证,KTD2 定点修)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
R1=3/5:两败局(美食/糖水店)同构——3/4 专家已产出、末段调用/leader 撞 240s
墙钟→降级单 agent 设计→writer 40 轮不收敛→step_cap;三过门局设计团队全部
正常收敛(超时↔失败 5/5 完美相关,台账 fail_system 空导致退路树误判分散)。
M3 thinking 慢尾单调用可达 120-180s,420 给一次慢尾余量,与 step_timeout_s
同刻度。YAML(运行面)与 _BUILTIN_DEFAULTS(兜底)同改防漂移;tier2 97/97。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 23:56:32 -07:00
lili
9e1e943503 feat(budget): T3 预算两段式统一(软停线 ¥10/¥50 只许收尾+RMB 硬地板 ×1.5 fail-closed 封上界+CLI/Service 同源工厂) (W-ARCH②,创始人 2026-07-03 裁决)
- middleware:soft 档升两段式——越软停线置软停+on_acting 拦新增生成面工具(write_file/write_source/scaffold_init,
  收尾类 finish/check/build/跑门/只读恒放行);越硬地板(软停线×rmb_hard_floor_ratio=1.5)fail-closed 抛熔断,
  spent>floor 后 est≥0 使下次调用必拦 → 整局 ¥ ≤ floor+单笔,上界数学可证明;hard 档单段语义逐字不变
- genconfig+generation.yaml:rmb_hard_limit 3.0(spike 占位)→50.0(富档软停线裁决值)、新增 rmb_hard_floor_ratio=1.5
  / cheap_rmb_hard_limit=10.0 登内置默认,带裁决出处中文注释
- cheap_budget.build_cheap_breaker:便宜档 breaker 唯一装配点——CLI(cheap_studio,原 hard 单段 ¥10 改两段)与
  生产 Service(cheap_service_app,原 soft 无地板补地板)同源读 genconfig,档位参数不可被 overrides 改
- 测试:两段式 11 用例(软停区间放行/生成工具拒·收尾放行/硬地板到线即停/spent>floor 次调必拦/工厂同源 env 同变);
  test_budget_soft_stop 旧「soft 无界」口径按裁决更新为两段式并补越地板用例;既有 hard 档测试全量不动全绿

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 14:15:59 -07:00
zizi
34336d3204 feat(tier2): C3 证路基线接 deepseek-v4-pro 跨族 cross-check(创始人 2026-06-24 裁定)
网关现实(实测):new-api 只有 MiniMax + deepseek-v4-pro,无 Opus/Fable/Claude/GPT;
build_baseline_model('Opus') 真调返 503 model_not_found。创始人裁定证路当前用 deepseek-v4-pro
跨族 cross-check(不比 M3 明显强、证路力偏弱,但能跑;真强模型证路待网关开 Opus/Fable 渠道、
改 generation.yaml 即接,代码已就绪)。

加 BASELINE_CROSSCHECK + _BASELINE_NAME_BY_KEY 的 crosscheck/deepseek 聚合 key + generation.yaml
model.baseline_crosscheck=deepseek-v4-pro。实测 deepseek-v4-pro 在 new-api 上 Anthropic 原生路可用,
build_baseline_model('deepseek-v4-pro') 真调返「跨族已通」——证路走 Anthropic 路与 M3 同协议同线对照。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 10:56:55 +00:00
zizi
bd8b2c80a6 feat(tier2): B门重机器并行落地——控制面有界resume + Studio观测 + MCP工具面 + 基线client/Prompt门
B 门(AgentScope 重机器)四单元并行建设,文件不相交,均过 6c6g 静态校验(py_compile +
惰性 import 安全 + 机器门)。真跑收敛/Studio/门验证属 mini-desktop,作为下一步 e2e。

B1 控制面有界 resume(service/control_plane.py · 皇冠):
  补上 service/app.py 与 bootstrap.py 文件头标的 followup——CLI run_studio:404-458 的外层有界
  resume(M3 看一次 verdict 就停 → 带反馈踹回去续修)此前在服务态(create_app :8200)缺失。
  drive_generation() 复用 bootstrap REST 原语 + run 纯代码门:每回合消费 SSE(REPLY_END/
  EXCEED_MAX_ITERS)等 chat run 结束 → 独立跑 run.run_gates 机器判门 → 门绿据 on-disk 源工程
  重建七要素 + persist 落库 / 否则 verdict_feedback 续修,直到门绿/预算耗尽/熔断。不靠内存
  session 判收敛(服务态九工具每回合工厂新建 Tier2Session),贴合「门机器判、控制面绝不自评翻绿」。

C1 AgentScope Studio 观测(observability/studio_sink.py + trace.py):
  把统一 trace 事件按 OTLP(经核实 Studio = OpenTelemetry,非私有 REST;HTTP 3000 /v1/traces)
  映射成 span 推 Studio,traceId→gen_ai.conversation.id 聚成一条 run。私有 TracerProvider 避免
  抢 otel 全局单例。默认关闭(无 TIER2_STUDIO_URL 即 no-op)、observe-only、绝不改 decision。

C2 MCP 工具面(worker/mcp_tools.py + toolkit.py 加性挂点):
  图说 E 族——build_toolkit 末尾加配置门控挂点,默认关闭时 build_mcp_clients() 返回 []、
  Toolkit(tools, mcps=[]) 与原构造等价,九工具(spike 已验证主链)行为零改。Toolkit 接受 mcps=
  形参已对源码核实(tool/_toolkit.py:93)。

C3 基线 client + Prompt 一致性机器门(config.py + genconfig.py + generation.yaml + ci/):
  build_baseline_model(Opus 经 new-api Anthropic 原生)供 A 门「证路」,build_model M3 路零回归;
  check-prompt-registry.sh 文件级三向一致 + import 级命中 registry,6c6g 实跑 exit 0。

修复 design_team 配置外置兑现(design_team.py):
  leader_max_iters/per_expert_cap/timeout_s 改 None→genconfig.get('design_team',...),此前硬编码
  默认 240 导致改 generation.yaml 的 timeout 不生效;已验 genconfig 真读到 YAML 值。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 07:46:59 +00:00
zizi
c9dbd50d80 feat(tier2): B门-配置外置——生成器旋钮 + prompt 全部数据驱动(调生成=改数据重跑、不改码)
让"调生成"从改代码变成改数据,直接给"优化 20% 过门率"的迭代提速。默认值=现有硬编码值、行为字节不变,改外部数据才生效。

【生成配置层】genconfig.py + tier2/config/generation.yaml:
把硬编码旋钮(model 选择 / 熔断·预算 rmb_hard_limit=3.0 / 迭代 writer_max_iters=40 / 工作室 Team leader_max_iters=12·per_expert_cap=2 / 品类参数)
抽成中央 YAML、运行时读(env TIER2_GENCONFIG 覆盖 + 缺省回落内置默认);config/middleware/studio/design_team 改读 genconfig。
回归:4 关键旋钮默认取值 == 改造前硬编码值;整 worker 包编译过。
(未externalize:fallback_tree ★阈值 + harness HUMAN_MIN_PATIENCE 门阈值——门阈值次要、gates 现 advisory,留后续。)

【Prompt 外置】prompts.py + contracts/prompts/09-tier2-richgame/(8 .md)+ registry.yaml:
tier2 的 8 条 system prompt(writer/design-leader/4 专家/player/design-system)外置到 Prompt Registry(契约#8),
运行时按 id 读 + 三级回落(env > registry .md > 内置原文)+ best-effort 不中断;{{input.*}} 字符串替换(避开裸 JSON 花括号噎 format)。
roles.py 改读 registry 但对外接口字节不变(studio/design_team call site 零改)。
回归:13/13 产物逐字节 == 改造前(含带参 design_leader/writer 四种入参组合);registry 缺失回落内置原文。Tier0/1 既有 8 条 prompt 零改动(red line)。

全 tier2/+contracts/prompts/ 内、零碰 Tier0/1、compileall + forbidden-import 通过。注:两 workflow 中 U1(genconfig)结构化报告解析失败(基建层),代码已落盘且主会话直接复核(编译+默认值回归过)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 05:32:37 +00:00