dsh-vibe-math 2.2.0 → 2.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,22 +4,27 @@
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
5
5
  [![GitHub stars](https://img.shields.io/github/stars/ChongCyrus/Vibe-Mathematics)](https://github.com/ChongCyrus/Vibe-Mathematics)
6
6
 
7
- > 运行在 **DeepSeek Harness** 内的一组 **agent preset**(`vibe-math-v2` / `vibe-math-v3` / `vibe-math-v4`),
8
- > 用多代理协作自动求解数学问题并对结论做多代理交叉验证。三个预设共享「**断点续跑**、
9
- > **中途人工干预**、**进度汇报**、**自然语言驱动**」底座能力,但采用三代不同的求解架构:
10
- > **💡 `vibe-math-v2` 与 `vibe-math-v3` 同级主推**——两者都是成熟可用、正在维护的主推架构,根据你的实际需求自行选择(详见下方「怎么选」);`vibe-math-v4` 是最新的「常驻自组织合作研究」架构(实验性)。
7
+ > 运行在 **DeepSeek Harness** 内的一组 **agent preset**(`vibe-math-v2` / `vibe-math-v3` / `vibe-math-v4` / `vibe-math-v5`),
8
+ > 用多代理协作自动求解数学问题并对结论做多代理交叉验证。四个预设共享「**断点续跑**、
9
+ > **中途人工干预**、**进度汇报**、**自然语言驱动**」底座能力,但采用四代不同的求解架构:
10
+ > **💡 `vibe-math-v2` 与 `vibe-math-v3` 同级主推**——两者都是成熟可用、正在维护的主推架构,根据你的实际需求自行选择(详见下方「怎么选」);`vibe-math-v4` 是「常驻自组织合作研究」架构,`vibe-math-v5` 是最新的「研究所体系」(两者均为实验性)。
11
11
  >
12
12
  > - **`vibe-math-v2`(概率驱动 · JSON 数据层)✅ 主推**:`qs.json` 问题清单 + `Propos/` 命题库 + 概率驱动调度 + 代码启发式调度;
13
13
  > - **`vibe-math-v3`(第三代 · 论文式 md + 规划代理 + 方法库)✅ 主推**:全部知识以 **Markdown 论文/研究报告式** 存储与续写(`Problems/` 问题清单+依赖+来源动机、`Progress/` 研究日志、`Propos/` 命题库、`Methods/` 通用理论发明库、`Verified/` 绝对可信);调度前由**规划代理**自主制定接下来 N 步计划;解决过程中发明的理论/框架/工具/方法/思想由 **Method Keeper** 沉淀为可复用方法体系(如发明群论、泛函分析那样)。
14
14
  > - **`vibe-math-v4`(第四代 · 常驻自组织合作研究)🧪 实验性**:一组**持久化常驻子代理**互相**留言 + 开会**,自主决定一切任务安排(无中央调度);各自沉淀进度/命题/方法/子问题库并互相查阅;验证**仅当全体常驻一致(真 或 假)**才写入 `Verified/`,否则留库附概率;上下文达阈值自动 `/compact`;仅当全体一致认为原问题已解决才停止。
15
+ > - **`vibe-math-v5`(第五代 · 研究所体系)🧪 实验性 · 最新**:把常驻升级为一座**研究所**——**院士**(领头人 / 组织与协调中心,负责拆解与**分派**、定优先级、主持会议、督导进度)+ **常驻研究员**(有表决权,可自主雇佣/解雇自己的临时工)+ **临时工**(无表决权);有**公共规章**、**群聊与会议**、**compare-and-set 任务板**、**真实解雇**;**≥ m 票布尔一致**才写入 `Verified/`(反向票阻塞、弃权不计票、未达门槛留库附平均概率);状态存于**会话日志的 host-only 投影单元**,零 token 成本。
15
16
 
16
- 安装本插件包(或手动复制预设)后,DSH 的预设选择器里会出现**三个** agent preset。
17
+ 安装本插件包(或手动复制预设)后,DSH 的预设选择器里会出现**四个** agent preset。
17
18
 
18
19
  ---
19
20
 
20
21
  ## 🧩 架构图(v2 + v3 + v4 + v5)
21
22
 
22
- > 静态架构图;完整流程说明见 [docs/架构图.md](docs/架构图.md);可编辑生成脚本:[v2](docs/generate_framework_diagram_v2.py) / [v3](docs/generate_framework_diagram_v3.py) / [v4](docs/generate_framework_diagram_v4.py)。
23
+ > 静态架构图;完整流程说明见 [docs/架构图.md](docs/架构图.md)(v2 详解)与
24
+ > [vibe-math-v5/架构图.md](vibe-math-v5/架构图.md)(v5 全套细节图);
25
+ > 可编辑生成脚本:[v2](docs/generate_framework_diagram_v2.py) / [v3](docs/generate_framework_diagram_v3.py) /
26
+ > [v4](docs/generate_framework_diagram_v4.py)(matplotlib → PNG)、
27
+ > [v5](docs/generate_framework_diagram_v5.mjs)(零依赖 Node → SVG,`node docs/generate_framework_diagram_v5.mjs`)。
23
28
 
24
29
  ### Vibe Math V2(概率驱动 · JSON 数据层)✅ 主推
25
30
 
@@ -46,39 +51,155 @@
46
51
 
47
52
  ### Vibe Math V5(研究所体系)🧪 实验性 · 最新
48
53
 
49
- **一句话定位**:把 v4 的"一群互相留言的常驻"升级为一座**研究所**——有**院士**(领头人)、**常驻研究员**、**临时工**三类职员,有所内**公共规章**,有**群聊与会议**,有**自主雇佣/解雇**,并且**任何结论都必须由至少 m 名有表决权者一致给出布尔概率 1 或 0 才能写入 `Verified/`**。
54
+ **一句话定位**:把 v4 的"一群互相留言的常驻"升级为一座**研究所**——有**院士**(领头人)、**常驻研究员**、
55
+ **临时工**三类职员,有所内**公共规章**,有**群聊与会议**,有**自主雇佣/解雇**,并且
56
+ **任何结论都必须由至少 m 名有表决权者一致给出布尔概率 1 或 0 才能写入 `Verified/`**。
57
+
58
+ ![Vibe Math V5 架构图](示例图/框架图-v5.svg)
59
+
60
+ > 图源与全部细节图(成员生命周期、一轮时序、共识状态机、会议流程、调度优先级、状态折叠、
61
+ > 提示词构成、任务板、职权矩阵):[`vibe-math-v5/架构图.md`](vibe-math-v5/架构图.md)。
62
+ > 上面这张 SVG 由零依赖脚本生成:`node docs/generate_framework_diagram_v5.mjs`。
63
+
64
+ ```mermaid
65
+ flowchart TB
66
+ OFF["👤 所办(会话根代理 / 人)<br/>不研究 · 不投票 · 只汇报与转达指令"]
67
+ subgraph INST["🏛️ 研究所(所内自治:编制、组织与分派都在成员之间完成)"]
68
+ ACAD["院士 acad —— 领头人 / 组织与协调中心<br/>L1 全所视图 · L2 分派 · L3 优先级<br/>L4 主持会议 · L5 督导 · L6 调人 · L7 对外"]
69
+ RES["常驻研究员 r-n<br/>有表决权 · 可自主雇佣/解雇自己的临时工"]
70
+ TMP["临时工 t-n<br/>无表决权 · 为特定任务临时雇入"]
71
+ end
72
+ subgraph FW["⚙️ 框架 vibe-v5 —— 只是媒介(middleware),绝不指派任务"]
73
+ M["消息中继 · 会议/辩论 · 任务板 CAS+DAG<br/>m 票共识验证 · 上下文与活性 · 编制与雇佣 · 调度器"]
74
+ end
75
+ PROJ["💾 host-only 会话日志投影单元(键 vibeMathV5)<br/>11 类事件 · 纯折叠 applyV5Event · DSH 负责 checkpoint/restore"]
76
+ FS["📁 Members/&lt;id&gt;/* · Shared/* · Verified/ · Problems/"]
77
+ RULE{{"求真门槛:布尔一致 且 布尔票 ≥ m = min(quorumCap, 在册有表决权人数)"}}
78
+ OFF <-->|"vibe_v5_* / /v5 命令 ↔ status / report"| M
79
+ M <-->|"每轮提示词 ↔ 单个 JSON 回执"| ACAD
80
+ M <-->|"每轮提示词 ↔ 单个 JSON 回执"| RES
81
+ M <-->|"每轮提示词 ↔ 单个 JSON 回执"| TMP
82
+ ACAD -.->|"分派 / 督办 / 主持会议(所内组织,非框架行为)"| RES
83
+ ACAD -.-> TMP
84
+ M <--> PROJ
85
+ M <--> FS
86
+ M --> RULE
87
+ ```
50
88
 
51
- | 职位 | 代号 | 职权 |
52
- |---|---|---|
53
- | **院士**(领头人) | `acad` | **组织与协调中心**:建立全所视图、把问题拆解成任务并**分派**、设定优先级、召集并主持会议、督导进度、调配临时工、对外汇报。**一票与他人等重,不能单方面定论。** |
54
- | **常驻研究员** | `r-<n>` | 有表决权;**可自主雇佣/解雇自己的临时工**。 |
55
- | **临时工** | `t-<n>` | 为特定任务临时雇入;可读/可想/可发言/可写自己的成果库/可认领或被分派任务;**没有表决权**。 |
56
- | 所办(主助手) | —— | **不参与研究、不投票**。只汇报、转达人的指令,并代持平台要求的创建权。 |
57
-
58
- **求真规则(V5 的核心变更)**:一个对象进入 `Verified/` 必须**同时**满足 ① 至少有 **m = min(`quorumCap`, 有表决权人数)** 名有表决权者投出**布尔概率值**;② 这些票**全部**是 `1`(绝对为真)或**全部**是 `0`(绝对为假)。
59
- 票是 `[0,1]` 的数值,**严格介于 0 与 1 之间 = 弃权/存疑**(不计入 m,但计入全组平均概率);**任何一张反向布尔票都会阻塞定论**——少数派无法靠别人弃权把结论推过去;未达门槛的对象**留在原库**并附平均概率与完整辩论录,**不强行裁决**。表决两段式:先【独立初评】,未定论再【公开辩论】后重投,轮次上限 `verdictMaxRounds`。
60
-
61
- **与 v4 的关键差异**:
62
- - **有领头人**:v4 无中央调度、一切靠讨论涌现;v5 在**所内**设有院士这一成员负责组织与分派(**框架仍然绝不指派**——指派者是院士,同样受 m 票约束)。
63
- - **求真门槛从"全体一致"改为"≥ m 一致"**(`quorumMode: "all-unanimous"` 可切回 v4 口径)。
64
- - **状态存于会话日志的 host-only 投影单元**(键 `vibeMathV5`),由 DSH 负责 checkpoint/恢复;v4 的 `State/*.json` 直写、损坏静默覆盖、并发丢写、跨进程陈旧快照这一整类问题在构造上被消除。
65
- - **不引入任何 npm 实验包**:v5 是 preset 内的单个 `.js` 文件。
66
- - **会议与验证互斥**:验证进行中会议请求会暂存,验证做完再补开。
67
- - **提示词正确性是一等公民**(v2.2.0 起):成员**读到的文字**本身有专门的测试与可人工复核的语料。
68
- 身份一律**显式传递、绝不猜测**;成员先落盘进编制、再构造它的入职提示词;章程快照冻结在入职时,
69
- 重建会话不再自称"刚入职";框头按**真实来源**标注(所办分派 ≠ 院士分派;督办 ≠ 分派);
70
- 框架反馈有独立发送者,一次提示词绝不重复投递同一条消息。
71
-
72
- **提示词与交互语料(v2.2.0 新增,随包发布)**:
73
- - `prompt-v5-integrity.test.mjs` — 526 条断言,逐条检查框架真正发出的提示词:身份/编制/m/轮次一致性、
74
- 框头署名、回执契约按职位裁剪、无重复投递、无 `?`/`undefined` 垃圾。
75
- - `prompt-corpus-v5/prompt-corpus-v5.md` / `.json` — **框架真正发出的每一条提示词原文**(入职、会话重建、
76
- 常规轮、心跳轮、表决初评/辩论、会议、会议提议、各类收件框头、框架提示、失败就位),
77
- 工作区路径统一替换为 `<WS>` 以保证可 diff。**复核提示词正确性请看这里**,不必翻会话日志。
78
- - `audit-v5-sensitivity.mjs` — 29 个探针,每个都故意打破一条不变式并要求对应套件**变红**;
79
- 其中 14 个专打提示词/交互(身份、编制、框头、章程、回执契约、节流)。
80
-
81
- 详见 `vibe-math-v5/实现方案.md`(§14.5 提示词分配的正确性)与 `RELEASE-NOTES-2.2.0.md`。
89
+ #### 职位与职权
90
+
91
+ | 职位 | 代号 | 表决权 | 职权 |
92
+ |---|---|---|---|
93
+ | **院士**(领头人) | `acad` | ✅ 一票,**与他人等重** | **组织与协调中心**:建立全所视图(`overview`)、把原问题拆解成任务并**分派**(`assign`)、设定优先级(`prioritize`)、召集并主持会议(`convene`)、督导进度(`nudge`)、调配临时工、对外汇报。**不能单方面定论**,也不能自我扩张编制。 |
94
+ | **常驻研究员** | `r-<n>` | ✅ 一票 | 在自己的方向上深入钻研;**可自主雇佣/解雇自己的临时工**;向院士汇报进展、接受其组织与分派(**有据理反对权**)。 |
95
+ | **临时工** | `t-<n>` | ❌ | 为特定任务临时雇入:可读/可想/可发言/可写自己的成果库/可认领或被分派任务;由**雇主或院士**解雇。代号永不复用。 |
96
+ | **所办**(主助手) | —— | ❌ | **不参与研究、不投票**。只汇报、把人的话翻译成工具调用,并代持平台要求的创建权(建所/增聘常驻研究员)。 |
97
+
98
+ **分工一句话**:**组织由院士负责,但判断属于每个人自己** —— 院士分派的是**工作**,不是**结论**。
99
+
100
+ #### 求真规则(V5 的核心)
101
+
102
+ 一个对象进入 `Verified/` 必须**同时**满足:
103
+
104
+ 1. 至少有 **m = min(`quorumCap`, 在册有表决权人数)** 名有表决权者投出**布尔概率值**;
105
+ 2. 这些票**全部**是 `1`(绝对为真)或**全部**是 `0`(绝对为假)。
106
+
107
+ 票是 `[0,1]` 的数值:**严格介于 0 与 1 之间 = 弃权/存疑**(不计入 m,但计入全组平均概率)。
108
+ **任何一张反向布尔票都会阻塞定论** —— 少数派无法靠别人弃权把结论推过去。
109
+ 未达门槛的对象**留在原库**,并附上全组平均概率与完整辩论录,**不强行裁决**。
110
+
111
+ 表决两段式:先【独立初评】(彼此不可见),未定论再进入【公开辩论】后重投,轮次上限 `verdictMaxRounds`。
112
+ `quorumMode: "all-unanimous"` 可切回 v4 的"全体一致"口径。
113
+
114
+ #### 运行机制
115
+
116
+ - **通信**:群聊(扇出给每位其他成员)、私信、只投给有表决权者;消息**逐收件人持久化**,
117
+ 先落盘再投递,群聊按 `chatDigestMs` / `chatDigestMax` 合批摘要(私信/会议/表决不合批)。
118
+ 一切所内通信都经框架中继(DSH 的邻接限制不允许成员之间直接发消息),但**署名始终是真实发送者**。
119
+ - **会议与验证互斥**(双向):验证进行中会议请求会**暂存**;会议进行中提出的验证会**排队**——
120
+ 两个共识过程永不同时进行,避免互相饿死看门狗时钟。会议按**随机发言序**逐个收集意见,
121
+ 收口时汇总表决并检查是否全体认为已解决。
122
+ - **任务板**:compare-and-set(改前必须读到最新 `expected_revision`)+ 依赖 DAG(认领前必须全部依赖已完成,
123
+ 环检测拒绝坏依赖)+ 写范围重叠告警;owner 被解雇时任务自动收回。
124
+ - **雇佣 / 解雇**:院士与常驻研究员都可雇**自己的**临时工,配额按人(`maxTempPerMember`)与全所
125
+ (`maxTempTotal`)双限;解雇是**真实的**——取消在途回合、释放常驻子会话、收回任务、丢弃未投递邮件。
126
+ - **活性**:主驱动是**一次性活动等待**(`vibe_v5_wait`,不轮询);调度器按优先级推进
127
+ (进行中的会议/验证 → 队列中的验证 → 暂存会议 → 在办任务 → 加急邮件 → 群聊摘要 → 停滞自动开会 → 兜底心跳),
128
+ 并发受 `maxParallel` 闸门限制;任务板的"推一把"按 `activityTimeoutMs` **节流**。
129
+ - **看门狗**:会议/验证超过 2×`activityTimeoutMs` 没有新发言/新票 → 放弃它并回到自组织;
130
+ 心跳**每次唤醒后都重新武装**,所以调度器不会永久冻结。
131
+ - **上下文**:达 `compactThreshold`(%)或累计 `compactAfterRounds` 轮时要求成员把工作状态浓缩进
132
+ `Progress/`;**规章在 persona 里**,压缩后依然有效,不需要每轮重申。
133
+ - **停止**:**仅当全体有表决权者都认为原问题已解决**才结题(写 `Problems/conclusion.md`)。
134
+
135
+ #### 状态与持久化
136
+
137
+ 研究所状态存在**会话日志的 host-only 投影单元**里(键 `vibeMathV5`):框架的副作用只是往会话日志
138
+ 追加 11 类事件,由 `applyV5Event` 纯折叠出状态。因此
139
+
140
+ - **零 token 成本**:这些事件**不进模型上下文**,不占成员的对话预算;
141
+ - **恢复走同一条代码路径**:跨进程重启与同进程 abort 后 resume 都由 DSH 的 checkpoint/restore 覆盖;
142
+ - v4 的 `State/*.json` 直写带来的"损坏静默覆盖 / 并发丢写 / 跨进程陈旧快照"这一整类问题在构造上被消除。
143
+
144
+ 宿主若没有 `sessionProjections` 服务,v5 自动回退到加固 JSON(`State/<研究所>.v5state.json`,同一份折叠、
145
+ 串行写、读前必 load),安装器的启动自检会报告这一降级。投影之外的文件(成员成果库、群聊、会议纪要、
146
+ 辩论录、编制镜像、任务板镜像)都是**人可读产物**,手工改坏不会破坏研究所。
147
+
148
+ #### 提示词是怎么构成的
149
+
150
+ 成员的"人设"(persona)承载**十节公共规章**(编制与同事、通用规章、资料库与 progress 格式、
151
+ 组织与协调、表决规则、每轮节奏、雇佣解雇、任务板、上下文纪律、停止条件),在**入职时冻结**并随会话持久化;
152
+ 每轮提示词只携带短小的**状态块**(我是谁 / 轮次 / m / 在册名单 / 我的任务 / 新到的消息)、**本轮问句**
153
+ 和**回执契约**。回执契约里框架真正处理的每个字段都会出现并按职位裁剪
154
+ (临时工没有 `verdict`/`hire`/`fire`;非院士没有 `assign`/`prioritize`/`nudge`/`convene_meeting`)。
155
+
156
+ 框架把"成员读到的文字"当作产品来保证:身份**显式传递、绝不猜测**;成员**先落盘进编制、再构造**它的入职
157
+ 提示词;章程快照冻结在入职时,会话重建会框为 `【会话重建】` 而不是"刚入职";没有院士时不出现任何院士叙事;
158
+ 消息框头按**真实来源**标注(所办分派 ≠ 院士分派;督办 ≠ 分派);框架反馈有独立发送者,
159
+ 且**一次提示词只投递一条消息**。
160
+
161
+ #### 目录结构(研究所)
162
+
163
+ ```
164
+ <会话工作区>/VibeMath/Projects/<项目>/Institutes/<研究所>/
165
+ ├─ Institutes.md # 编制镜像(人读快照,勿手改)
166
+ ├─ Problems/<id>.md # 原问题
167
+ ├─ Problems/conclusion.md # 结题记录
168
+ ├─ Members/<代号>/
169
+ │ ├─ Progress/progress.md # 研究日志(压缩后恢复状态的主要依据)
170
+ │ ├─ Propos/<id>.md # 命题
171
+ │ ├─ Methods/<id>.md # 方法 / 理论 / 工具
172
+ │ └─ Subproblems/<id>.md # 子问题
173
+ ├─ Shared/
174
+ │ ├─ Chat/<日期>.md # 群聊记录
175
+ │ ├─ Meetings/<mt-id>.md # 会议纪要(含表决小节)
176
+ │ ├─ Debates/<对象>.md # 辩论录(各轮票与理由 + 平均概率)
177
+ │ ├─ TaskBoard.md # 任务板镜像
178
+ │ └─ State-of-institute.md # 成员对"是否已解决"的判断快照
179
+ ├─ Verified/<类型>/<id>.md # 定论(只读;只有它能被当作已确立)
180
+ └─ State/README.md # 说明"权威状态在会话日志投影里,不是这里"
181
+ ```
182
+
183
+ #### 工具面
184
+
185
+ | 谁 | 工具 |
186
+ |---|---|
187
+ | **所办 / 人** | `vibe_v5_configure`(先配置)→ `vibe_v5_start`(开工);`vibe_v5_resume` / `pause` / `stop`;`vibe_v5_set`(调参,立即生效);`vibe_v5_status` / `report` / `members`;`vibe_v5_message` / `meeting`;`vibe_v5_hire` / `fire` / `add_researcher` / `remove_researcher`;斜杠命令 `/v5` |
188
+ | **全体成员** | `vibe_v5_say`(群聊/私信/致全体表决者)、`vibe_v5_wait`(免轮询等待)、`vibe_v5_record_progress`、`vibe_v5_record_proposition` / `_method` / `_subproblem`、`vibe_v5_read_library`(跨读他人库,只读)、`vibe_v5_propose_verify`、`vibe_v5_verdict`、`vibe_v5_task_create` / `_list` / `_get` / `_update`、`vibe_v5_meeting`(提议) |
189
+ | **院士**(另有 `academicianLeads` 开关) | `vibe_v5_overview`(全所视图)、`vibe_v5_assign`(分派,须写明理由与验收标准)、`vibe_v5_prioritize`、`vibe_v5_nudge` |
190
+
191
+ #### 与 v4 的关键差异
192
+
193
+ - **有领头人**:v4 无中央调度、一切靠讨论涌现;v5 在**所内**设有院士负责组织与分派
194
+ (**框架仍然绝不指派**——指派者是院士,同样受 m 票约束)。
195
+ - **求真门槛从"全体一致"改为"≥ m 一致"**(可切回 v4 口径)。
196
+ - **状态存于会话日志的 host-only 投影单元**,由 DSH 负责 checkpoint/恢复(见上)。
197
+ - **三类职位 + 可雇用的临时工**:编制是可变的,雇佣/解雇是真实的可逆操作。
198
+ - **不引入任何 npm 实验包**:v5 是 preset 内的单个 `.js` 文件,零依赖。
199
+ - **会议与验证严格互斥**(双向排队)。
200
+
201
+ 详见 [`vibe-math-v5/实现方案.md`](vibe-math-v5/实现方案.md)(文字规格)与
202
+ [`vibe-math-v5/架构图.md`](vibe-math-v5/架构图.md)(全部细节图)。
82
203
 
83
204
  ---
84
205
 
@@ -98,6 +219,15 @@
98
219
  - **可配置**:`vibe_math_setting.json`(含注释)自定义默认参数;`/vibe setup` 交互式问答配置。
99
220
  - **自然语言控制**:主代理充当「助手 + 汇报者」,你把需求说成人话,它自己调用工具、汇报进度、配置参数。
100
221
 
222
+ **v4 / v5 特有**:
223
+
224
+ - **常驻自组织(v4)**:起始产生 N 个**持久化常驻子代理**,此后**所有任务安排由它们互相留言 + 开会自行决定**(框架只做消息总线/会议/任务板,绝不分配任务)。
225
+ - **研究所体系(v5)**:在 v4 的自组织之上引入**现实研究所的组织形式**——**院士**(领头人)负责拆解、**分派**、定优先级、主持会议、督导进度;**常驻研究员**有表决权并可**自主雇佣/解雇自己的临时工**;**临时工**无表决权;全部组织动作都由**所内成员**完成,框架仍然只做媒介。详见上方 [Vibe Math V5](#vibe-math-v5研究所体系-实验性--最新) 一节。
226
+ - **可调的一致性门槛(v5)**:对象要进 `Verified/`,需要 **≥ m = min(`quorumCap`, 在册有表决权人数)** 名有表决权者投出**一致的布尔票**(全 `1` 或全 `0`);**反向票阻塞**、**弃权不计票但计入平均概率**;未达门槛则**留库附平均概率与完整辩论录**,不强行裁决。
227
+ - **零 token 成本的状态持久化(v5)**:研究所状态存于**会话日志的 host-only 投影单元**,不进模型上下文;跨进程与同进程恢复走同一条代码路径。
228
+ - **真实可逆的编制(v5)**:雇佣会创建常驻子会话,解雇会取消在途回合、释放子会话、收回其任务并丢弃未投递邮件;代号永不复用。
229
+ - **人可读镜像(v4/v5)**:编制表、任务板、会议纪要、辩论录、结题记录都以 Markdown 落盘,人随时可读;但**权威状态不在这些文件里**(v5 在投影单元),所以手工改坏它们不会破坏研究所。
230
+
101
231
  ---
102
232
 
103
233
  ## 🚀 安装
@@ -112,9 +242,9 @@ dsh plugin --profile <你的 profile> add dsh-vibe-math
112
242
  dsh plugin --profile <你的 profile> add github:ChongCyrus/Vibe-Mathematics
113
243
  ```
114
244
 
115
- 安装时插件会自动把三个 preset 写入 `~/.dsh/.agent-presets/`:`vibe-math-v2/`、`vibe-math-v3/` 与 `vibe-math-v4/`。
116
- 之后新建会话,预设选择器里选择 **Vibe Math V3**(v3,**主推**)、**Vibe Math V2**(v2,**主推**)或 **Vibe Math V4**(v4,常驻自组织)即可——v2 与 v3 同级主推,按实际需求自选(见「怎么选」)。
117
- **升级包版本后重启 DSH,未手动改过的 preset 文件会自动更新到新版本**(细节见文末「v2/v3」安装器说明)。
245
+ 安装时插件会自动把四个 preset 写入 `~/.dsh/.agent-presets/`:`vibe-math-v2/`、`vibe-math-v3/`、`vibe-math-v4/` 与 `vibe-math-v5/`。
246
+ 之后新建会话,预设选择器里选择 **Vibe Math V3**(v3,**主推**)、**Vibe Math V2**(v2,**主推**)、**Vibe Math V4**(v4,常驻自组织)或 **Vibe Math V5**(v5,研究所体系)即可——v2 与 v3 同级主推,按实际需求自选(见「怎么选」)。
247
+ **升级包版本后重启 DSH,未手动改过的 preset 文件会自动更新到新版本**(细节见文末安装器说明)。
118
248
 
119
249
  ### 方式 B:作为 agent preset 手动安装
120
250
 
@@ -124,21 +254,22 @@ dsh plugin --profile <你的 profile> add github:ChongCyrus/Vibe-Mathematics
124
254
  C:\Users\<你>\.dsh\.agent-presets\vibe-math-v2\ ← 复制 vibe-math-v2/ 下的 agent.cordis.yml / preset.yml / vibe-math-v2.js
125
255
  C:\Users\<你>\.dsh\.agent-presets\vibe-math-v3\ ← 复制 vibe-math-v3/ 下的 agent.cordis.yml / preset.yml / vibe-math-v3.js
126
256
  C:\Users\<你>\.dsh\.agent-presets\vibe-math-v4\ ← 复制 vibe-math-v4/ 下的 agent.cordis.yml / preset.yml / vibe-math-v4.js
257
+ C:\Users\<你>\.dsh\.agent-presets\vibe-math-v5\ ← 复制 vibe-math-v5/ 下的 agent.cordis.yml / preset.yml / vibe-math-v5.js
127
258
  ```
128
259
 
129
- 2. 新建一个会话,在 preset 选择器里选 **「Vibe Math V2」** / **「Vibe Math V3」** / **「Vibe Math V4」**。
130
- 3. 会话启动后即可使用:工具列表里会出现 `vibe_math_*` 工具,输入框键入 `/vibe` 有自动补全。
260
+ 2. 新建一个会话,在 preset 选择器里选 **「Vibe Math V2」** / **「Vibe Math V3」** / **「Vibe Math V4」** / **「Vibe Math V5」**。
261
+ 3. 会话启动后即可使用:v2/v3 的工具是 `vibe_math_*`、v4 是 `vibe_v4_*`、v5 是 `vibe_v5_*`;输入框键入 `/vibe`、`/v4`、`/v5` 有自动补全。
131
262
 
132
263
  > 修改 preset 文件后需**重启 DSH 进程**再开新会话(preset 的 standing mount 会缓存到进程退出)。
133
264
 
134
265
  ### DSH 版本适配与依赖
135
266
 
136
- - **形态依赖**:三个 preset 依赖 DSH 的标准 **agent-preset 机制**(`~/.dsh/.agent-presets/<id>/` + preset picker)与 **bundle patch 机制**(`cordis.patch.yml` 注入安装器)。
267
+ - **形态依赖**:四个 preset 依赖 DSH 的标准 **agent-preset 机制**(`~/.dsh/.agent-presets/<id>/` + preset picker)与 **bundle patch 机制**(`cordis.patch.yml` 注入安装器)。
137
268
  - **宿主插件行**:`agent.cordis.yml` 引用宿主提供的 `@deepseek-ai/dsh-*` 插件行(persona、agent-instructions、tool-bash/pwsh、tool-fs/fs-search、tool-jobs、skill-filesystem、tool-skill、tool-goal、plan-mode、compaction、subagent/workflow、ask-user、todo、web 等,约 21 个唯一包名)。宿主缺行会导致 preset 挂载失败(会话启动时报错)。
138
- - **宿主服务 API**:预设插件消费 `subagents`(startContinuable / **sendMessage**(续做/唤醒;`followup` 仅为 `Agent` 对象方法、**不是** `subagents` 服务方法)/ interrupt)、`agents`(get/roots)、`tools`(register/restrict)、`commands`(register)、`fs`(resolve/stat/readText/writeText/listDir),以及**可选** `subprocess` / `sandboxPolicy` / `compaction`。这些 API 形状随 DSH 版本演进;本项目**已在 `dsh-v0.1.5-rc.2` 上逐项核对并适配**(`package.json` 的 `dsh.testedVersion`)。**注意:DSH 0.1.2 起 `subagents.startContinuable` 的 `agentOptions` / `toolFilter` 需要宿主 provider 声明对应 capability**(spawn / fork 进程内 provider 均支持,v4 指定常驻模型/路由与工具权限依赖于此)。
269
+ - **宿主服务 API**:预设插件消费 `subagents`(startContinuable / **sendMessage**(续做/唤醒;`followup` 仅为 `Agent` 对象方法、**不是** `subagents` 服务方法)/ interrupt / drainContinuableChildren(v5 用于**真实解雇**))、`agents`(get/roots)、`tools`(register/restrict)、`commands`(register)、`fs`(resolve/stat/readText/writeText/listDir),以及**可选** `subprocess` / `sandboxPolicy` / `compaction` / `sessionProjections` / `sessions`。这些 API 形状随 DSH 版本演进;本项目**已在 `dsh-v0.1.5-rc.2` 上逐项核对并适配**(`package.json` 的 `dsh.testedVersion`)。**注意:DSH 0.1.2 起 `subagents.startContinuable` 的 `agentOptions` / `toolFilter` 需要宿主 provider 声明对应 capability**(spawn / fork 进程内 provider 均支持,v4/v5 指定成员模型/路由与工具权限依赖于此)。
139
270
  > **2026 兼容性修复要点**(详见 `../COMPAT-AUDIT-ROUND2.md`):① `tools.restrict()` 对**未注册的工具名抛错**,而 filter 在建立子代理时应用,故权限名表必须只含本部署真正注册的名字——v2/v3 原先硬编码 `web`/`fetch`/`bash`(其中 `bash` 在 Windows 被 `disabled`)会导致"想收紧权限时子代理永远起不来";② v4 的真实 `/compact` 原先在 `subagent/end` 里查 `agents.get()`,但该事件在子代理**已被移出注册表之后**才触发,属死代码,已改为在 `subagent/start` 捕获引用;③ 可选服务改为**惰性读取**,不再在 `apply()` 快照(否则挂载顺序会让 `subprocess` 永久为 undefined 而静默不建目录)。
140
271
  - **DSH STORE 兼容声明**:`package.json` 的 `dsh.compatibility.dshReleases` 对每个完整 DSH 版本逐项声明 `compatible` / `incompatible` / `unknown`(当前已声明 `0.1.2-alpha.4` … `0.1.5-rc.2` 共 8 个版本为 `compatible`,实测目标为 `0.1.5-rc.2`);`engines.node` 为 `^22.19.0 || >=24.0.0`。
141
- - **运行时自检(能力 + 版本双检)**:安装器(bundle 插件)每次启动时:**① 尽力探测 DSH 版本**(读 `@deepseek-ai/dsh/package.json` 或 `DSH_VERSION` 环境变量;DSH 未通过公开 service/context 暴露版本,故为尽力而为,探测不到就跳过)。若探测到且该版本未被 `dshReleases` 声明为 `compatible`,会给出明确提示;**② 再对宿主服务与关键 API 做能力自检**(这是真正的挂载门槛):`subagents`/`agents`/`tools`/`commands`/`fs` 为**必需**(缺失即 warning),`subprocess`/`sandboxPolicy`/`compaction` 为**可选**(缺失只提示"功能会静默降级",不影响挂载),另含 `fs.resolve` 返回形状检测与 subagent `agentOptions`/`toolFilter` capability 检测。preset 挂载失败时先看 DSH 日志里的自检 warning。
272
+ - **运行时自检(能力 + 版本双检)**:安装器(bundle 插件)每次启动时:**① 尽力探测 DSH 版本**(读 `@deepseek-ai/dsh/package.json` 或 `DSH_VERSION` 环境变量;DSH 未通过公开 service/context 暴露版本,故为尽力而为,探测不到就跳过)。若探测到且该版本未被 `dshReleases` 声明为 `compatible`,会给出明确提示;**② 再对宿主服务与关键 API 做能力自检**(这是真正的挂载门槛):`subagents`/`agents`/`tools`/`commands`/`fs` 为**必需**(缺失即 warning),`subprocess`/`sandboxPolicy`/`compaction`/`sessionProjections`/`sessions` 为**可选**(缺失只提示"功能会静默降级",不影响挂载;`sessionProjections` 缺失时 v5 的研究所状态回退到加固 JSON),另含 `fs.resolve` 返回形状检测与 subagent `agentOptions`/`toolFilter` capability 检测。preset 挂载失败时先看 DSH 日志里的自检 warning。
142
273
  - **升级路径**:DSH 升级后无需重装本包;升级本包用 `dsh plugin update dsh-vibe-math`,重启 DSH 后安装器会自动把 preset 更新到新版本(见上文「安装」说明)。
143
274
 
144
275
  ---
@@ -159,21 +290,30 @@ dsh plugin --profile <你的 profile> add github:ChongCyrus/Vibe-Mathematics
159
290
  >
160
291
  > 两者都成熟可用、持续维护,且都支持断点续跑、人工/自动干预、进度汇报、多会话隔离、命题晋升、近共识/加权裁决等核心能力;切换成本低(同一套 `vibe_math_*` 工具与 `/vibe` 命令、同一套参数体系)。
161
292
  >
162
- > **⚠️ `vibe-math-v2` 与 `vibe-math-v3` 是成熟主推架构;`vibe-math-v4` 是实验性的常驻自组织架构,** 均可选择;老 `vibe-math-v1` 已被移除(本包仅含 v2/v3/v4)。
163
-
164
- | | **v2(概率驱动 · 主推)** | **v3(论文式 md · 主推)** | **v4(常驻自组织 · 实验)** |
165
- |---|---|---|---|
166
- | 定位 | **主推**(JSON 数据层) | **主推**(第三代) | **实验性**(第四代) |
167
- | 核心思想 | 概率驱动:`qs.json` 问题 + `Propos/` 命题库,按「正确概率 / 价值」调度 | **论文式 md 知识库 + 规划代理调度 + 通用理论发明库** | **持久化常驻子代理自组织**:互相留言 + 开会决定一切任务,无中央调度 |
168
- | 数据 | `qs/qs.json` + `Propos/<分类>_Propos.json` + `Reliable/` | `Problems/` + `Progress/` + `Propos/` + `Methods/`(全部 md,软规范锚点 + 自由叙述)+ `Verified/` | `Problems/` + **按常驻 id 归属**的 `Progress|Propos|Methods|Subproblems/<id>/` + `Shared/`(会议/任务板/辩论)+ `Verified/` |
169
- | 角色 | explorer → 逐方向 solver → verifier | **planner(规划代理)** → explorer → 逐方向 solver → verifier → **method-keeper(方法整理代理)** | **N 个常驻研究者**(continuable),由它们互相通信/开会分工,无固定角色 |
170
- | 调度方式 | 代码启发式(优先级 + 概率) | **规划代理产出 N 步计划**(校验后执行,失败回退启发式) | **无中央调度**:任务由常驻互相留言/开会(框架只做媒介,不指派) |
171
- | 收口规则 | 解法/证明达概率 `1` 即收口,`never` 永不调度 | 同 v2(近共识裁决修复 flat 误判) | **仅当全体常驻一致(真 或 假)**才写入 `Verified/`,否则留库附概率 |
172
- | 停止 | 全解或卡死 | 全解/无候选 | **仅当全体常驻一致认为原问题已解决**才停止 |
173
- | 上下文 | 无 | 无 | **常驻上下文达阈值自动 `/compact`**(可调) |
174
- | 特设能力 | 命题「价值/关键性」自动晋升问题清单;`reportMode file/push/both`;`priorityAdjust` | **方法库沉淀循环**(`methods_used`/`new_inventions` → Method Keeper);**计划审批门/方法晋升门**;**项目锁**;后生问题「来源与动机」一等公民 | **常驻各自沉淀 + 互相阅读**;**全体一致验证**;**随时增开/关闭常驻、留言干预**;**断点续跑** |
175
-
176
- 三者都支持:断点续跑(`vibe_math_resume` / `vibe_v4_resume`)、人工/自动模式切换、`vibe_math_*` / `vibe_v4_*` 工具集与 `/vibe` `/v4` 命令、按项目隔离、子代理权限调控。**v2 与 v3 均为同级主推**——偏好结构化 JSON 数据与确定性调度选 v2,偏好论文式 md、规划代理与理论发明库选 v3;v4 是最新的「常驻自组织合作研究」实验架构。
293
+ > - **选 `vibe-math-v4`(常驻自组织)**,如果你想要一组**持久化常驻子代理**互相留言开会、**完全自组织**(无领头人、无中央调度),并且能接受"全体一致才定论"这种严格门槛。
294
+ > - **选 `vibe-math-v5`(研究所体系)**,如果你想要:
295
+ > - **有组织的自组织**——现实研究所那样有**领头人(院士)**负责拆解、分派、定优先级、主持会议、督导进度,但**判断仍归每个人自己**;
296
+ > - **可增减的编制**——常驻研究员 + 可**自主雇佣/解雇**的临时工(临时工无表决权,适合处理核对、试算、资料整理等杂活);
297
+ > - **可调的一致性门槛**——`m = min(quorumCap, 有表决权人数)` 票布尔一致即定论(比"全体一致"更容易收敛,同时**反向票仍然阻塞**,少数派不会被弃权淹没);
298
+ > - **零 token 成本的状态持久化**——研究所状态存于会话日志的 host-only 投影单元,不占成员上下文预算。
299
+ >
300
+ > **⚠️ `vibe-math-v2` 与 `vibe-math-v3` 是成熟主推架构;`vibe-math-v4`、`vibe-math-v5` 是实验性架构,** 均可选择;老 `vibe-math-v1` 已被移除(本包仅含 v2/v3/v4/v5)。
301
+
302
+ | | **v2(概率驱动 · 主推)** | **v3(论文式 md · 主推)** | **v4(常驻自组织 · 实验)** | **v5(研究所体系 · 实验)** |
303
+ |---|---|---|---|---|
304
+ | 定位 | **主推**(JSON 数据层) | **主推**(第三代) | **实验性**(第四代) | **实验性**(第五代) |
305
+ | 核心思想 | 概率驱动:`qs.json` 问题 + `Propos/` 命题库,按「正确概率 / 价值」调度 | **论文式 md 知识库 + 规划代理调度 + 通用理论发明库** | **持久化常驻子代理自组织**:互相留言 + 开会决定一切任务,无中央调度 | **研究所**:院士做组织与分派,成员各自研究;**≥ m 票布尔一致**才定论;临时工可按需雇入 |
306
+ | 数据 | `qs/qs.json` + `Propos/<分类>_Propos.json` + `Reliable/` | `Problems/` + `Progress/` + `Propos/` + `Methods/`(全部 md,软规范锚点 + 自由叙述)+ `Verified/` | `Problems/` + **按常驻 id 归属**的 `Progress|Propos|Methods|Subproblems/<id>/` + `Shared/`(会议/任务板/辩论)+ `Verified/` | 同 v4 的按成员归属布局,另加 `Institutes.md`(编制镜像);**权威状态在会话日志投影里**,文件只是镜像与工作区 |
307
+ | 角色 | explorer → 逐方向 solver → verifier | **planner(规划代理)** → explorer → 逐方向 solver → verifier → **method-keeper(方法整理代理)** | **N 个常驻研究者**(continuable),无固定角色 | **院士 acad**(领头人)+ **常驻研究员 r-n**(有表决权)+ **临时工 t-n**(无表决权,可雇可解雇)+ 所办(不研究不投票) |
308
+ | 调度方式 | 代码启发式(优先级 + 概率) | **规划代理产出 N 步计划**(校验后执行,失败回退启发式) | **无中央调度**:任务由常驻互相留言/开会(框架只做媒介,不指派) | **框架仍不指派**;由**院士**拆解/分派/定优先级/督导,成员可据理反对;框架只做中继、任务板、会议与计数 |
309
+ | 收口规则 | 解法/证明达概率 `1` 即收口,`never` 永不调度 | 同 v2(近共识裁决修复 flat 误判) | **仅当全体常驻一致(真 或 假)**才写入 `Verified/`,否则留库附概率 | **布尔票 ≥ m = min(`quorumCap`, 有表决权人数) 且全为 1 或全为 0** 才写入 `Verified/`;反向票阻塞;弃权不计票但计入平均;(可切回 v4 口径) |
310
+ | 停止 | 全解或卡死 | 全解/无候选 | **仅当全体常驻一致认为原问题已解决**才停止 | 同 v4:**全体有表决权者一致认为原问题已解决**才结题 |
311
+ | 上下文 | 无 | 无 | **常驻上下文达阈值自动 `/compact`**(可调) | 同 v4(阈值/轮数可调,压缩后规章仍在 persona 里生效) |
312
+ | 特设能力 | 命题「价值/关键性」自动晋升问题清单;`reportMode file/push/both`;`priorityAdjust` | **方法库沉淀循环**(`methods_used`/`new_inventions` → Method Keeper);**计划审批门/方法晋升门**;**项目锁**;后生问题「来源与动机」一等公民 | **常驻各自沉淀 + 互相阅读**;**全体一致验证**;**随时增开/关闭常驻、留言干预**;**断点续跑** | v4 的全部能力,另加:**真实雇佣/解雇**(释放子会话、收回任务);**compare-and-set 任务板 + 依赖 DAG**;**会议与验证严格互斥**;**编制镜像与结题记录**;**状态零 token 成本** |
313
+
314
+ 四者都支持:断点续跑(`vibe_math_resume` / `vibe_v4_resume` / `vibe_v5_resume`)、人工干预与暂停恢复、
315
+ 按项目隔离、子代理权限调控、自然语言驱动。**v2 与 v3 均为同级主推**——偏好结构化 JSON 数据与确定性调度选 v2,
316
+ 偏好论文式 md、规划代理与理论发明库选 v3;v4 是完全自组织的常驻合作研究,v5 是"有领头人 + 可增减编制 + 可调门槛"的研究所体系。
177
317
 
178
318
  ---
179
319
 
@@ -193,6 +333,21 @@ dsh plugin --profile <你的 profile> add github:ChongCyrus/Vibe-Mathematics
193
333
 
194
334
  > 一句话分工:**主代理负责“和人对话”,规划代理负责“定计划”,调度器负责“执行与守界”,子代理负责“动脑”,Method Keeper 负责“把发明沉淀成理论”。**
195
335
 
336
+ ### 架构与分工(v4 / v5)
337
+
338
+ | | **v4(常驻自组织)** | **v5(研究所体系)** |
339
+ |---|---|---|
340
+ | 主体 | N 个常驻子代理(continuable) | 院士 + 常驻研究员 + 临时工(全部是 continuable 子代理) |
341
+ | 谁安排任务 | **没有人**:靠互相留言与开会自行涌现 | **院士**(所内成员,同样受表决规则约束);框架仍不指派 |
342
+ | 谁做判断 | 各自;全体一致才定论 | 各自;**≥ m 票布尔一致**才定论 |
343
+ | 协调机制 | 消息 + 会议 | 消息 + 会议(与验证严格互斥)+ **compare-and-set 任务板** |
344
+ | 编制 | 常驻,可增开/关闭 | **可增减**:常驻研究员由所办批准增聘;临时工由院士/研究员自主雇佣解雇 |
345
+ | 状态 | `State/*.json` 直写 | **会话日志 host-only 投影单元**(零 token 成本、由 DSH checkpoint/restore) |
346
+
347
+ v5 的完整架构(含成员生命周期、一轮时序、共识状态机、会议流程、调度优先级、状态折叠、提示词构成、
348
+ 任务板、职权矩阵)见 [`vibe-math-v5/架构图.md`](vibe-math-v5/架构图.md);文字规格见
349
+ [`vibe-math-v5/实现方案.md`](vibe-math-v5/实现方案.md)。
350
+
196
351
  ---
197
352
 
198
353
 
@@ -243,6 +398,36 @@ dsh plugin --profile <你的 profile> add github:ChongCyrus/Vibe-Mathematics
243
398
  **铁律(v2 通用)**:调度器是**唯一文件写者**(子代理只返回结构化 JSON,从不写文件)。
244
399
  **v3 铁律**:只有 `Verified/` 与验证器判真/假的对象**绝对可信**;其余 md(未定论命题、研究日志、方法库未验证断言)仅作经验参考;调度器只解析软规范锚点行与条目标题行,从不解析正文散文。**v3 支持代理直接写 md**(自组织定位各自归属文件,如求解器写 `Progress/<id>/<方向id>.md`、新引理写 `Propos/<分类>/<id>.md`、方法整理代理写 `Methods/<id>.md`);并发安全靠**写锁**——写任何文件前调 `vibe_math_claim_write`、写完 `vibe_math_release_write`(同一文件同一时刻只允许一个代理写),内容留在 md,轻量元数据经 `vibe_math_sync_meta` 上报给调度器。
245
400
 
401
+ ### v5(研究所体系 · 实验)
402
+
403
+ ```
404
+ <会话工作区>/VibeMath/Projects/<项目>/Institutes/<研究所>/
405
+ ├─ Institutes.md # 编制镜像(人读快照:代号/职位/状态/雇主/方向/轮次/上下文%)
406
+ ├─ Problems/<id>.md # 原问题
407
+ ├─ Problems/conclusion.md # 结题记录(全体有表决权者一致认为已解决时生成)
408
+ ├─ Members/<代号>/
409
+ │ ├─ Progress/progress.md # 研究日志(叙述体,可追加;压缩后恢复状态的主要依据)
410
+ │ ├─ Propos/<id>.md # 命题(含证明尝试/证伪尝试)
411
+ │ ├─ Methods/<id>.md # 方法 / 理论 / 工具(含定义记号/应用记录/改进历史)
412
+ │ └─ Subproblems/<id>.md # 子问题
413
+ ├─ Shared/
414
+ │ ├─ Chat/<日期>.md # 群聊记录(含建所/雇佣/解雇/会议/表决/结题公告)
415
+ │ ├─ Meetings/<mt-id>.md # 会议纪要(各成员发言 + 表决小节)
416
+ │ ├─ Debates/<对象>.md # 辩论录(各轮票与理由 + 全组平均概率)
417
+ │ ├─ TaskBoard.md # 任务板镜像
418
+ │ └─ State-of-institute.md # 成员对"是否已解决"的判断快照
419
+ ├─ Verified/<类型>/<id>.md # 定论(只读;只有它能被当作已确立)
420
+ └─ State/
421
+ ├─ README.md # 说明"权威状态在会话日志投影里,不是这里"
422
+ └─ <研究所>.v5state.json # 仅当宿主缺 sessionProjections 时的回退权威源
423
+ ```
424
+
425
+ **v5 铁律**:① 权威状态在**会话日志的 host-only 投影单元**(键 `vibeMathV5`)里,上表中除
426
+ `State/<研究所>.v5state.json`(降级回退)之外的一切文件都只是**镜像/工作区**,手工改坏不会破坏研究所;
427
+ ② 成员**只写自己的库**(`Members/<自己的代号>/`),但可以读任何人的库;
428
+ ③ 只有 `Verified/` 与标注"已验证·真/假"的卡片**绝对可信**,其余(含 `Methods/` 里的未验证断言)只是经验参考,
429
+ 引用必须注明"未验证";④ 入库必须写明**价值程度 / 动机用途计划 / 自己的概率估计**三项,缺一不可。
430
+
246
431
  ---
247
432
 
248
433
  ## ⚡ 快速上手
@@ -496,9 +681,9 @@ dsh plugin --profile <你的 profile> add github:ChongCyrus/Vibe-Mathematics
496
681
 
497
682
  ## 📝 断点续跑 & 人工干预(两大硬性需求)
498
683
 
499
- - **断点续跑**:所有状态落盘(v2:`VibeMath_State/*.json`;v3:`State/*.json`),每个子代理都是 DSH 的 **continuable 持久会话**(对话由 DSH 自动保存)。重启后新开会话 → `vibe_math_resume` 即可续跑。v2/v3 额外用**进程纪元**区分"同进程暂停→恢复"(保留存活子代理继续)与"跨进程重启"(清理陈旧任务)。**v3 的 md 知识库本身就是叙事断点**——代理 resume 时从研究日志/问题卡/命题卡尾部续写。
500
- - **中途人工干预**:`manual` 模式在关键节点挂起决策(v2:explorer/solver 派发、验证裁决;v3:**计划审批门**(规划代理产出计划后等你 approve/reject)、验证裁决门、**方法晋升门**(项目方法 → 全局库));可随时 `set_mode auto` 切回自动(自动放行所有挂起决策);可对任意子代理 `message_agent` / `interrupt_agent`。
501
- - **进度汇报**:默认**事件驱动** —— 只有代理状态更新等事件发生时才会写报告(v2:`Progress_Logs/report.json`;v3:`Progress_Logs/report.json` + `Logs/报告.md` 论文式人读摘要;`reportMode` 可 `file`/`push`/`both`,`push` 通过 `subagents.sendMessage(根代理, 常驻子代理, …)` 唤醒常驻主动汇报——`followup` **不是** `subagents` 服务的方法,它只是 `Agent` 对象方法);只有把 `reportIntervalMs` 设为 >0 才启动定时自动汇报(间隔毫秒)。
684
+ - **断点续跑**:所有状态落盘(v2:`VibeMath_State/*.json`;v3:`State/*.json`;**v5:会话日志的 host-only 投影单元**),每个子代理都是 DSH 的 **continuable 持久会话**(对话由 DSH 自动保存)。重启后新开会话 → `vibe_math_resume` / `vibe_v4_resume` / `vibe_v5_resume` 即可续跑。v2/v3 额外用**进程纪元**区分"同进程暂停→恢复"(保留存活子代理继续)与"跨进程重启"(清理陈旧任务)。**v3 的 md 知识库本身就是叙事断点**——代理 resume 时从研究日志/问题卡/命题卡尾部续写;**v5 由投影单元承担**——跨进程与同进程恢复走同一条代码路径,成员会话重建时会以"读回你自己的 Progress/"重新种化(而不是让它们从头再来)。
685
+ - **中途人工干预**:`manual` 模式在关键节点挂起决策(v2:explorer/solver 派发、验证裁决;v3:**计划审批门**(规划代理产出计划后等你 approve/reject)、验证裁决门、**方法晋升门**(项目方法 → 全局库));可随时 `set_mode auto` 切回自动(自动放行所有挂起决策);可对任意子代理 `message_agent` / `interrupt_agent`。**v4/v5 天然可干预**:随时给成员留言(`vibe_v5_message`)、召集会议、暂停全所、增删编制——成员下一轮就会看到。
686
+ - **进度汇报**:默认**事件驱动** —— 只有代理状态更新等事件发生时才会写报告(v2:`Progress_Logs/report.json`;v3:`Progress_Logs/report.json` + `Logs/报告.md` 论文式人读摘要;`reportMode` 可 `file`/`push`/`both`,`push` 通过 `subagents.sendMessage(根代理, 常驻子代理, …)` 唤醒常驻主动汇报——`followup` **不是** `subagents` 服务的方法,它只是 `Agent` 对象方法);只有把 `reportIntervalMs` 设为 >0 才启动定时自动汇报(间隔毫秒)。**v4/v5 的工作汇报是"所内自述"**:成员把进展写进自己的 `Progress/`、把关键结论说进群聊(v5 另有人读镜像 `Institutes.md` / `Shared/TaskBoard.md` / 会议纪要 / 辩论录 / `Problems/conclusion.md`)。
502
687
 
503
688
  ---
504
689
 
@@ -507,16 +692,19 @@ dsh plugin --profile <你的 profile> add github:ChongCyrus/Vibe-Mathematics
507
692
  - **v2(概率驱动)**:[`vibe-math-v2/实现方案.md`](vibe-math-v2/实现方案.md)
508
693
  - **v3(论文式 md + 规划代理 + 方法库)**:[`vibe-math-v3/实现方案.md`](vibe-math-v3/实现方案.md)
509
694
  - **v4(常驻自组织)**:[`vibe-math-v4/实现方案.md`](vibe-math-v4/实现方案.md)
695
+ - **v5(研究所体系)**:[`vibe-math-v5/实现方案.md`](vibe-math-v5/实现方案.md)(文字规格)· [`vibe-math-v5/架构图.md`](vibe-math-v5/架构图.md)(全套架构图)
696
+ - **v5 提示词与交互语料**:[`prompt-corpus-v5/prompt-corpus-v5.md`](prompt-corpus-v5/prompt-corpus-v5.md)(框架真正发出的每一条提示词原文,可直接人工复核身份/编制/交互署名是否正确)
697
+ - **全面检查必查清单**:[`AUDIT-CHECKLIST.md`](AUDIT-CHECKLIST.md)(本仓库的强制审计流程)
510
698
 
511
699
  ---
512
700
 
513
701
  ## ⚠️ 已知边界(有意简化)
514
702
 
515
703
  **v2**:
516
- - 安装器带**版本化自动更新**:每次 DSH 启动时对比包版本与 `<presetRoot>/.vibe-math-installed.json` 记录——版本升级会自动替换**未被手动修改**的 preset 文件(哈希一致才覆盖);你改过的文件会被保留并在日志中提示。无记录的老安装首次会一次性刷新到当前版本。想强制全量重装:删除 `~/.dsh/.agent-presets/vibe-math-v2`、`vibe-math-v3` 与 `vibe-math-v4` 目录后重启 DSH。
704
+ - 安装器带**版本化自动更新**:每次 DSH 启动时对比包版本与 `<presetRoot>/.vibe-math-installed.json` 记录——版本升级会自动替换**未被手动修改**的 preset 文件(哈希一致才覆盖);你改过的文件会被保留并在日志中提示。无记录的老安装首次会一次性刷新到当前版本。想强制全量重装:删除 `~/.dsh/.agent-presets/vibe-math-v2`、`vibe-math-v3`、`vibe-math-v4` 与 `vibe-math-v5` 目录后重启 DSH。
517
705
  - `flat` 裁决在辩论不一致时直接判 `0.5`(高置信分歧如 0.9 vs 1 也会被误判 0.5——**v3 已用近共识规则修复**);`forced` 按历史准确率+置信度加权。
518
706
  - `never` 优先级的问题/命题**永不调度**,且不阻塞严格终止(视为主动弃权)。
519
- - 三个 preset 文件互相独立、可共存;同一会话同时只能选一个预设。
707
+ - 四个 preset 文件互相独立、可共存;同一会话同时只能选一个预设。
520
708
 
521
709
  **v3**:
522
710
  - **软规范而非零规范**:md 知识库只强制对象头部的 4~7 行锚点(`- ID/类型/状态/概率/优先级/依赖/...`)与条目标题行(`### 解法/证明/证伪 N|标题|概率X|状态Y`),供调度器可靠索引;正文完全自由论文式叙述,调度器从不解析正文。手工编辑锚点可能导致索引漂移(调度器会保留上次有效索引并告警)。
@@ -525,6 +713,22 @@ dsh plugin --profile <你的 profile> add github:ChongCyrus/Vibe-Mathematics
525
713
  - **项目锁**:同一项目同一时刻只允许一个会话调度(第二个会话启动会提示"被会话 X 占用");锁在暂停/终止/全部解决时自动释放。
526
714
  - **近共识裁决**:全部验证器结果同侧且均值 ≥0.85/≤0.15 时取均值(如 0.9 vs 1 → 0.95),否则 `forced` 加权 / `flat` 判 0.5——修复了 v2 中"数学上正确但形式有瑕疵"的结论被误判为不确定的问题。
527
715
 
716
+ **v5**:
717
+ - **框架绝不指派任务**:这是设计上的硬边界,不是尚未实现的功能。任务的产生与分配属于**所内自治**
718
+ (院士拆解分派、成员自行认领),框架只提供任务板、消息与会议这些**协调工具**。
719
+ - **`≥ m` 一致 ≠ 数学上已证明**:门槛只保证"所内达成了一致判断",不保证结论真的正确。
720
+ 求真的纵深靠成员自己的推导与辩论录留痕;未达门槛的对象会**留库附平均概率**,不会被强行判真判假。
721
+ - **一致性门槛不是"少数服从多数"**:任何一张反向布尔票都阻塞定论,弃权既不帮真也不帮假。
722
+ 要更容易收敛就调低 `quorumCap` 或减少有表决权人数;要更严格可切 `quorumMode: "all-unanimous"`。
723
+ - **一个回合永不结束的成员不会被强行释放**(与 v4 同一边界):心跳每次都会重新武装,
724
+ 所以调度器不会永久冻结;需要人工介入时用 `vibe_v5_fire`(临时工)或所办增删编制。
725
+ - **会议与验证严格互斥**:一方进行中,另一方排队/暂存。因此"在会议上当场定论一个对象"会先排队,
726
+ 等会议收口后再走完整的表决流程。
727
+ - **`resume` 后轮次计数从 1 重新计**(内存态,仅用于节流与压缩提示);权威进度在成员自己的 `Progress/`。
728
+ - **成员章程是入职快照**:升级本包不会改写已在跑的研究所里成员的章程(它们仍用入职时冻结的版本)。
729
+ 需要新章程就在新会话里重开一个研究所;投影状态与文件树无需迁移。
730
+ - **安装器行为同 v2**(版本化自动更新,`vibe-math-v5` 目录同样受管)。
731
+
528
732
  ---
529
733
 
530
734
  ## 📄 License
@@ -0,0 +1,43 @@
1
+ # dsh-vibe-math 2.2.1 — 把「全面检查必查清单」作为随包强制流程发布
2
+
3
+ > 上一版:2.2.0(修复实测发现的提示词身份错乱)。本版**只增加交付物**,不改代码。
4
+
5
+ ## 为什么单独发一版
6
+
7
+ 2.2.0 修掉了一整类缺陷,但更重要的是**这一类缺陷此前没有任何审计维度**:
8
+ 框架发给每个成员的提示词写错了身份,而当时 123 条断言 + 15 个灵敏度探针全部"通过"。
9
+ 根因不是某处代码写错,而是**审计本身漏了一整类检查**。
10
+
11
+ 为了让"以后每次全面检查都不再遗漏"成为**可执行、可复核的规则**而不是一句承诺,
12
+ 本版把 `AUDIT-CHECKLIST.md` 作为**随包发布的强制流程**加进来。
13
+
14
+ ## `AUDIT-CHECKLIST.md` 的内容
15
+
16
+ - **第一优先:提示词分配与交互内容正确性**(身份分配 / 编制与门槛 / 名称与领袖叙事 /
17
+ 交互内容 / 时序与幂等),以检查项清单形式给出,每一项都对应一个具体的历史缺陷;
18
+ - **第二优先:把每一条变成会变红的测试**——逐条断言而非抽查、期望值必须能证伪、
19
+ 用例互相隔离、**必须保留交互语料**、每个不变式都要有灵敏度探针;
20
+ - 并明确列出四种**假绿**的识别点,它们在本次审计中**全部真实出现过**:
21
+ 1. 探针的工作目录被百分号转义(Windows 中文路径 + `URL.pathname`)→ 子进程全部启动失败,
22
+ "非零退出"被当成"探测成功",整份审计是假的;
23
+ 2. 某个 e2e 套件**不读** `V5_PLUGIN` → 针对它的探针跑的是**未变异**的插件,恒为绿;
24
+ 3. 变异是**语义惰性**的(同一规则在多处重复检查,只削弱一处仍被其它处挡住)→ 误报"盲点";
25
+ 4. 变异引入**语法错误** → 同样是假红。
26
+ - 第三优先沿用既有做法(静态自检、需求可追溯、失败路径、全量回归、发布产物自证)。
27
+
28
+ ## 交付物
29
+
30
+ | 文件 | 说明 |
31
+ |---|---|
32
+ | `AUDIT-CHECKLIST.md` | 全面检查必查清单(强制流程),随包发布 |
33
+ | `README.md` | 新增章节引用该清单,并说明四条铁律 |
34
+
35
+ 代码、预设、`实现方案.md`、提示词语料**均与 2.2.0 完全一致**(无行为变更)。
36
+
37
+ ## 升级
38
+
39
+ ```
40
+ npm i dsh-vibe-math@latest
41
+ ```
42
+
43
+ 无迁移、无行为变化;只是把审计流程本身交付给使用者与未来的维护者。
@@ -0,0 +1,88 @@
1
+ # dsh-vibe-math 2.2.2 — v5 架构图 + 完善 README 的 v5 章节 + 修复绘图时暴露的真实缺陷
2
+
3
+ > 上一版:2.2.1。本版为 v5 补齐**架构图**与 **README 的 v5 章节**,
4
+ > 并修掉一个在为 v5 画架构图时暴露出来的真实缺陷(会议与验证的互斥只做了单向)。
5
+ > v2/v3/v4 未改。
6
+
7
+ ---
8
+
9
+ ## 1. 新增:v5 架构图
10
+
11
+ | 交付物 | 说明 |
12
+ |---|---|
13
+ | `示例图/框架图-v5.svg` | **总览大图**(1720×1116 矢量图)。分层展示:所办 → 研究所(院士 / 常驻研究员 / 临时工)→ 框架(六项能力 + 调度器优先级)→ 状态与产物(投影单元 / 文件面),左侧一条**控制面通道**专门承载"所办 ↔ 框架"的工具面,因此控制箭头不会穿过所内成员 |
14
+ | `docs/generate_framework_diagram_v5.mjs` | **零依赖 Node 生成器**(`node docs/generate_framework_diagram_v5.mjs` → 写出上面的 SVG)。v2/v3/v4 用 matplotlib 生成 PNG;v5 改用 Node 直接生成 SVG:本仓库的运行时就含 Node,不需要额外装 Python,且 SVG 可 diff、可评审、缩放不糊。生成器自带**布局自检**——会估算每行文字宽度并对溢出容器的行报错(本次就是靠它把两轮排版调整收敛干净的) |
15
+ | `vibe-math-v5/架构图.md` | **全套细节图**(9 张 Mermaid,GitHub 原生渲染):① 三层总览 ② 成员生命周期状态机 ③ 一轮唤醒的时序 ④ 共识验证状态机(含弃权/阻塞/看门狗)⑤ 会议流程(含双向互斥)⑥ 调度优先级 ⑦ 状态纯折叠 + 双后端 ⑧ 提示词构成 ⑨ 任务板 CAS+DAG;另附职权矩阵、目录结构、不变式速查表 |
16
+
17
+ > 9 张 Mermaid 全部用 `mermaid-cli` 实际渲染验证通过(不是"看起来像对")。
18
+
19
+ ## 2. 完善:README 的 v5 章节
20
+
21
+ - **v5 章节整体重写**:新增架构图(内嵌 SVG + 一份紧凑 Mermaid 总览)、职位与职权表(含"表决权"列)、
22
+ 求真规则、运行机制(通信/会议互斥/任务板/雇佣解雇/活性/看门狗/上下文/停止)、状态与持久化、
23
+ 提示词构成、目录结构、工具面(按角色分组)、与 v4 的关键差异。
24
+ - **修掉"只有三个预设"的遗留说法**:仓库简介、安装说明、手动安装清单、DSH 版本适配、
25
+ 预设选择表、目录结构、断点续跑、已知边界——全部补齐 v5(选择表新增 v5 一列,
26
+ 并给出"什么时候该选 v5"的判据)。
27
+ - **目录结构新增 v5 小节**(含四条 v5 铁律:权威状态在投影里 / 只写自己的库 /
28
+ 可信分层 / 入库三要素)。
29
+ - **已知边界新增 v5 小节**:框架绝不指派是**设计边界**而非未实现;`≥ m` 一致 ≠ 数学上已证明;
30
+ 反向票阻塞而非少数服从多数;回合永不结束者不会被强行释放;会议与验证严格互斥;
31
+ `resume` 后轮次计数重算;成员章程是入职快照(升级不改写)。
32
+ - **移除 README 里的更新日志式内容**:原"提示词与交互语料(v2.2.0 新增,随包发布)"与
33
+ "📋 全面检查必查清单(随包发布)"两段带版本叙事的内容已删除。提示词正确性作为**特性**写进
34
+ v5 章节(不带版本号),`AUDIT-CHECKLIST.md` 与提示词语料改为「规格文档」里的一行索引。
35
+
36
+ ## 3. 修复:会议与验证的"互斥"只做了单向
37
+
38
+ **怎么发现的**:画架构图时被迫把"会议与验证互斥"写成一句**明确的不变式**,
39
+ 再拿这句话去逐条对照代码 —— 发现 `startMeeting` 有守卫、`armNextVerify` 没有。
40
+
41
+ **缺陷**:`maybeQueueVerify` **直接**调用 `armNextVerify`,绕过了 `schedulePass` 里
42
+ "先看会议"的检查。因此成员在会议进行中回执 `propose_verify` 时,**第二个共识过程会真的并发启动**:
43
+
44
+ ```
45
+ 会议进行中 ──成员回执 propose_verify──▶ armNextVerify(无会议守卫)
46
+ └─▶ beginVerify + askVoters ← 并发启动!
47
+ ```
48
+
49
+ 后果:两个共识过程争夺同一批成员,会议的看门狗时钟被饿死,`schedulePass` 也只在会议结束后
50
+ 才会回到验证 —— 与文档承诺的"验证进行中会议请求会暂存,验证做完再补开"**不对称**。
51
+
52
+ **修复**:`armNextVerify` 在 `meeting` 非空时直接返回,提议**留在队列里**,
53
+ 会议收口后由下一次 `schedulePass` 启动(`if (meeting) {...return}` 在它之前,
54
+ 所以会议一结束就会走到它)。
55
+
56
+ **测试**:新增用例 10b"会议进行中提出的验证必须排队"——先开一个会并让它保持在进行中,
57
+ 再提议验证,断言 `verify === null` 且 `verifyQueue` 含该对象;会议结束后断言它**确实启动了**
58
+ (排队不能变成丢弃)。修复前该用例 **RED**,修复后 GREEN。`prompt-v5-integrity` 526 → **534 断言**。
59
+
60
+ **灵敏度探针**:新增 `verify-preempts-a-live-meeting`(删掉那条守卫,套件必须变红)。
61
+ **30 探针 / 0 盲点**。
62
+
63
+ **文档同步**:`实现方案.md` §14.1 补上"互斥必须双向成立"的说明,并指出
64
+ "进行中的验证/会议"的先后顺序**不可观测**(因为二者互斥),不应写成假装精确的优先级列表;
65
+ `AUDIT-CHECKLIST.md` 新增 §3「把不变式写成文档/图,再拿它去对代码」——
66
+ 把这次发现缺陷的手法固化成流程(尤其注意**成对出现的关系**:互斥、双向、唯一、幂等,
67
+ "只做一半"是最常见的形态)。
68
+
69
+ ## 4. 验收
70
+
71
+ | 套件 | 结果 |
72
+ |---|---|
73
+ | `prompt-v5-integrity.test.mjs` | **534 断言**(+8:会议与验证互斥) |
74
+ | `selfdrive-v5.mjs` | 75 断言 |
75
+ | `e2e-v5-round2.test.mjs` | 53 断言 |
76
+ | `audit-v5-sensitivity.mjs` | **30 探针 / 0 盲点** |
77
+ | `audit-v5-integrity.mjs` | **clean**(31 条理念门禁 + 3 项交付物门禁 + 语料校验) |
78
+ | `vibe-math-v5/架构图.md` 的 9 张 Mermaid | 全部经 `mermaid-cli` 实际渲染通过 |
79
+ | 其余回归 | 26 个套件全绿 |
80
+
81
+ ## 5. 升级
82
+
83
+ ```
84
+ npm i dsh-vibe-math@latest
85
+ ```
86
+
87
+ 无迁移。已在跑的研究所不受影响(这次改的是"何时允许启动一次验证",
88
+ 不改变已有状态的结构,也不改写成员章程)。