跳到主要内容

从零到一:7 天 RSI 学习路径

七天实战

每日课纲、测验和实验室:7 天学会 RSI。本文把七天收成可检查的产出,不代替子站上的交互练习。

七天结束时,你应有一份能复算的实验包:策略文件、评分器版本、回归基线、至少一次拒绝和一次接受的 trace.jsonl。没有拒绝记录,说明门禁没工作。

天主题必须留下的产出
1范式与边界一张五步图,一份白名单/黑名单
2评估器规则 R1–R6 与评分器版本号
3反思与教训库带编号的教训,以及一条被拒绝的无证据反思
4策略补丁只改 constraints 的 diff
5多角色或小种群调用次数对齐的对照笔记
6防退化回归失败时丢弃补丁的日志
7复盘可复现实验包和毕业任务说明

Day 1:范式​

阅读 入门介绍。在纸上画出执行、评估、反思、改进、再执行,并标出哪一步允许模型自由发挥(只有执行和有证据的反思草稿),哪一步必须是代码(评估、白名单、门禁、停止)。

白名单写三条,黑名单写三条。黑名单至少包括:安全段、回归集文件、评分器源码。用子站 Day 1 的写作循环做一次手工三轮,每轮用同一张 10 分量表。量表在三轮之间不许改。记录每轮分数和你改了提示词的哪一句。

晚间检查:你能否指出哪一轮只是换了说法、失败点没变。指不出,就还没把「失败」定义成可观察项。

Day 2:评估器​

按 快速开始 实现 R1–R5。再加上 R6:规格里的数字必须原样出现。把版本号写成 rules-r1r6-v1。准备三道回归题,冻结 baseline.json。

做校准小实验:混入两份你认为很差的草稿。若评分器给它们 8 分以上,规则太松,先改规则再谈改进。此日不要优化提示词。评估器不稳定时优化策略,得到的是噪声。

可选:写一个评审器 JSON。引用不是草稿子串就丢弃。规则失败时评审器不得把分数改成满分。

Day 3:反思​

实现「失败编号 → 一句动作」的目录。模型生成的反思若包含目录外编号,整条教训 grounded=false,改进器必须返回空。

用三道小题连续做。第 3 题开始前检索教训。写下第 3 题是否避开了前两题的编号。若没有避开,检查检索键是不是整段闲聊而不是编号。

故意注入一条错误教训(把断言失败归因到「应该删除测试」)。确认这条教训不会进入白名单补丁。把它归档,并在笔记里写明归档条件:建议触及黑名单。

Day 4:只改一处​

改进器只允许改 constraints。跑两轮。第一轮即使分数上升,只要回归出现新失败就拒绝,并保留 policy.prev.json。第二轮在失败集成为真子集且回归通过时接受,本地 git 提交信息写失败编号。

对照实验 B:关掉回归,只看当前题。记录 B 接受了哪些 A 拒绝的补丁。这是 Day 6 的预演,今天就要看到至少一条分歧。

不要同时改温度。温度不是白名单里的策略字段。

Day 5:互评或小种群​

选一条轨道。

互评:作家、编辑、读者三套提示词,同一个规则评估器。读者只产失败证据,编辑只产补丁建议,作家只产草稿。预算按调用次数与「单角色自省」对齐。次数更多而失败集相同,判定互评更差。

种群:最多 4 个个体,每个相对父代只变异 constraints 里的一句。安全段从冻结文件复制。未过回归的个体不能当冠军。

写出半页对照:失败集合、调用次数、是否过拟合到当前题。不写「协作更智能」这类句子。

Day 6:综合与防退化​

把调度器按 开发指南 收拢:预算、平台期、安全停止。平台期定义为失败集合连续两轮不变。

从最近接受的补丁里抽一份,回答三个是否:规格数字还在吗,失败集是否缩小,回归题有没有被抄进提示词。有一个否,就回退并补规则。

选择一条实战轨道收尾:写作说明、带测试的小函数、或数据分析检查清单。轨道必须能用规则判断成败。不能用规则判断的任务,不作为毕业任务。

Day 7:复盘与边界​

