PROGRESS_DISCIPLINE_DESIGN.md 3.9 KB

PROGRESS.md 纪律:平台级开关设计

状态:设计 → 实现 日期:2026-06-16

目标

把目前写死在 workspace.assistant 的"磁盘进度纪律"(建/读/逐项打勾 PROGRESS.md、不重做、 不做完不收尾)提炼成 react 配置开关 react.progressDiscipline,默认 off,可给任意 "多步 + 产文件"的 react 智能体开启。解决"上下文截断 → 失忆 → 工具调用乱跳/重做"。

机制(一处实现,全局可用)

  • compiler _compile_react:读 react.progressDiscipline;为 true 时把共享纪律文案 _PROGRESS_DISCIPLINE_FRAGMENT 追加到 systemPrompt(紧跟现有 tool_docs 注入之后, line ~721)。
  • 文案通用化:用"你的工作目录"而非"工作文件夹 F",适配 reviewer/grader 等 (它们把 PROGRESS.md 写进各自 run 工作区,WriteFile 相对路径按会话 CWD 解析)。
  • 默认 off → 现有 agent 行为零变化,只对显式 progressDiscipline: true 注入。

天然安全边界

  • simple 子智能体走 _compile_lam、不走 _compile_react → 这开关对它们天然无效, 不会误注入到 multi-reviewer 的 4 个 simple 子审稿(单发、空上下文,本就不该有)。
  • Q&A/单发 react agent 不开这开关即不受影响。

适用判据

开(多步 + 真写文件 + 单 agent 自己干):reviewer、grader、exam-builder、paper-polisher、 rebuttal、thesis-advisor、grant-planner、literature-mapper、course-designer、academic-letters、 以及用户的研究型自建 agent(physics67/research67/lambda 等)。

不开:纯 Q&A、纯 orchestrator(靠 call_* 派活,该用 enforceLoop)、simple 子智能体(天然排除)。

multi-reviewer orchestrator 介于两者间:它本身做多步综合+写报告,开 PROGRESS 与 enforceLoop 不冲突(一个管"别乱跳",一个管"必须调够子智能体")。默认给它开。

落地范围

  1. 机制:compiler 开关 + _PROGRESS_DISCIPLINE_FRAGMENT 常量 + 单测。
  2. 第一方源 yml:给上述 11 个 react 包的 yml 加 react.progressDiscipline: true (对"下次安装"默认带上)。
  3. 已安装实例(DB,立即生效需 bump):
    • 第一方模板实例:作业批改助手(grader)、试卷题库助手(exam-builder)、多视角审稿(multi-reviewer)、 顶刊审稿助手67 + 测试(top-journal-reviewer ×2) → 直插 agent_versions bump。
    • 用户研究型自建:physics67(v8)、research67(active) → 同样 bump(明显多步产文件、最受益)。
    • workspace.assistant(v5)已内联纪律 → yml 迁到开关、DB 暂不动(行为相同,避免无谓 bump)。
    • 其余零散自建副本(lambda 副本、data67 等) → 不动,避免噪音;用户需要可单独说。

文案(共享 fragment,通用版)

## 进度纪律(多步任务必须维护 PROGRESS.md,防"乱跳/重做/忘记")
你的对话上下文会被裁剪、容易忘掉前面做过什么;工作目录里的 `PROGRESS.md` 在磁盘上
不会丢,是你唯一可靠的"记忆"。对需要多步的任务:
1. 第一步:在工作目录建立或读取 `PROGRESS.md`——拆成有序待办 `- [ ] 描述`;已存在就先读、
   承接未完成项,不要从头重来。
2. 每一步开始前,先 ReadFile `PROGRESS.md` 确认该做哪一项、哪些已 `[x]`。
3. 完成一项立刻 EditFile 打勾 `- [x]`,并追加结果/产物路径。
4. 铁律:不重做已 `[x]` 的项;不重复整篇读没变过的文件——回顾就读 PROGRESS.md。
5. 只有 PROGRESS.md 全部 `[x]`、产物真的落盘,才 terminate。

测试

  • TestProgressDisciplineprogressDiscipline: true 的 react cfg 编译后 systemPrompt 含 "PROGRESS.md";默认/false 不含;simple agent 即便误设也不注入(走不到 _compile_react)。

发布

机制 + 配置改动 → 跑回归 → v1.4.1(patch,纯增量、默认 off、无破坏)。