9 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
5b631e8d5d chore(tier2): archetype 假旋钮清账——删 genconfig 死声明「archetype」区(生成路从不读、真值硬编码)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
W-S2 follow-up:genconfig.py 登记过一个 "archetype" 区声明 business_sim driver 五参
(steps/stepMs/winThreshold/bankruptSteps/streakLose),但生成路(archetypes._business_sim_gate_spec /
run.DEFAULT_BUSINESS_SIM_PLAY_SPEC)从不读它、真值一直硬编码在那两处 = 死旋钮(改配置无效、误导)。
删该假声明(工单=接线或删声明,取删=最小),两处硬编码加注为单一权威源;放量期确需热调再按 D11
「读 genconfig、硬编码作回落」范式补接线。

纯声明删除 + 注释,零生成逻辑改动。tier2 venv 真跑 test_genconfig_nacos 19 + test_run_gates_stale_verdict 2
全绿 + import 冒烟(archetype 区已从 _BUILTIN_DEFAULTS 删净)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 21:58:23 -07:00
lili
d9def7d901 feat(cfg): 步骤4 收尾两针——两 Service 入口接热源工厂(旗默认关=字节不变)+ genconfig __main__ 自检块期望值随单源现值修正(50.0/60,阈值批 bfeaea2d 漏改自检块)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
入口接线:tier2 service/app.py:main 与 cheap_service_app.py:main 对称各调 build_and_attach_hot_source(tier=...),
工厂自带启用旗(TIER2_GENCONFIG_NACOS 默认关)+ best-effort,无条件调不再包旗;两档各订各 dataId 不串档。
验证:tier2 126 passed / cheap-worker 339 passed 1 skipped / genconfig 自检块全 OK / py_compile 两入口过。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 09:23:20 -07:00
lili
3b6573941d feat(cfg): NacosHotConfig 接进 genconfig — HotConfig 单例工厂 + 取值链前端热源(配置控制面阶段二·步骤4)
件2 genconfig 接热源:get() 取值链最前端插进程级热源单例(attach/detach),优先级 Nacos 热源>env>YAML>内置默认>调用方 default;复合键 area.key 无歧义扁平化 (area,key) 二维;缺键/未 attach/异常一律回落原链,绝不引入第二默认值(坑④·tech-decisions §13);热源命中即返回不读 YAML,mtime 缓存无从盖住热值;middleware 等所有 genconfig.get 调用面一行不改。

件1 worker/genconfig_nacos.py 工厂:启用旗 TIER2_GENCONFIG_NACOS 默认关(=行为字节不变,兼作 §3.6/§6 回退开关);按档隔离 dataId(tier2=gen-hot-params-tier2 / cheap=gen-hot-params-cheap,env 可覆盖);建 client 前 NO_PROXY 内网旁路;真实 namespaceId 默认空串(勿写 public,沿前置任务口径);注入 NacosHotConfig 的 defaults 刻意空;全程 best-effort 失败不 attach 不抛,genconfig 回落纯本地。

cheap-worker 共享 worker.genconfig(from worker import genconfig),两档隔离靠各进程 attach 各自 dataId 的热源;缝在 cheap_service_app.py:main 对称调 build_and_attach_hot_source(tier=cheap),本单不动只说明。

验证:单测 19 条锁死四条回落路径(未 attach/Nacos 不可达/namespace 配错/YAML 回落)+ 两档各读各 dataId + Nacos>env 优先级 + 门阈值热读 + 工厂 best-effort/按档/NO_PROXY/namespace 空串;worktree 全量 126 passed 无回归;真 Nacos(mini-infra 100.64.0.8)演示脚本改演示 dataId → genconfig 0.5s 热读到新值不重启、清理不碰生产 dataId。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 09:15:33 -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
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