阅读 开源对照 和 最佳实践。用模板记一个外部项目:评估器、改进对象、有没有回退、搜索集和报告集是否分开。

整理实验包:

  • rsi.config.json(白名单、轮数、温度)
  • rules 与版本号
  • baseline.json
  • trace.jsonl(含一次 accepted: false)
  • 最后一次抽检的三个是否

毕业说明用十行写完:任务规格、评分器版本、最后策略相对初版的 diff 摘要、回归结果、你拒绝自动化的一件事(例如改测试或改权限)。十行写不满,说明日志不够。

子站若提供完成标记,以实验包为准,不以徽章为准。

每天时间怎么切​

子站把每天分成理论、进阶和实战。本地建议同一结构:上午读文档并写定义,下午改代码并跑规则,晚上留下日志和一句「今天哪条门禁真的拒绝过」。晚上没有拒绝,第二天先修门禁,不要加新功能。

卡住时的顺序:先看失败编号是否稳定,再看补丁键是否越界,最后才怀疑模型能力。多数「模型不会改」其实是评估器没有把错误说成编号。

完成线​

  • 能口头讲清五步顺序,并解释为什么不能先改进再评估。
  • 实验包可在另一台机器上只跑评分器、复算分数。
  • 至少一条补丁因回归被拒绝,一条因失败集缩小被接受。
  • 安全段哈希在整个七天不变。
  • 毕业说明没有「大幅提升」这类不能复算的话。

未达到时,不要加种群和多 Agent。回到 Day 2 把规则收紧。七天的目标是可控的改进循环,不是更长的演示文稿。

相关文档:FAQ · 开发指南 · 子站

每天晚上的固定记录格式​

不要另起一套表格。每天只追加下面这一行到 trace 旁边的 journal.md,字段名保持不变,方便第七天打包。

day=N scorer=rules-r1r6-v1 accepted=0|1 failures=R? regression_new=0|1 safety_hash_changed=0|1 note=一句话

note 只允许描述证据,例如「回归题 export-csv 新增 R2」。不允许写「感觉更好」。七行 journal 加 trace.jsonl 就是毕业包的索引。缺一天的 accepted=0 记录,就在第八天补一次故意越界补丁,确认门禁仍会拒绝,而不是回头修改历史日志。

Day 1 晚上可以交的循环图​

图上五个节点用动词命名,不要用「处理」「优化」这种不能观察的词。边上写输入输出的文件名:执行读 policy.json,评估写 failures,反思写 lesson.json,改进写 policy.next.json,门禁决定是否用 next 覆盖 policy。若图上出现从改进直接指向评分器源码的边,把这条边划掉,并在黑名单里加一行。子站测验若问五步顺序,以这条边的方向核对,不要背选项文字。

Day 2 的校准数字怎么读​

十份草稿里四份是你手工做差的。记录差样本的分数中位数。中位数大于等于 6,说明规则没有抓住「差」。常见漏网是只检查关键字「边界」是否出现,于是模型写「边界情况等等」也能得分。把 R4 收紧为必须包含「不得」加一个具体宾语,例如「不得关闭审计日志」。收紧后升版本号,上午的分数全部作废,下午用新版本重跑基线。不要把新旧版本的平均分写进笔记。

Day 3 的检索命中要能指认​

第 3 题开始前,打印检索到的教训编号。若打印为空,先不要怪模型,检查第 1 题的 cites 是否写入。若打印了编号但第 3 题仍犯同样错误,把教训正文读出来:动作是否具体到字段。把「写清楚输入」改成「输入段列出 user_id 与 code」。改教训正文不算改策略,但要在 journal 里写 note=lesson_rewritten。一天之内重写教训超过两次,说明目录本身不稳定,停止加题。

Day 4 的 diff 只看三行​

git diff 里应该只看到 constraints 的增加。出现 safety、baseline、rules 任一文件,提交前重置。提交信息使用失败编号,例如 accept R6 keep digits。拒绝的补丁不要提交到策略文件,可以提交到 rejected/ 目录并在文件头写回归题 id。这样第七天能拿出「被拒绝的 diff」,而不是只记得自己曾经拒绝过。

Day 5 的对照表​

