# 工作记录 只记当前状态。一个阶段完成后压缩成几行,细节看提交说明。 ## 当前目标 搭好项目框架:CLAUDE.md、方法、结构都定下来以后,按模块从参考项目搬代码。 ## 已完成 - CLAUDE.md:按官方写法写成(提交 3861fd8 及之后)。 - `docs/方法.md`:由参考项目的研究方案 v3、设计-15、设计-16 合成(f32c0bd)。之后按用户决定改过:消融只测信息价值选中的格(5e4f8c2);保障的定义借用"控制变量"和"重构"来说明(141494f)。 - `docs/结构.md`:13 个模块加 vocab、步骤清单、账本记录种类、可替换点、检查规则、粗估规模(6cf9f0c)。 - 任务书 01(工具链 + vocab):npm 包、TypeScript、`node --test`、dependency-cruiser 规则全写,临时违规实测 14 条都报错;vocab 1030 行,`npm run check` 通过,`npm test` 24 条通过。结构.md 第八部分补了 vocab 对外内容。 - 任务书 02(rules):src/rules 13 个文件、1761 行,`npm test` 192 条通过。预期值来源有三个:方法.md 的手算例;`tests/fixtures/rules/` 下不看实现写的 Python 脚本(重跑后 JSON 逐字节相同);参考项目 calc15、calc14b 里与现行方法一致的部分。审阅做了两轮,每轮都换一个全新上下文的子 Agent。结构.md 第八部分补了 rules 对外内容。 - 任务书 03(ledger):src/ledger 5 个文件、584 行,`npm test` 226 条通过(ledger 34 条)。一张只追加的表,两条禁改禁删触发器,8 处唯一约束(阶段开、阶段关、运行登记、确认启动或确认没启动、运行结果、模型调用开始、结束、消融结算),写入时只查四种拒收,提案的作者自评拆成封存另存。按第一版写过可见性和通用唯一键,按新版全部清掉了。全新上下文的审阅做了三轮。结构.md 第八部分补了 ledger 对外内容。 - 任务书 04(config):src/config 4 个文件、453 行,`npm test` 246 条通过(config 19 条)。流程用联合类型(完整流程 / 朴素循环),规则名取自 rules 登记表,config 改为依赖 rules。ledger 顺手两处:结算按轮次唯一、笔记去掉版本号,表结构版本号升到 2,全新上下文审阅一轮无问题。结构.md 第八部分补了 config 对外内容。 - 任务书 05(tasks 与 runner):src/runner 2 个文件、271 行,src/tasks 6 个文件、691 行,`npm test` 274 条通过(runner 12 条、tasks 16 条,真实 Docker,整套约 12 秒)。任务目录搬到 `tasks/circle_packing/`,新增 task.json;`VERDICTS` 删掉"判不了"。基线从头到尾判为算数,分数 0.9597642169962064,两次逐位相同。全新上下文审阅两轮:第一轮发现候选能伪造计量结果(把超时记成正常退出)、运行目录里旧 metrics.json 会被当成本次产物,都已修(计量 shell 以容器内 root 跑、命令用 setpriv 降权、结果用 docker cp 取;harness 开跑前删旧输出);第二轮只审这次修复,另采纳一条:容器加 no-new-privileges,禁止候选靠 setuid 程序重新拿到 root。结构.md 第八部分补了 runner、tasks。 - 任务书 06(workspace):src/workspace 2 个文件、205 行,`npm test` 284 条通过(workspace 10 条,真实 git)。版本号是目录树编号,存版本自己列文件加 hash-object,取出用 ls-tree 加 cat-file(实测 `git archive` 会按树里的 `.gitattributes` 丢文件、改换行符),git 子进程另关掉系统和用户的 attributes 文件(实测只关配置时 `~/.config/git/attributes` 仍会被读)。tasks 的 task.json 加必填的 `unversionedNames`,`protectedFiles` 删掉 solution.json。全新上下文审阅一轮:两处偏离都实测成立;采纳一条(写明空文件增删、只改可执行位没有块),其余不改。结构.md 第八部分补了 workspace。 - 任务书 07(agents):src/agents 4 个文件、681 行(预期按用户决定改为 600–700,超出部分是任务书第四部分要保留的三处提交处理、读代码分段和会话核对,没有新增专门路径),`npm test` 293 条通过(agents 9 条,其中 1 条经真实 Pi 会话连本机假模型服务)。package.json 固定 `@earendil-works/pi-coding-agent`、`pi-ai` 0.85.1 并加 overrides(同参考项目);新增 `npm run test:pi`(真实 glm-5.3,研究者先退回再收下、实验员写文件跑 shell 再交)。实测:glm-5.3 经 iomgaa 服务时,正文里没转义的半角双引号会在服务那一侧把参数截成合法但半截的 JSON,Pi 收到的原文本身合法,JSON 检查查不出(抓包确认);提交工具说明里加了一句"引号用「」",之后 12 份提交没再出现。结构.md 第七、八部分已更新。 - 任务书 08(jev):src/jev 3 个文件、515 行,九问的问法和阈值照参考项目,只改说法和字段名,阈值注明未在新材料上校准;判重一对一次请求、冻结条款三问各一次、代码改动一块一次(五问同材料);`npm run test:jev` 三处各问一次真实 Jev,九问都拿回 0 到 1 的概率和请求编号。vocab 加 `JevJudgment`。ledger 表结构版本升到 3:`callEnded` 四种结局对上 agents、墙钟时间用 `Measured`(中断恢复时补写出错、原因"进程中断"、时间测不到);退回和提交记录都带 `jev`(判断数组或 null)。config 加必填的 `models.jev`。`npm test` 316 条通过。账本改动全新上下文审阅两轮。 - 任务书 09(materials):src/materials 12 个文件、1831 行(预期 1200–1800;超出部分主要是用户决定 2 新加的 shapes.ts 116 行,复审判定没有专门路径增多),vocab 加 `Checklist`(1105 行,上限 1150)。19 份提示词以参考项目为底稿只做必要改动搬进 `prompts/`;TASK.md 补了 `unversionedNames` 不存进版本。`npm test` 356 条通过(materials 39 条)。全新上下文审阅三轮(可见性一轮、规模与正确性一轮、修复复审一轮),materials 内部没有发现泄露;要靠 flow 写入时机保证的几条记进"未完成"的"给 flow"。 - 任务书 10(submissions):先改 materials 第一部分 7 处,另加两处小改动(jev 判重材料带关键设定、核验 `body` 字段说明补同行提醒)。src/submissions 6 个文件、391 行(预期 400–600);materials 1850 行;vocab 1107 行;ledger 退回记录加对象字段,表结构版本升到 4。`npm test` 400 条通过;`npm run test:jev` 新增三个真实用例:写得好的回应收下(三问 0.06 / 0.04 / 0.04),改评测的回应退回(changes_measurement 0.91,阈值 0.21),实现 3 块 15 条判断全否。全新上下文审阅一轮:采纳消融实现退回文字前后矛盾、两处测试加强;另发现同轮指标重名,用户定的改法见"未完成"。结构.md 第七、八部分已更新。 - 任务书 11(收尾,提交 13a7e60):假设专用指标冻结时加候选前缀,全名"候选编号.短名",只在 materials 的 `freezeProtocol` 加;短名恢复不能含 `.`(最长 64),已占用清单只剩任务的指标和两个保留键。消融格核验不通过重做时,材料写"工作目录是上一次交的这一格代码的副本",能读的版本加上它,完整代码照旧列出;消融实现提示词同步改。jev 判重的材料说明补 `keySettings` 一句。materials 1868 行(上限 1850,多出主要是 `freezeProtocol`),submissions 391 行,vocab 1118 行。`npm test` 405 条通过;`npm run test:jev -- jev-latest` 判重一问照常拿回概率。结构.md 第八部分 vocab、materials、jev 已更新。 - 任务书 12(flow 第 1 部分:骨架、研究开始、第零轮):src/flow 11 个文件、775 行(预期 900–1200;实验员、核验员会话接法和多份提交的编号要用到第 2、3 部分才写),materials 1897 行(+29:`finalEntries`、`researcherId`、`StudyRecord`),eval/ 1006 行。`npm test` 418 条通过(新增 flow 下一步 11 条、真 Docker 2 条:研究编号重复报错、docker run 没启动后停下不在本进程重跑)。全新上下文审阅 2.5、2.7 一轮,采纳两条(同上两条测试对应的修复)。真实检验:16-real-1 回放分配与当年完全相同、0 退回;三处杀进程、两份同时跑全部通过。**研究质量未通过**:3 次真实运行(`/home/iomgaa/inforsi-eval/2026-10-03-r0-real-1`、`-2`、`-3`,2、3 被内存回收杀过一次、按正式恢复路径续跑完)第 1、3 问都不通过,入口全体没有 K1(联合优化);材料核对符合方法.md 4.2,交用户判断。 - 任务书 13(第零轮重测,提交 a423497 及收尾提交):三处小改动——研究编号只许小写、`task`/`promptDir` 必须绝对路径(config +22/−7,`npm test` 420 条通过);检验第 2、6 问每对两个顺序各问一次取平均(eval +35/−17)。用监督者改过的提示词真实跑第零轮 3 次(`/home/iomgaa/inforsi-eval/2026-10-03-r0-v2-1`、`-2`、`-3`,都一次跑完没中断):**研究质量仍未通过**,3 次第 3 问都不通过(v2-1、v2-3 的 K1 入口没被分出去;v2-2 分出去了,但另一个分到的入口判为只停在 D2;v2-1 分到的一个判为停在 D1、D2,v2-3 一个停在 D1),v2-1 另有第 4、5 问不通过;第 1 问 3 次都通过(入口全体里各有 1 个指向 K1,上次 0/3)。按事先定的规则照实收下,不再调提示词。上次 3 次运行和 16-real-1 回放用新的第 2 问复评在 `2026-10-03-rescore-*`(只有 r0-real-3 第 2 问由不通过变通过)。 - 任务书 14(flow 第 2 部分:第 r 轮开轮到选批,提交 2c6fdce 提示词、f98d664 代码、a2a1392 eval,以及之后的收尾提交):提示词按参考项目高分运行第 1 轮的真实记录诊断后改了研究者角色提示词和这一段的六份任务消息(角色提示词 6836→4386 字)。src/flow 1105 行(上限 1700),materials 1910 行(上限 1950,导出 `Board`、讨论原文里作废的入口编号标"(已作废)"),vocab 1132 行;`npm test` 437 条通过。全新上下文审阅一轮(三个程序步骤与恢复),没有会污染账本的问题。3 次真实运行 `/home/iomgaa/inforsi-eval/2026-10-03-r1-v1-kill`、`-r1-v1-a`、`-r1-v1-b` 都停在第 1 轮选批后(原因"实现还没写"),杀进程四条通过;盲评和 Jev 结果在 `/home/iomgaa/inforsi-eval/2026-10-03-r1-compare/`,研究质量(两位盲评,我们 3 次对参考 5 次):方向一项低 1.1、1.8 分(我们 9 条提案只有 1 条做联合优化、3 条判为停在构造或只改半径的死路,9 条都含固定圆心求半径;参考项目当时的提示词带填圆做法),挑刺、回应、预测、选批持平或略高,多样性、提案质量持平;材料核对符合方法.md 第三部分与 4.3,按事先定的规则不再调提示词。监督者核对(2026-10-03):check、test 437 条重跑通过,账本阶段顺序、冻结时机、不挑自己的提案、杀进程续跑都核过;"9 条只有 1 条做联合优化"是按关键词数的,按路线看 3 次里有 2 次交出能走到最好的完整路线且都入选(b 的 r1-c3、kill 的 r1-c2);参考项目当时的提示词带填圆做法,方向一项的比较不公平;盲评分数只在执行报告里,磁盘上没有,监督者没核到分值。 - 任务书 15(冲分与先想后看重测,已完成独立复核):三次已有新运行 `/home/iomgaa/inforsi-eval/2026-10-04-r1-v2-{a2,b2,c2}` 均在第 1 轮选批后停下,账本最终原因“实现还没写(任务书 16)”;配置除编号外相同。报告与 A–J 九行表、新32条四概率、45调用思考核查、全部名称/分配/判重/选批在 `/home/iomgaa/inforsi-eval/2026-10-04-route-compare/report.txt`(对应 txt/json 附表同目录)。六份对照重新导出逐字节一致,九份原阅读未改,W/T 漏读分配和 V 的起点误读另附更正。按出发问题计,闭门首入口从代码起步旧18/18、新2/9;先列多种从零解法旧入口0/18、旧提案1/9,新入口3/9、新提案0/9;Jev reach>0.5 旧18/57、新25/32,只是文字判断,不是成绩。新三次均有完整搜索提案且至少一条入选,尚无候选实跑。修正思考导出把目录当源码的截断错误,加回归;F按等权混合分布分位数、18候选重算一致。`eval/route/` 387行;check通过、test 438通过,完整 `check.log/test.log`;`lsp.log` 为tsserver语法/语义诊断零错误、既有未用类型建议1条(非独立LSP客户端)。偏离如实保留:旧a/b收到SIGINT,触发源未查明;旧c最终停止原因未查明;旧编号撞镜像后换a2/b2/c2,编号派生种子随之改变;新运行时间重叠。失败材料在 `_aborted-2026-10-04/`,本次只补分析,没重跑研究或付费Jev。监督者核对(2026-10-04):check、test 438 条重跑通过;对照组 Jev"能到最好"重问 18/57,与监督者 10-03 那次 18/57 相同。按内容看,新组闭门第一个入口仍是"固定圆心半径是 LP"的有 5/9(对照 18/18),变的主要是出发点从"读代码函数"换成"看题目的数学结构";"读代码前先列几种从零解法"只做到 3/9(入口)和 0/9(提案),所以变化多半来自"冲分"那一条,两处改动同时上,分不开。第 1 轮:3 次都提出了整题联合优化的完整路线,2 次入选(对照 1/3);只换半径、只扫结构族的单独候选没有了。c2 那次联合优化候选没被选:三人都按"本研究零实测、地板只有构造分 1.95"压低它的中位数(2.45–2.50),而 LP 路线有手算的 2.5414 地板,押注阶段仍在"求确定"。 - 任务书 16(flow 第 3 部分:实现到采纳,已完成):提示词单独冻结 `039b7bb`,流程 `bf5b3f2`,检验 `b7be524`,恢复证据修复 `de8e13b`。三份真模型/Jev/Docker 研究 `/home/iomgaa/inforsi-eval/2026-10-04-forward16-{a,b,c}/study` 串行到采纳后,均按“消融还没写(任务书 17)”停下;分别采纳 c1=2.633035228872277、c3=2.634292401973851、c1=2.6306972125084975。每份确认启动/扣次 3、余额 10;B 杀进程后续接原容器、只扣一次、结果及采纳接续三项通过。A 两次 503 后两次人工续接,原失败日志保留。 六候选独立审阅、A/B/C 材料原因复核及 A–J 六行对照已完成;发现 A/c3、B/c1、C/c1、C/c2 的具体实现/核验偏差及协议歧义,未找到导致这些问题的确定 flow/materials 缺陷;B/c3 正确拒绝指标来源污染并最小修复。研究质量不设硬线,不以高分代替忠实度。A/c1 宿主合成 26 点 LP 辅助求解确实执行,检查边界及其研究含义留给用户后续判别,不改账或作废成绩。 证据根 `/home/iomgaa/inforsi-eval/2026-10-04-task16/`:`stats-all/acceptance.json`、`evidence-summary.json`、六份 `*faithfulness.txt`、三份 `*-material-audit.txt`、`routes/route-tables.txt`;最终免费验证 `final-check.log` 通过、`final-test.log` 458/458 通过、`final-lsp.log` 为 tsserver 零 error(非独立 LSP 客户端)。flow 1302 行、materials 1930 行、vocab 1131 行。完整交付报告为同目录 `report.txt`,最终交付另经全新上下文审阅,无实质错报或漏项。 监督者核对(2026-10-04):check、test 458 条重跑通过;三份账本的登记/启动/结果各 3 条、分数、采纳决定、停下原因与报告一致;改过的六份提示词自查无题目关键词。研究质量:①三份第 1 轮采纳 2.6307–2.6343,离已知最好 2.635983 不到 0.2%,不低于参考项目 5 次里最好的第 1 轮(2.6319,且参考提示词带做法)。②押注:三条被采纳的完整路线实测比合并中位数高 0.15–0.21(B/c3 超过九成数),A 那次完整路线 c2 押 2.43 没入选、入选的 c3(推挤)押 2.47 实测 2.45——研究者系统性押低完整路线,是 Jev 比上限检验的数据。③核验:拦下 1 处实质问题(B/c3 指标来源混入兜底值)、修复只动根因;漏过 4 个候选的细节偏差(指标在边角情况写数不写 null、按秒停止的检查点少一处),主体算法 6/6 照协议;没有误判不通过。漏的都在指标和停止条件上,第 4 部分消融要靠这些指标解释,到时看影响。④A/c1 实验员在宿主用随机 26 点检查 LP 约束组装和雅可比,没跑搜索、没拿候选的分数,不算私跑试验,不处理。⑤路线对照能重复:完整路线提案两组都 7/9、入选完整 5/6;"读代码前先列几种解法"仍只 3/18,再次说明变化来自"冲分"那条。修复用完不跑的分支真实运行没碰到,只有免费测试覆盖。 - 任务书 17(flow 第 4 部分:消融到收尾,已完成):提示词 `d788500`(解释/收尾/消融实现/消融核验四份任务提示词按三份调研+两份真实记录诊断改写,监督者三条核实后采用:收尾改为"沿因子继续或换路线"、贴近已知最好处境段、消融提示词与角色提示词去重;泄露自查零命中),流程 `144b884`(⑬–⑱、轮末解封、一轮接一轮、停在"导出还没写"),检验 `0ae495f`,末轮余额为 0 整轮被跳过的缺陷修复 `3f7de96`(真跑发现,附回归测试)。flow 2118 行(上限 3500)、materials 1930 行未动、vocab 1154 行(pi-lens 拆行所致,超 1150 四条,待用户定)。`npm run check` 通过、`npm test` 477 条通过。 五份真模型/Jev/Docker 研究同时跑(3 份一批 + 2 份替补):**B、D 两份完整跑完**(各 13/13 次运行、余额 0、停在"导出还没写"、12 项账目检查全过)。B:采纳 2.625605→2.631094→**2.635983 追平已知最好**,第 1 轮杀消融运行的控制进程三条检查全过(同容器续等、只扣一次、照常结算);D:采纳 2.557163→2.590693→2.605124,第 3 轮三格全测、配合关系"互补"。A 停在 r5 第二次预测(研究者写完分析没调提交工具)、C 停在 r2 回应(Jev 连退 10 次"自相矛盾",执行者认为是 88/92 秒闸两处不一致;监督者核对最后一版协议:88 秒是首轮新种子闸、92 秒是扰动新轮闸,条款写明"不使用首轮的 88 秒闸",是两道闸,不矛盾,只有改动摘要一句"首轮与扰动轮统一"含糊。Jev 在未校准的 0.5 门槛附近(0.61–0.63)连退,可能是误判,收进 Jev 校准集)、E 停在 r1 回应(GLM 内容审核误拦,见"未完成"那条);三份均按方法停下,用户决定不追究 A/C、放弃 E 不再替补。 研究质量(全新上下文子 Agent 独立审阅 B、D 各四份,在 `/home/iomgaa/inforsi-eval/2026-10-04-task17/`):解释机制具体、范围有依据、"没有具体机制判断"用得诚实,但第 1 轮三人对关键格同向全错(B 的 p2 格实测 0 分、惊讶 19.25 比特;对冲第二条刚写进提示词还没赶上);选中的格都是分歧最大/最能改方向的格,B 第 2 轮因意见一致净值全负一格没测(方法.md 第十二部分第 7 条的真实案例);消融 5 格经独立逐行核对全部只关指定因子、核验员判定全对;收尾不混淆"改法有效"与"机制证实",接力是实的(B 的 r2–r5、D 的每轮因子都能在上轮收尾找到出处)。B 与带做法提示的参考项目 15-tight-2 同到终点(慢一轮)。 监督者核对(2026-10-05):check、test 477 条重跑通过;B、D 账本运行登记/启动/结果各 13 条,采纳序列与报告一致,B 第 3 轮 2.63598308469 等于已知最好;每轮选中的候选都有解封(D 第 5 轮余额只剩 1、只选 1 个);末轮修复 `3f7de96` 逻辑对(已开始的轮次照常走完,余额为 0 只挡新一轮);提示词改动窄、有诊断依据,研究者角色提示词没动。更正报告一处说法:B 第 1 轮关多起点那一格"合法、0 分",是单起点从基线三环的近重合圆心出发,联合求解假成功(违反量 1)后固定圆心配半径得 0,测到的是"单起点碰上坏起点",不是"多起点撑 157%";研究者收尾自己读对了(指出退化起点,并说明"低于基线就退基线"是因子不是保障)。格式:执行者用的 Pi 带 pi-lens,自动重排了它碰过的文件(`fdda4f0`、`2ca6da1`;flow 约 450 行、vocab 超上限 4 行都来自重排),仓库里两种格式混着,待用户定。 证据根 `/home/iomgaa/inforsi-eval/2026-10-04-task17/`:五份研究目录在 `2026-10-04-full17-{a,b,c,d,e}/`;`stats-{a,b,c,d}/`、B/D 各四份审阅 txt(`*-expl`、`*-ablation`、`*-wrapup`、`*-tables`)、三份调研与两份诊断 txt、`review-{b,d}/` 审阅导出。完整交付报告为同目录 `report.txt`。 ## 关键决定(用户原话见各提交说明) - 项目改名 InfoRSI。参考项目 RivalBits 只读。 - "点"改称"因子","保障"保留。 - 不设轮数上限,只限运行次数。 - 第一次预测放在挑刺之前、看原始提案;第二次预测在冻结之后、看冻结协议。 - 子 Agent 调研时不写 md 文件,结论直接回报。 - 提交的字段定义放 vocab,submissions 只判收不收;vocab 只放两个函数(规范序列化、哈希)。用户原话:"我都同意"。 - vocab 上限改为 1100 行(多出来的主要是发给模型的字段说明)。用户原话:"同意 A,vocab 上限改为 1100 行。结构.md 由监督者改,你不用动。" - 每份预测只对一个候选、每份挑刺只针对一个目标;入口、因子、实现条款的编号由程序按位置分配;实现提交不设代码字段(程序从工作目录冻结);运行结果用"没启动 / 正常退出 / 超时 / 被取消"一个字段表示启动与结束;四种 token 数都可记测不到。用户原话:"3、4、5、6:同意保留你的写法。方法.md 第五部分的表(入口编号、实现的代码字段)由监督者改。" - 账本改为一张只追加的表,全部记录都不能改(ca2cd52)。用户原话:"同意全部只追加"。 - 谁能看什么归 materials(按任务定材料,第一条消息和查询工具是同一份材料的两种给法),ledger 只存;只在"只能一次"处加唯一约束;Jev 不单独成记录,记在它判断的那件事里(0b0cbb0)。用户原话:"给到派的材料有哪些"和"一开始灌进去还是主动等派去查"是分开的事情;Jev"本质只是一种可以代替程序的判别器"。 - 有自己编号、按定义只发生一次的记录加唯一约束,重复就报错;记录之间的前后顺序检查一律不加,flow 调 ledger 是模块之间的调用,不算边界(493ea6d)。这是监督者提的处理,用户回复"同意";CLAUDE.md"罕见情况怎么办"第 2 条随之写明边界。 - 整个系统不设默认值:配置每个字段必填,函数参数不写默认值,可以没有的值写 null(CLAUDE.md"不设默认值")。用户原话:"全部都不要默认值更好,甚至整个系统都不要默认值,因为默认值可能会掩盖错误"。 - 对照组(步骤开关、朴素循环)先不做,完整流程跑稳之后再按当时的方法补(方法.md 第十一部分)。用户原话:"先不做对照组,按你说的改"。 - config 里的朴素循环和四个步骤开关保留,不删;解释的每格三个数仍是可选,关掉消融时不交。flow、materials 先只实现完整流程全开。用户原话:"config 删掉朴素循环和四个步骤开关暂时没必要,因为后面会用到的"。 - 计算时间不再是预算,只记录;预算只有运行次数(42347e4)。用户原话:"CPU 秒不当预算但是要记录"。 - rules 的约定(方法.md 没写死的地方):入池 P < 0.5 严格;采纳和消融中发现都要严格大于采纳线;成本用 max(0, ĝ₀);没测的格附"含它的最好组合"的净值;战绩在分数原值上判;编号一律按自然序比较。用户原话:"1–8 都同意"。消融成分权重跟随 λ、分歧量不掺开放预留,由用户改进方法.md(a050771)。 - 三个数改为严格递增,去掉尖峰(bfb96ba)。用户原话:"凡是为'三个数相等''宽度为 0''开放预留缩成一个点'写的专门处理,全部删掉"。 - 答案路径、保障动手次数只记读到的原始内容或读不到的原因;在不在位置表里,由以后拿得到位置表的模块现算,不存。用户原话:"按'能现算的不存',tasks 只记读到的原始内容……对表由以后有位置表的模块现算,把这条记进 WORK_LOG。" - tasks 与 runner(任务书 05):依赖跟着任务走,一份研究不能自己改依赖,镜像在研究开始时建一次、编号冻结进账本;runner、tasks 行数按结构.md 第七部分;两个模块合成一份任务书。用户原话:"都同意,写任务书 05 吧"。监督者另定并告知用户:凡是执行任务代码的事(正式运行、判分、轻量检查)都在任务镜像里跑;资源用量在容器里读,不建要 root 清理的 cgroup 分组;容器断网;同一份研究所有运行用同一个种子;不做"取消"函数;`VERDICTS` 删掉"判不了"。 - workspace(任务书 06)用 git:一份研究一个裸仓库,版本号是目录树编号;存版本时自己列文件、用 hash-object 存,不用 `git add`(实测 `.gitignore` 会让它悄悄漏存);git 子进程不读用户配置;实验员目录里除了 task.json 的"不存"清单都算候选,符号链接等特殊文件退回实验员;预期 200–300 行。先派全新上下文子 Agent 独立分析过。用户原话:"都同意,写任务书 06 吧"。 - 实验员会话里的 shell 命令不测 CPU,只记每次模型调用的墙钟时间;正式运行的资源用量照记。用户原话:"那要不就不测了?本来cpu就不重要,现在又可能测不准"。 - agents(任务书 07):只收拼好的提示词和第一条消息(读提示词归 materials),不碰账本;提交工具去掉 slot;保留参考项目两处有真实证据的提交特殊处理(非法 JSON 被截半、null 变 "null")和子会话加载核对;删 Jev 审命令、上下文估算、输出上限配置;预期 400–600 行。用户原话:"同意,写任务书 07 吧"。 - jev(任务书 08):方法里三处 Jev 判别共九问(判重 1、冻结条款 3、实现改动 5),比原方法多出的"条款太含糊""算指标方式与定义不符""比登记的停止条件更早结束"三问已补进方法.md;这次不校准:问法以参考项目为基础只改说法,阈值暂用参考项目的值并注明未校准;账本存下每次 Jev 判断(退回、收下、判重都存);Jev 模型名进 config;不做"永远判不同"的空实现。用户原话:"九个都问,并把多出的三个补进 docs/方法.md";后来改为不校准:"我们到时候应该是通过真实的运行收集一批真实的数据,然后由claude或者gpt亲自打标签作为集合……jev这次的验收应该也不以效果为主,因为还没有数据校准,prompt还是用原本的prompt作为基础就好"。 - materials 与 submissions 一起设计、分两份任务书(09 materials 先、10 submissions 后):materials 对每个任务产出"给模型看的材料 + 对号清单 + 能读的代码版本",整份存进"模型调用开始"记录,submissions 只拿清单对号;谁能看什么每种任务一个函数,不写通用判定;提示词以参考项目为底稿只做必要改动;materials 预期 1200–1800 行,submissions 500–800 行。用户原话:"我建议submissions和materials一起做你觉得可以吗?"、"可以"、"都同意"。 - 中断的模型调用,恢复时补写"出错、原因'进程中断'、墙钟时间测不到"(`callEnded` 的墙钟时间用 `Measured`)。用户原话:"墙钟时间改用 Measured,恢复时写出错加测不到(原因'进程中断')"。 - materials(任务书 09)开工前用户定的四件事(2026-10-03,用户选了推荐项):vocab 上限改 1150,只放对号清单 `Checklist`,任务材料其余类型放 materials;冻结协议、位置表、判重合并输出、决定种类和编号规则由 materials 定义并导出,flow 照着写,ledger 不改;实验员、核验员不给信念本,方法.md 4.3 ① 改为"研究者任务";合并而成的候选按原提案挑刺。 - 消融格核验不通过重做时,实验员从上一次交的这一格代码接着改,和正向修复一样(方法.md 4.3 ⑯)。用户选"接着改"。export 先不做,先收尾已完成模块,flow 由用户和监督者一点点过。用户原话:"export先不做,我们就先把已经完成了但是又有些问题的模块收尾一下,然后我会和你说如何开flow"。 - 核验不通过、修复次数用完时:正向候选不跑(不扣次数,记事件写明原因);消融格和正向一样可以退回实验员重做,次数用同一个修复上限,用完仍不通过这一格不跑、不扣次数、记"证据不足"(方法.md 4.3 ⑨ ⑯、6.6)。用户原话:"同意"。 - 冻结协议只放方法.md 4.3 ⑥ 列的几项(2026-10-03)。用户原话:"冻结协议只放方法.md 4.3 ⑥ 列的几项,FrozenProtocol 去掉 replies 和 replyBody;第二次预测要的"挑刺与答复"从这个候选已公开的回应或统一提交里读;submissions 交回的冻结协议主体也不带答复。" - 解释的 `cells` 只按完整流程全开实现,一律要求交(用户选"只按全开实现");做步骤开关时再补"关掉消融时不交"。 - 提案、回应、统一的已占用指标编号加 `answer-path`、`safeguard-triggers` 两个保留键(用户选"materials 补进清单")。 - Jev 退回的原因只列判"是"的几问,只用 jev 的英文问题名(用户选"只列判是的+只写英文")。 - flow 拆成四部分、各自验证;验证一律用真 Jev、真 Docker,同样的输入真实跑几次;模型一侧回放真实记录和真模型两种都做(2026-10-03,细节见结构.md 第三部分)。用户原话:"我建议用一律用真 Jev、真 Docker。因为其实我们现在是在做科学研究,不是在开发程序……我们只需要重复运行多次";对拆分:"你那几个拆分我基本认同";对两种都做:"同意"。 - flow 每部分的验收看研究质量,不只看跑通(2026-10-03)。第零轮问六问:入口里有没有关键想法、分到的入口分没分开、好方向分出去没有、是不是改代码的路线、有没有写答案、讨论有没有用;尺子是同类系统和参考项目高分运行的关键想法与死路清单(任务书 12 第五部分)。用户原话:"你要改掉你一直在做程序设计的逻辑。我们现在在做科研……我 care 的是……这个候选的方向是不是真的是正确的……那三个候选方向……是不是真的有分开……让 Jev 去判一下";只靠这部分答不了的问题不放进来:"有一部分是只有这份回答不了的那有啥好评判的"。 - 正式代码和检验代码完全分开:`src/` 正式、`tests/` 不花钱的测试、`eval/` 真实运行的检验(CLAUDE.md"测试")。用户原话:"需要把正式代码和测试代码完全分开……我们现在是有一大堆的测试代码是需要监控我们正式代码"。 - 基线每份研究都跑一次,不复用别的研究的结果;方法.md 第九部分"每个阶段结束时核对总账"删去,改为由记录方式保证(2026-10-03,监督者建议,用户说"基本可以,你可以写任务书了")。 - 提示词改一版(2026-10-03):例子一律换成和题目无关的领域;去掉参考项目填圆运行留下的具体做法;入口的起点分三类(基线代码、题目本身、做法类别),先列六到八个再挑;讨论加"按最后会做成哪类改动归类"一问;角色提示词改为"已知的方法可以用来提假设,只是不算证据"。用户原话:"我也同意改提示词,但是我觉得我们需要看一下那些参考项目的提示词咋写的……还有你可以找一些给pi写的skill写的比较好的那种也参考一下"、"我建议你调研完直接去改一版提示词吧,这样没有信息损失。改好后再写任务书让new session重新测"。 - 研究编号只许小写;配置里的路径必须是绝对路径;检验"分没分开"两个顺序都问取平均(2026-10-03,用户同意监督者建议)。 - 第零轮收尾(2026-10-03):提示词改后第 1 问 3/3 通过(上次 0/3),第 3 问 0/3。核对账本:6 次运行 18 人第一志愿从没撞过、人人把自己写的入口排第一,没人把联合优化排第一(v2-1 作者自己排第 3),所以分配规则不起作用,原待定的"改分配规则"撤掉。第零轮不再调;六问照旧每次记录、不再卡进度;"好方向有没有被做出来"改到部分 2 验收:第 1 轮提案里有没有联合优化、入选没有。依据:入口不约束提案(16-real-1 研究者 2 分到读评测的入口,第 1 轮提 SLSQP 被采纳)。用户原话:"同意,记下来然后讲部分 2"。 - flow 第 2 部分(2026-10-03):选批并进第 2 部分;不回放 16-real-1;验收看整体研究质量(方向、多样性与判重、提案、挑刺、回应、预测、选批,加过程数字),不只看某一个想法;这一段的提示词先按调研结论诊断再改,改完提交后才跑,看到结果不再调;三块合成一份任务书。用户原话:"直接看也没有联合优化是狭隘的,我们其实是要从更广阔的领域去分析整一个系统,它有没有正常高质量的运行"、"选批并进部分 2;不回放"、"这个部分现有的 prompt 一定是有问题的"、"同意,合成一份,写任务书 14 吧"。 - 第 1 轮方向分析与提示词第二次改(2026-10-03):监督者按路线(不按单个想法)读了 6 次运行,能走到最好的那类解法 6/6 次都有人想到,但常被写成备选或"做法类别"之一;18/18 人第一个入口从读基线半径函数出发、按代码工序分工;压低它的理由是"求确定、好归因、怕白跑",不是技术理由。用户定两处改法,由监督者直接改提示词(ff5c8dd),再写任务书 15 让新会话重跑对照:①正向只管冲分、消融负责解释、估分照实;②先不看代码自己解题,再拆基线工序,两边对照。用户原话:"正向实验,就是为了去追求最高的分……你这样实验你可以去冲。然后后面的反向实验有人给你兜底";"先让他脱离代码……假设自己没有代码的情况之下……列出解法……在思考输出之中把这个解法列一下就好了……然后第二,他需要对现在的解法进行拆解……进行一个综合的分析";"提示词你直接改,改后后还是写一个任务书让新会话执行"。flow 第 3 部分顺延为任务书 16。 - flow 第 3 部分(2026-10-04):⑨–⑫ 照方法实现,写完采纳停下;验收看五样研究质量(实现照协议没有、核验员判得对不对、押注和实测对比、分数和参考项目第 1 轮对比、程序账目),不设硬线;实验员、核验员这一段的提示词先诊断再改,改完提交后才跑、看到结果不再调。用户原话:"我基本认同,唯一我觉得需要补充的就是 prom 需要修改……这次那几位的 prompt 也同样需要修改"。因为提示词要改,任务书 15 的三份研究恢复时会被提示词哈希核对挡下,改为从头新跑 3 份(监督者定,顺带重复一次任务书 15 的路线对照)。监督者另定:一批里的正式运行一个接一个跑、检验时不和别的研究同时跑(候选多半按秒数停,抢 CPU 会改分数);轻量检查次数按每次调用计、不进账本;修复阶段按"第几次"编号。 - flow 第 4 部分(2026-10-04,任务书 17):先写任务书 17 交新会话执行,同时监督者离线做 Jev 比上限的检验。这一段的提示词(解释、收尾、消融实现、消融核验)同样先诊断再改,改完提交后才跑、看到结果不再调;研究者角色提示词不动。收尾的"下一步"由"在哪个因子上继续"改为"沿某个因子继续,或换一条更可能拿最高分的路线"(方法.md 4.3 ⑱)。验收从头真实跑 3 份完整研究到余额用完,不回放 16-real-1;3 份同时跑,一份研究内的正式运行仍一个接一个跑,用每次运行的 CPU 时间与墙钟时间之比核对没有互相抢。用户原话:"我建议先写任务书 17(消融到收尾),然后让一个flow完成任务17,同时我们可以用这 6 个实测分数加上参考项目的账本,离线检验"、"我感觉改提示词真的很重要"、"我基本同意,唯一的问题是3份不能并行跑吗?"。 - 诊断(2026-10-05,任务书 18):信息与反向实验两个核心不变,改对准的东西。每轮提案之前,研究者写几种"为什么卡在这里"的诊断解释和诊断实验(在当前基线上只动一处:加强、换掉、拿掉、放宽),按自己的解释对每个实验押三个数;程序用信息价值减成本定做不做、做哪几个(方向收益直接用"做了比现在高多少");选中的实验打包成一次正式运行、扣 1 次;结果确认或否定各条解释,放进本轮提案材料。诊断实验的答案不采纳为基线(它是在已有答案上接着算的),方向要写成提案经正向拿分。消融默认关、保留开关,关掉时解释阶段也不做;B、D 就是"无诊断、开消融"的对照。不加"停滞时强制换路"之类的规则。监督者先提过"体检 + 停滞强制换路 + 统一比值不值得测",用户否掉。用户原话:"我们应保持反向实验和信息这两个核心点不变……需要打开思路,思考为什么人类研究者能够顺利完成,而我们套用时出现问题。我觉得你的方案仍然受限,例如强制换一条路径,这种做法显得奇怪"、"认可这个方向,也认可'每轮把几个诊断实验打包成一次正式运行,照样扣 1次,不开免费的口子'"、"同意默认关闭消融。反向实验这个核心由诊断承担"。"诊断结果只当信息、不直接采纳"由监督者解释理由后,用户没有异议。方法.md 直接改写,不写讨论过程(用户原话:"我们写的不是讨论稿")。 ## 未完成 - 用 Jev 代替研究者押注(用户提,2026-10-03 定这次先不做):做成开关、可当论文消融。设想只换选批用的那份押注,研究者照旧押、照旧记战绩,两边可比;Jev 一次只给是非概率,三个数要靠问一串"会不会超过某分"反推。先离线检验:参考项目 8 个验收账本里的真实候选、研究者押注和实测分数,比谁排得准。任务书 15 的结果若显示"提案变激进了、但押注仍压低激进路线、选批不选",就是做它的直接理由。任务书 15 后补(2026-10-04,用户提"让 Jev 只看题目和方案、两两比较谁的上限高,再和研究者押注加权"):监督者判断先不进 flow。理由:c2 那次 Jev 的"能到最好"对三条完整路线给 0.61/0.69/0.53,并不把联合优化排第一;研究者是否押错要等实跑分数;加权的权重没有数据。做法:任务书 16 跑出实测后,连同参考项目 8 个账本,离线检验"只给题目和两条方案、两个顺序各问一次取平均"的上限比较,和研究者押注、实测三方对照;Jev 确实更准,再做成开关,形式倾向"每批留一个名额给 Jev 判上限最高的候选",不做加权。用户回复"行,那先做任务书 16"。 - B、D 两份完整研究的分析(2026-10-05,监督者派 4 个独立子 Agent,关键数字已核):①D 没到最好:第 0 轮讨论把"圆心和半径一起交给求解器"判为"不值得占名额"(D 账本 seq 77,理由是黑盒搜索更适合分段线性的 LP 值),15 份冻结协议都没做它;第 1 轮定下"只挪圆心、半径用 LP 现算"的引擎后,后几轮只改起点库。监督者复跑:对 D 第 3 轮最好的解只做一次 0.04 秒的联合局部求解就从 2.6051 到 2.6191;从基线三环出发做一次也到 2.546,接近 D 第 1 轮 110 秒的成绩。B 第 1 轮就采纳了联合求解加多起点。②信息与消融在 B、D 里都没有改变分数走向:各轮三个候选的合并中位数只差 0.001–0.03,押注分不出好坏,选批近似随机;选格多数格净值为负被跳过(B 测 2/9、D 测 3/8),D 第 1 轮"大家一致"的那格事后看是一致地错了;测了的格,B 第 1 轮测到退化起点的假象(研究者自己读对),B 第 3 轮确认已饱和,D 第 3 轮的结论把第 4、5 轮引向扩起点库,两轮都没采纳。推动进步的是正向运行里登记的拆账指标和研究者读代码、读解;收尾原文接力这条渠道有效。同一份代码重跑的波动从没测过,D 第 3–5 轮 0.003 量级的差别可能在噪声里。③Jev 两两比较(31 对,3 对平手):总体不比合并中位数准(上限一问 14/28,合并 q5 14/21);只在看完结果后切出的"新项目第 1 轮、分差>0.01"7 对里全对(q5 3/7),是待复核的线索;"一次运行谁高"一问对调顺序一半以上会翻转。结果在 `/home/iomgaa/inforsi-eval/2026-10-05-jev-ceiling/`。暂不做 Jev 开关。只有 2 份完整研究,以上都不能当方法结论。 - 文献精读(2026-10-05,用户提"信息与反向实验理论上说得通,问题可能在落地或少了 trick"):6 个子 Agent 读了约 50 篇,原文在 `reference-paper/`(不进仓库)。监督者抽查过 AdaEvolve 表 4、FermiEval、Ng 第 44 章原文。要点:①文献里大模型口头区间严重过窄(FermiEval 名义 99% 只覆盖 65%;9 个新模型 95% 区间覆盖 9–44%),同厂商模型错得一样(两模型都错时 60% 选同一错答),现成模型判断"哪个研究想法更好"接近随机(Wen 2025,微调后才 77%);文献做法是用历史结果做保形外扩、给不同研究者不同信息、程序直接平均。监督者拿 B、D 等 35 次正向运行核对(检测 1):实测落在合并范围一成到九成之外 8/35(理想 20%),合并范围基本准、略偏保守;单个研究者的范围过窄(41/105 落在外面)。所以问题在分不出好坏(候选之间差得太少),不在范围不准,不需要打折放宽。同一份代码重跑的波动(检测 2)不测,用户原话:"我百分之百保证这个不会有多大偏差。而且如果要去度量这个偏差,我们后面耗费的资源太大了"。②只看一步、只看单格的信息价值天然会算出 0(信息价值不是边际递减),保证都要求噪声已知;对策是成组估价、保留随机探索、先测噪声。③消融在文献里是解释和发表的工具(Lipton、Fawcett、AI Scientist v2 都把它放最后、不回流);人决定下一步靠采纳前的区分实验和"上限/瓶颈诊断"(Ng 第 44–45、53–57 章"优化验证测试"),D 缺的正是这一步。POPPER 是唯一让检验结果改变下一步并有部件消融的:去推翻当前主张的推论,用 e 值序贯停。④单线必锁:FunSearch 单岛 0/5;OpenEvolve 填圆卡 2.377 靠人工写"换根本不同的方法"才突破;AdaEvolve 填圆卡 2.5414,停滞时触发"元指导"注入联合连续优化后到 2.6095,去掉元指导 3 次平均 2.5213 对完整 2.6294。跨代传总结/教训的证据都弱。结论:方向(事前预测、用实验排除)站得住,落地时信息和反向实验对准的东西不对:押分押的是几个相近候选的分数,消融拆的是过去改动的功劳;人类研究者押的是"卡在哪"的几种解释,反向实验是在当前程序上加强或拿掉一步看空间在哪。据此定了诊断(见"关键决定"2026-10-05 诊断一条、任务书 18)。 - 第零轮之后再看(2026-10-03 定,等部分 2 的数据):②第一条消息里没有题目本身,要模型自己查 TASK.md,是否由程序放在最前面;③三位研究者拿到完全一样的提示,是否给每人分一个不同的看题路径;④研究者角色提示词每个任务都发全文,是否按任务只发用得到的几节。现状(任务书 14):角色提示词已瘦身到 4386 字,但仍每个任务整份发。 - 信念本"按因子归并"(方法.md 6.10 第 1 条"出现在哪些候选里"):现在是每个候选的每个因子一行,用"(延续 X)"连起来,没合成一行。等真实运行后再看要不要合。 - GLM 内容审核误拦(2026-10-05,监督者查明):full17-e 第 1 轮回应阶段 researcher-2 的同一份材料两次被模型服务以"可能包含不安全或敏感内容"(400)拒收,研究停下。逐段二分复现:拦截只在 glm-5.3、glm-5.3-flash 上发生,deepseek-v4-flash 放行同一份文字;触发点是研究者自己笔记里的一句"非真六角点阵、四处未定死",把"四处"或"定死"换掉一个词就放行,单独发这一行也放行,像是 GLM 服务方的审核把附近的"六……四……死"连读成敏感日期。全部检验账本里只出现这 1 次。同一份材料重派必然再拦,重试无用。暂不为它改程序或改写模型文字;再出现时,再和用户定研究者是否换不带这种审核的模型。复现脚本在监督者会话的临时目录,结论以本条为准。 - Jev 校准:新项目跑出真实研究后,从账本取真实的 Jev 判断和材料,由 Claude 或 GPT 打标签作为校准集和留出集,重新校准九问的问法和阈值。不用参考项目 8 个验收数据库(材料格式还会变)。 - `inbox/调研.md`:要迁进 `docs/调研/` 的调研结论。 - `docs/方法.md` 里还有 7 条标〔自定〕的规则,待用户过目。 - 写 plugin 时实测:源码导入路径带 `.ts` 扩展名,Pi 加载插件能否接受。 - 给以后换任务镜像:镜像里必须有 `setpriv`(runner 用它把命令降到当前用户);容器里不要用 `python -I`,它会忽略 `PYTHON_CPU_COUNT`。 ## 工作方式(用户 2026-10-01 定) 每个模块分三步: 1. 参考项目的会话(监督者)先把这个模块讲给用户:放哪些东西、对外提供哪些函数、预期多少行、参考项目里对应的代码哪些保留哪些删掉。用户和监督者一起确定。 2. 监督者把确定的内容写成一份任务书,放在 `任务书/` 下,一个模块一份。 3. 用户在 InfoRSI 目录里另开一个新的 Agent 执行任务书;监督者只监督、核对,不直接写代码。 这样做有两个目的:一是检验 CLAUDE.md 和 docs 里的规则对一个全新的 Agent 是否真的起作用;二是让监督者和执行者的思路保持独立,方便发现跑偏。 ## 下一步 任务书 18(诊断)已写好,交新会话执行;执行前 materials、vocab 的新行数上限要用户定。之后是 export、plugin。vocab 1154 行超上限 4 条(pi-lens 拆行),待用户定放宽还是精简说明。