Files
InfoRSI/WORK_LOG.md
T
2026-10-04 01:59:26 -04:00

107 lines
33 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 工作记录
只记当前状态。一个阶段完成后压缩成几行,细节看提交说明。
## 当前目标
搭好项目框架: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 地板,押注阶段仍在"求确定"。
## 关键决定(用户原话见各提交说明)
- 项目改名 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。
## 未完成
- 用 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"。
- 第零轮之后再看(2026-10-03 定,等部分 2 的数据):②第一条消息里没有题目本身,要模型自己查 TASK.md,是否由程序放在最前面;③三位研究者拿到完全一样的提示,是否给每人分一个不同的看题路径;④研究者角色提示词每个任务都发全文,是否按任务只发用得到的几节。现状(任务书 14):角色提示词已瘦身到 4386 字,但仍每个任务整份发。
- 信念本"按因子归并"(方法.md 6.10 第 1 条"出现在哪些候选里"):现在是每个候选的每个因子一行,用"(延续 X)"连起来,没合成一行。等真实运行后再看要不要合。
- Jev 校准:新项目跑出真实研究后,从账本取真实的 Jev 判断和材料,由 Claude 或 GPT 打标签作为校准集和留出集,重新校准九问的问法和阈值。不用参考项目 8 个验收数据库(材料格式还会变)。
- `inbox/调研.md`:要迁进 `docs/调研/` 的调研结论。
- `docs/方法.md` 里还有 7 条标〔自定〕的规则,待用户过目。
- 给 flow:选格用随机规则时,种子用版本 2 算(选批已用版本 1,任务书 14),否则两次抽取用同一串随机数。
- 给 flow:步骤清单没有单列"轮末动作"(解封作者自评、入选未跑的候选出池),flow 要做这些。
- 写 plugin 时实测:源码导入路径带 `.ts` 扩展名,Pi 加载插件能否接受。
- 给 flow(materials 审阅):解封只在本轮收尾阶段关闭后写。materials 把这条记录的出现当作"已公开",提前写会泄露(审阅者在临时账本里实测过)。
- 给 flow:没采纳时也写一条采纳决定(adopted 为 null),本轮正向运行靠它公开;修复任务要在核验阶段关闭后再发。
- 给 flow:消融格核验不通过、修复次数用完时写 `cellNotRunEvent(格, 原因)` 事件,结算记 insufficient。flow 重做时,把上一次这一格的提交取出来当工作目录(materials 的消融实现材料就是这样写的)。
- 给 flow:修复的差异块按本批基线算(任务书 10 第二部分第 2 步),切好交给 submissions。
- 给 flow:消融实现交了 `cannotRun` 时 `known.code` 传 null,否则传存版本的结果。
- 给 flow:问 Jev 查代码改动时,冻结协议里引用的指标要换成原登记的定义(materials 的实验员材料里已有这一步,写 flow 时把它导出共用,不另写一份)。
- 给以后换任务镜像:镜像里必须有 `setpriv`(runner 用它把命令降到当前用户);容器里不要用 `python -I`,它会忽略 `PYTHON_CPU_COUNT`。
## 工作方式(用户 2026-10-01 定)
每个模块分三步:
1. 参考项目的会话(监督者)先把这个模块讲给用户:放哪些东西、对外提供哪些函数、预期多少行、参考项目里对应的代码哪些保留哪些删掉。用户和监督者一起确定。
2. 监督者把确定的内容写成一份任务书,放在 `任务书/` 下,一个模块一份。
3. 用户在 InfoRSI 目录里另开一个新的 Agent 执行任务书;监督者只监督、核对,不直接写代码。
这样做有两个目的:一是检验 CLAUDE.md 和 docs 里的规则对一个全新的 Agent 是否真的起作用;二是让监督者和执行者的思路保持独立,方便发现跑偏。
## 下一步
任务书 15 的运行、对照分析、思考核查与测试已完成,独立复审未发现阻塞问题,报告在 `/home/iomgaa/inforsi-eval/2026-10-04-route-compare/report.txt`。质量不设通过线,提示词效果交用户判断,不因结果继续调提示词或重跑。下一步由监督者与用户确定 flow 第 3 部分(任务书 16)。