系统调用次数最终失败集回归新增结论
单角色4空或具体编号0 或 1基线
三角色4同左同左只有更小失败集才算更好
种群 44同左必须为 0 才保留冠军否则整代过拟合

调用次数用日志里的执行器次数,不把你自己读文档的时间算进去。三角色若实际调用了 12 次,把单角色也跑到 12 次再比,或者把三角色预算砍到 4 次。不对齐就不填结论列。

Day 6 三个是否题的填写例子​

题目是重置密码说明。抽到的补丁哈希记在 journal。三个回答必须引用轨迹里的子串或规则编号。

  • 数字还在:输出含「6 位」「15 分钟」「5 次」,回答「是」。
  • 失败集缩小:从 R6 变为空,回答「是」。
  • 回归题漏进提示词:在 constraints 里搜回归题的订单号或 CSV 列名,搜到则回答「否」,并回退。

三个回答都是「是」才能把该哈希写成当前默认策略。有一个「否」就回到该补丁之前的 policy.prev.json。

Day 7 毕业说明的十行草稿​

  1. 任务:重置密码函数说明。
  2. 规格义务:三个数字与审计日志不可关。
  3. 评分器:rules-r1r6-v1。
  4. 初版失败:R3 R4 R6。
  5. 终版失败:空。
  6. 回归:三题无新增失败。
  7. 接受的 diff:constraints 增加两句。
  8. 拒绝的 diff:试图删除审计日志句子,安全停止。
  9. 不自动化的事:不改测试、不改权限。
  10. 抽检:三个是否均为是,抽检人与日期。

十行都能量到文件,实验才算结束。子站徽章可以之后再点。把实验包路径写进个人笔记,并在主站文档的 更新日志 之外保留你自己的副本。主站更新日志记录的是课程上线,不代替你的实验哈希。

如果某一天超时​

超时的处理是删范围,不是熬夜加种群。Day 5 整段可以推迟到七天之后。Day 2 的规则和 Day 4 的拒绝日志不能省。没有这两样,后面的互评没有可比较的对象。推迟的内容写进 journal 的 note,不要假装做完。

毕业实验的最小题目库​

下面三题只作回归,不要拿来写「优化成功」的故事。优化故事只用第四题。

  1. 导出最近 7 天订单为 CSV,列至少包含 id 与 date。
  2. 按订单号查询状态,输入字段必须写明 order_id。
  3. 已登录用户重置密码,保留验证码 6 位、锁定 15 分钟、每日 5 次。
  4. (优化题)把一段不含数字的产品口号改成开发者说明,规格另给三个必须保留的数字。

第 4 题的数字不要与第 3 题相同,否则策略会背诵 6、15、5。第 4 题失败集缩小且 1–3 题失败集不变,才可以在毕业说明里写终版失败为空。

和子站测验的对齐方式​

子站每天有选择题。错题不要只看解析就点下一题。把错题翻译成你脚本里的一个断言。例如题目考「自评不能当门禁」,你就在代码里确认 score 字段没有读取自评 JSON。翻译不了的错题,回到 FAQ 用自己的话写三行,放进实验包的 misconceptions.md。这个文件也算产出,它证明你知道自己容易混哪一条。

七天之后的唯一延伸​

七天结束后只允许做一个延伸:把规则从说明文换成一个真实的小函数测试,改进对象仍是一个函数或一段 constraints,不是整个仓库。延伸仍使用同一调度器和同一日志字段。若你发现必须改日志格式才能做延伸,说明延伸太大,缩回去。开源对照留在阅读,不在七天之内接进调度器。

脚本验收嵌进七天​

Day 2 结束的标志不是分数变高,而是 rule_r6 的两个反例测试通过,且 scorer_version 已写入日志。Day 4 结束的标志是安全段被改时补丁函数返回空,并且 trace 里能找到一行 accepted 为假。Day 6 结束的标志是 should_stop 在失败编号发生替换时不报平台期,同时 check_trace 能抓住「回归失败却接受」。Day 7 把这三条命令的退出码写进毕业说明,而不是只交一篇体会。

子站测验全部通过但本地测试失败时,以本地测试为准,回到对应的一天。不要用测验分数代替退出码。