dsh-vibe-math 2.5.0 → 2.7.0
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.en.md +175 -369
- package/README.md +175 -370
- package/cordis.patch.yml +78 -22
- package/docs/AUDIT-CHECKLIST.md +3 -3
- package/docs/final-paper.md +172 -0
- package/docs/formal-verification.md +184 -29
- package/docs/math-computation.md +121 -0
- package/docs/release-notes/RELEASE-NOTES-2.6.0.md +268 -0
- package/docs/release-notes/RELEASE-NOTES-2.7.0.en.md +151 -0
- package/docs/release-notes/RELEASE-NOTES-2.7.0.md +115 -0
- package/docs/test-timing.md +25 -9
- package/installer.js +7 -4
- package/package.json +21 -3
- package/prompt-corpus-persona/persona-corpus.json +16 -16
- package/prompt-corpus-persona/persona-corpus.md +164 -52
- package/prompt-corpus-v2/formal-verify-v2.json +128 -92
- package/prompt-corpus-v2/formal-verify-v2.md +1574 -108
- package/prompt-corpus-v3/formal-verify-v3.json +137 -53
- package/prompt-corpus-v3/formal-verify-v3.md +1406 -100
- package/prompt-corpus-v4/formal-verify-v4.json +14 -14
- package/prompt-corpus-v4/formal-verify-v4.md +247 -14
- package/prompt-corpus-v5/prompt-corpus-v5.json +62 -62
- package/prompt-corpus-v5/prompt-corpus-v5.md +570 -3
- package/tests/audit-math-computation-contract.mjs +191 -0
- package/tests/audit-math-computation-parity.mjs +169 -0
- package/tests/audit-math-computation-sensitivity.mjs +231 -0
- package/tests/audit-persona-sensitivity.mjs +64 -11
- package/tests/audit-persona-surface.test.mjs +53 -16
- package/tests/audit-v5-integrity.mjs +14 -0
- package/tests/e2e-v5-round2.test.mjs +923 -3
- package/tests/formal-verify-v2.test.mjs +295 -6
- package/tests/formal-verify-v3.test.mjs +275 -4
- package/tests/formal-verify-v4.test.mjs +295 -6
- package/tests/formal-verify-v5.test.mjs +9 -1
- package/tests/helpers/math-computation-fake-seam.mjs +135 -0
- package/tests/math-computation-shared.test.mjs +504 -0
- package/tests/prompt-v5-integrity.test.mjs +14 -8
- package/tests/selfdrive-v5.mjs +55 -4
- package/vibe-math-v2/agent.cordis.yml +36 -14
- package/vibe-math-v2/math-computation.js +936 -0
- package/vibe-math-v2/math-engines.js +156 -0
- package/vibe-math-v2/vibe-math-v2.js +1653 -48
- package/vibe-math-v2//345/256/236/347/216/260/346/226/271/346/241/210.md +6 -0
- package/vibe-math-v3/agent.cordis.yml +30 -12
- package/vibe-math-v3/math-computation.js +936 -0
- package/vibe-math-v3/math-engines.js +156 -0
- package/vibe-math-v3/vibe-math-v3.js +1623 -53
- package/vibe-math-v3//345/256/236/347/216/260/346/226/271/346/241/210.md +6 -0
- package/vibe-math-v4/agent.cordis.yml +44 -8
- package/vibe-math-v4/math-computation.js +936 -0
- package/vibe-math-v4/math-engines.js +156 -0
- package/vibe-math-v4/vibe-math-v4.js +1592 -37
- package/vibe-math-v4//345/256/236/347/216/260/346/226/271/346/241/210.md +6 -0
- package/vibe-math-v5/agent.cordis.yml +46 -10
- package/vibe-math-v5/math-computation.js +936 -0
- package/vibe-math-v5/math-engines.js +156 -0
- package/vibe-math-v5/vibe-math-v5.js +2233 -42
- package/vibe-math-v5//345/256/236/347/216/260/346/226/271/346/241/210.md +153 -4
- package/vibe-math-v5//346/236/266/346/236/204/345/233/276.md +251 -0
package/README.md
CHANGED
|
@@ -20,6 +20,20 @@
|
|
|
20
20
|
|
|
21
21
|
---
|
|
22
22
|
|
|
23
|
+
## 🧭 导航:我想要……→ 从这里开始
|
|
24
|
+
|
|
25
|
+
- **马上开始用(第一次跑)** → [5 分钟上手](#-5-分钟上手)
|
|
26
|
+
- **四个预设选哪个** → [四个预设怎么选](#-四个预设怎么选)
|
|
27
|
+
- **四套架构的定位、流程与分工** → [架构图](#-架构图v2--v3--v4--v5) · [架构与分工(四套并列)](#-架构与分工四套并列)
|
|
28
|
+
- **新功能:最终论文(收口时自动产出)** → [功能特色](#-功能特色) · [完整契约](docs/final-paper.md)
|
|
29
|
+
- **Lean 形式化验证** → [Lean 形式化验证](#-lean-形式化验证四个架构共用可调开关) · [完整契约](docs/formal-verification.md)
|
|
30
|
+
- **目录里都有什么** → [目录结构](#-目录结构)
|
|
31
|
+
- **调参数** → [参数速查表](#-参数速查表)
|
|
32
|
+
- **断点续跑 / 中途干预** → [断点续跑 & 人工干预](#-断点续跑--人工干预两大硬性需求)
|
|
33
|
+
- **已知边界(有意简化)** → [已知边界](#-已知边界有意简化)
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
23
37
|
## 🧩 架构图(v2 + v3 + v4 + v5)
|
|
24
38
|
|
|
25
39
|
> 静态架构图;完整流程说明见 [docs/架构图.md](docs/架构图.md)(v1 历史架构图;v2 起目录布局已变更)与
|
|
@@ -93,126 +107,15 @@ flowchart TB
|
|
|
93
107
|
M --> RULE
|
|
94
108
|
```
|
|
95
109
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
| 职位 | 代号 | 表决权 | 职权 |
|
|
99
|
-
|---|---|---|---|
|
|
100
|
-
| **院士**(领头人) | `acad` | ✅ 一票,**与他人等重** | **组织与协调中心**:建立全所视图(`overview`)、把原问题拆解成任务并**分派**(`assign`)、设定优先级(`prioritize`)、召集并主持会议(`convene`)、督导进度(`nudge`)、调配临时工、对外汇报。**不能单方面定论**,也不能自我扩张编制。 |
|
|
101
|
-
| **常驻研究员** | `r-<n>` | ✅ 一票 | 在自己的方向上深入钻研;**可自主雇佣/解雇自己的临时工**;向院士汇报进展、接受其组织与分派(**有据理反对权**)。 |
|
|
102
|
-
| **临时工** | `t-<n>` | ❌ | 为特定任务临时雇入:可读/可想/可发言/可写自己的成果库/可认领或被分派任务;由**雇主或院士**解雇。代号永不复用。 |
|
|
103
|
-
| **所办**(主助手) | —— | ❌ | **不参与研究、不投票**。只汇报、把人的话翻译成工具调用,并代持平台要求的创建权(建所/增聘常驻研究员)。 |
|
|
104
|
-
|
|
105
|
-
**分工一句话**:**组织由院士负责,但判断属于每个人自己** —— 院士分派的是**工作**,不是**结论**。
|
|
106
|
-
|
|
107
|
-
#### 求真规则(V5 的核心)
|
|
108
|
-
|
|
109
|
-
一个对象进入 `Verified/` 必须**同时**满足:
|
|
110
|
-
|
|
111
|
-
1. 至少有 **m = min(`quorumCap`, 在册有表决权人数)** 名有表决权者投出**布尔概率值**;
|
|
112
|
-
2. 这些票**全部**是 `1`(绝对为真)或**全部**是 `0`(绝对为假)。
|
|
113
|
-
|
|
114
|
-
票是 `[0,1]` 的数值:**严格介于 0 与 1 之间 = 弃权/存疑**(不计入 m,但计入全组平均概率)。
|
|
115
|
-
**任何一张反向布尔票都会阻塞定论** —— 少数派无法靠别人弃权把结论推过去。
|
|
116
|
-
未达门槛的对象**留在原库**,并附上全组平均概率与完整辩论录,**不强行裁决**。
|
|
117
|
-
|
|
118
|
-
表决两段式:先【独立初评】(彼此不可见),未定论再进入【公开辩论】后重投,轮次上限 `verdictMaxRounds`。
|
|
119
|
-
`quorumMode: "all-unanimous"` 可切回 v4 的"全体一致"口径。
|
|
120
|
-
|
|
121
|
-
#### 运行机制
|
|
122
|
-
|
|
123
|
-
- **通信**:群聊(扇出给每位其他成员)、私信、只投给有表决权者;消息**逐收件人持久化**,
|
|
124
|
-
先落盘再投递,群聊按 `chatDigestMs` / `chatDigestMax` 合批摘要(私信/会议/表决不合批)。
|
|
125
|
-
一切所内通信都经框架中继(DSH 的邻接限制不允许成员之间直接发消息),但**署名始终是真实发送者**。
|
|
126
|
-
- **会议与验证互斥**(双向):验证进行中会议请求会**暂存**;会议进行中提出的验证会**排队**——
|
|
127
|
-
两个共识过程永不同时进行,避免互相饿死看门狗时钟。会议按**随机发言序**逐个收集意见,
|
|
128
|
-
收口时汇总表决并检查是否全体认为已解决。
|
|
129
|
-
- **任务板**:compare-and-set(改前必须读到最新 `expected_revision`)+ 依赖 DAG(认领前必须全部依赖已完成,
|
|
130
|
-
环检测拒绝坏依赖)+ 写范围重叠告警;owner 被解雇时任务自动收回。
|
|
131
|
-
- **雇佣 / 解雇**:院士与常驻研究员都可雇**自己的**临时工,配额按人(`maxTempPerMember`)与全所
|
|
132
|
-
(`maxTempTotal`)双限;解雇是**真实的**——取消在途回合、释放常驻子会话、收回任务、丢弃未投递邮件。
|
|
133
|
-
- **活性**:主驱动是**一次性活动等待**(`vibe_v5_wait`,不轮询);调度器按优先级推进
|
|
134
|
-
(进行中的会议/验证 → 队列中的验证 → 暂存会议 → 在办任务 → 加急邮件 → 群聊摘要 → 停滞自动开会 → 兜底心跳),
|
|
135
|
-
并发受 `maxParallel` 闸门限制;任务板的"推一把"按 `activityTimeoutMs` **节流**。
|
|
136
|
-
- **看门狗**:会议/验证超过 2×`activityTimeoutMs` 没有新发言/新票 → 放弃它并回到自组织;
|
|
137
|
-
心跳**每次唤醒后都重新武装**,所以调度器不会永久冻结。
|
|
138
|
-
- **上下文**:达 `compactThreshold`(%)或累计 `compactAfterRounds` 轮时要求成员把工作状态浓缩进
|
|
139
|
-
`Progress/`;**规章在 persona 里**,压缩后依然有效,不需要每轮重申。
|
|
140
|
-
- **停止**:**仅当全体有表决权者都认为原问题已解决**才结题(写 `Problems/conclusion.md`)。
|
|
141
|
-
|
|
142
|
-
#### 状态与持久化
|
|
143
|
-
|
|
144
|
-
研究所状态只写在**研究所目录下的加固 JSON** `State/<研究所>.v5state.json` 里:框架的副作用只是把 11 类事件
|
|
145
|
-
交给 `applyV5Event` 纯折叠成状态,再把整份快照**串行落盘**(每条序列化链只服务一个文件)。因此
|
|
146
|
-
|
|
147
|
-
- **零 token 成本**:这些事件**不进模型上下文**,不占成员的对话预算;
|
|
148
|
-
- **恢复走同一条代码路径**:跨进程重启与同进程 abort 后 resume 都靠"读前必 load",两条路径是同一段代码;
|
|
149
|
-
- v4 的 `State/*.json` 直写带来的"损坏静默覆盖 / 并发丢写 / 跨进程陈旧快照"这一整类问题在构造上被消除。
|
|
150
|
-
|
|
151
|
-
**v5 不再把研究所事件写进宿主会话日志**:DSH 的会话持久化遇到日志里不认识的事件类型会**拒绝加载整个会话**
|
|
152
|
-
(除非写入方标记 `ignorable: true`,而 `Session.append` 无法设置该字段),那会让**你自己的会话在下次恢复时打不开**。
|
|
153
|
-
除状态文件之外的文件(成员成果库、群聊、会议纪要、辩论录、编制镜像、任务板镜像)都是**人可读产物**,
|
|
154
|
-
手工改坏不会破坏研究所。
|
|
155
|
-
|
|
156
|
-
#### 提示词是怎么构成的
|
|
157
|
-
|
|
158
|
-
成员的"人设"(persona)承载**十节公共规章**(编制与同事、通用规章、资料库与 progress 格式、
|
|
159
|
-
组织与协调、表决规则、每轮节奏、雇佣解雇、任务板、上下文纪律、停止条件),在**入职时冻结**并随会话持久化;
|
|
160
|
-
每轮提示词只携带短小的**状态块**(我是谁 / 轮次 / m / 在册名单 / 我的任务 / 新到的消息)、**本轮问句**
|
|
161
|
-
和**回执契约**。回执契约里框架真正处理的每个字段都会出现并按职位裁剪
|
|
162
|
-
(临时工没有 `verdict`/`hire`/`fire`;非院士没有 `assign`/`prioritize`/`nudge`/`convene_meeting`)。
|
|
163
|
-
|
|
164
|
-
框架把"成员读到的文字"当作产品来保证:身份**显式传递、绝不猜测**;成员**先落盘进编制、再构造**它的入职
|
|
165
|
-
提示词;章程快照冻结在入职时,会话重建会框为 `【会话重建】` 而不是"刚入职";没有院士时不出现任何院士叙事;
|
|
166
|
-
消息框头按**真实来源**标注(所办分派 ≠ 院士分派;督办 ≠ 分派);框架反馈有独立发送者,
|
|
167
|
-
且**一次提示词只投递一条消息**。
|
|
168
|
-
|
|
169
|
-
#### 目录结构(研究所)
|
|
170
|
-
|
|
171
|
-
```
|
|
172
|
-
<会话工作区>/VibeMath/Projects/<项目>/Institutes/<研究所>/
|
|
173
|
-
├─ Institutes.md # 编制镜像(人读快照,勿手改)
|
|
174
|
-
├─ Problems/<id>.md # 原问题
|
|
175
|
-
├─ Problems/conclusion.md # 结题记录
|
|
176
|
-
├─ Members/<代号>/
|
|
177
|
-
│ ├─ Progress/progress.md # 研究日志(压缩后恢复状态的主要依据)
|
|
178
|
-
│ ├─ Propos/<id>.md # 命题
|
|
179
|
-
│ ├─ Methods/<id>.md # 方法 / 理论 / 工具
|
|
180
|
-
│ └─ Subproblems/<id>.md # 子问题
|
|
181
|
-
├─ Shared/
|
|
182
|
-
│ ├─ Chat/<日期>.md # 群聊记录
|
|
183
|
-
│ ├─ Meetings/<mt-id>.md # 会议纪要(含表决小节)
|
|
184
|
-
│ ├─ Debates/<对象>.md # 辩论录(各轮票与理由 + 平均概率)
|
|
185
|
-
│ ├─ TaskBoard.md # 任务板镜像
|
|
186
|
-
│ └─ State-of-institute.md # 成员对"是否已解决"的判断快照
|
|
187
|
-
├─ Verified/<类型>/<id>.md # 定论(只读;只有它能被当作已确立)
|
|
188
|
-
└─ State/README.md # 说明"这里的文件是镜像,请勿手改"
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
#### 工具面
|
|
192
|
-
|
|
193
|
-
| 谁 | 工具 |
|
|
194
|
-
|---|---|
|
|
195
|
-
| **所办 / 人** | `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` |
|
|
196
|
-
| **全体成员** | `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`(提议) |
|
|
197
|
-
| **院士**(另有 `academicianLeads` 开关) | `vibe_v5_overview`(全所视图)、`vibe_v5_assign`(分派,须写明理由与验收标准)、`vibe_v5_prioritize`、`vibe_v5_nudge` |
|
|
198
|
-
|
|
199
|
-
#### 与 v4 的关键差异
|
|
200
|
-
|
|
201
|
-
- **有领头人**:v4 无中央调度、一切靠讨论涌现;v5 在**所内**设有院士负责组织与分派
|
|
202
|
-
(**框架仍然绝不指派**——指派者是院士,同样受 m 票约束)。
|
|
203
|
-
- **求真门槛从"全体一致"改为"≥ m 一致"**(可切回 v4 口径)。
|
|
204
|
-
- **状态存于研究所目录下的加固 JSON** `State/<研究所>.v5state.json`(串行写、读前必 load):恢复就是"读之前先 load"(见上)。
|
|
205
|
-
- **三类职位 + 可雇用的临时工**:编制是可变的,雇佣/解雇是真实的可逆操作。
|
|
206
|
-
- **不引入任何 npm 实验包**:v5 是 preset 内的单个 `.js` 文件,零依赖。
|
|
207
|
-
- **会议与验证严格互斥**(双向排队)。
|
|
110
|
+
**一句话流水线**:所办(会话根/人)`configure → start` 建所 → **院士**(academician,组织与协调中心)拆解原问题并**分派**任务、定优先级、主持会议、督导进度;**常驻研究员**各自研究并持有表决权,**临时工**可按需雇入(无表决权、可被真实解雇)。**框架只做媒介,绝不指派任务**;一切结论都要 **≥ m = min(`quorumCap`, 在册有表决权人数) 张布尔票且全部同向**才写入 `Verified/`(反向票阻塞、弃权不计票但计入平均概率,未达门槛留库附平均概率);会议与验证**双向互斥**;状态写在研究所目录下的加固 JSON `State/<研究所>.v5state.json`(零 token 成本、串行写、读前必 load);**仅当全体有表决权者都认为原问题已解决**才结题。
|
|
208
111
|
|
|
209
|
-
|
|
210
|
-
[`vibe-math-v5/架构图.md`](vibe-math-v5/架构图.md)(全部细节图)。
|
|
112
|
+
> 职位与职权、求真规则细节、运行机制、状态与持久化、提示词构成、研究所目录、工具面、与 v4 的差异:见 [`vibe-math-v5/架构图.md`](vibe-math-v5/架构图.md) §13「从 README 移入的 v5 说明」(原文保留);参数见[参数速查表](#-参数速查表),最终论文见 [`docs/final-paper.md`](docs/final-paper.md)。
|
|
211
113
|
|
|
212
114
|
---
|
|
213
115
|
|
|
214
116
|
## ✨ 功能特色
|
|
215
117
|
|
|
118
|
+
- **最终论文(四个预设默认开启)**:收口时自动撰写一篇**只整理已有证据**的完整论文,且论文阶段发生在 run 被标记完成**之前**;产物在 `Paper/<id>/{paper.md,paper.tex,paper.pdf,paper.meta.json,paper.log.md}`。参数 `finalPaper`(默认 `true`)/`paperFormat`(默认 `both`)/`paperLanguage`(默认 `zh`)/`paperCompilePdf`(默认 `true`)(v4/v5 另有 `paperEditor`),手动 `/vN paper [lang=] [format=] [editor=] [force]`;PDF 需要宿主上有 LaTeX 引擎(中文优先 `xelatex`),否则仍交付 tex+md。完整契约与用法见 [`docs/final-paper.md`](docs/final-paper.md)。
|
|
216
119
|
- **多代理自动求解**:主代理把问题交给调度器,调度器派发 explorer / solver / verifier(v2/v3)与 **planner(规划代理,v3)**、**method-keeper(方法整理代理,v3)** 等子代理协同求解,**你无需逐节点手操**。
|
|
217
120
|
- **多代理交叉验证**:每个结论交给 ≥3 个「严苛审稿人」**独立审查 → 辩论(交流群)→ 裁决**(v3 默认**近共识裁决**:同侧且均值 ≥0.85/≤0.15 取均值,避免"0.9 vs 1"被误判成 0.5)。
|
|
218
121
|
- **论文式 Markdown 知识库(v3)**:问题清单(含问题间依赖、后生问题产生原因与计划)、研究日志、命题、方法库全部以 md 论文/研究报告式书写与续写(方向重派生时旧方向的日志自动归档保留);**只有 `Verified/` 与验证器判真/假的对象绝对可信**,其余 md(含方法库未验证断言)仅作经验参考。
|
|
@@ -242,96 +145,19 @@ flowchart TB
|
|
|
242
145
|
|
|
243
146
|
**它改变的不是"更严格一点",而是审查对象本身。** m 个代理一致认为"这是对的"仍然是**共识**——
|
|
244
147
|
排除不了共同误解;Lean 通过是**机器核对**。于是剩下的唯一不确定项缩小为一个人能有效审查的问题:
|
|
148
|
+
**Lean 代码里的定义 / 对象 / 条件 / 假设 / 结论,是否与命题原文完全一致(忠实性)?**
|
|
245
149
|
|
|
246
|
-
|
|
150
|
+
- **开关 `formalVerify`(四个架构同名,默认 `'off'`)**:`'off'` 是**真正的无操作**(提示词里不出现任何 Lean 内容、不写入任何形式化状态、验证流程与门禁完全不变;五个工具仍注册可用,persona 始终列出它们,否则这个开关不可发现、也无从打开);`'encourage'` **鼓励但不强制**(验证时按实现难度自行决定是否形式化,一旦 Lean 通过,审查重心转为忠实性,**不设门禁**);`'require'` **强制**——真/假结论必须满足「**Lean 已通过**」或「**显式记录了阻塞原因**」,否则本次裁定不生效(记为未定论、原因 `formal-required`、写入「形式化待办」)。相关参数:`leanCommand`(默认 `lean`)、`leanArgs`(配合 `lake env lean`)、`leanTimeoutMs`(默认 120s)。
|
|
247
151
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
| 审查对象 | 命题本身(推导是否正确) | **忠实性**:Lean 代码 ↔ 命题原文是否一致 |
|
|
251
|
-
| 结论强度 | 共识(可能共同出错) | 严格(内核已检查),前提是忠实性成立 |
|
|
252
|
-
| 副产品 | 无 | 可复用的 Lean 定义 / 引理库 |
|
|
152
|
+
- **⚠️ 忠实性缺陷 ≠ 命题为假(重要)**:Lean 通过只保证"这段代码过了内核",**不保证它说的就是命题想说的**。表决者逐条核对后发现 Lean 代码与命题原文不一致(写窄 / 写宽 / 换了对象 / 漏了条件)时:**不得投 0**(投 0 的含义是"该命题为假"——那会把"形式化不合格"记成"命题被证伪",v5 的全 0 一致规则下甚至写进 `Verified/` 标注**假**,用来求真的机制反而伪造出一个错误的否定结论);正确做法是投一个严格介于 0 与 1 之间的值(记为弃权)+ 用回执 `formal:{decision:'defect', note:'<具体偏差>'}` 记录偏差,框架随即**撤回这条证明的「已通过」状态**(降级为 `attempted`、删除 `Verified/Lean/<id>.lean`、宿主删不掉时改写为"已撤回"说明、写入「形式化待办」),`require` 档下本次裁定不定论(`encourage` 档没有门禁,不得声称框架会强制搁置);只有表决者**独立于这份 Lean 代码**也能确定命题为假(并能给出独立理由)时才投 0。
|
|
153
|
+
- **回执通道与三条硬要求**(不调用 Lean 工具的成员也能留下判断,`require` 档下必须留):回执字段 `"formal": {"target":"<对象id>", "decision":"used|blocked|defect", "file":"Formal/<对象id>.lean", "note":"难度判断/阻塞原因/具体偏差"}`;`decision='blocked'`/`'defect'` 时 **`note` 必填**(缺则整条拒绝),`used` 只把对象记为 `attempted`,`off` 档下该通道**失效**(否则 `off` 就不是真正的无操作)。另外三条:注入文本里的工具名一律**全称**(`<prefix>_lean_archive` 不是 `lean_archive`——缩写不是注册名);归档可复用定义/引理**前先跑通**,跑不通不许进库;**工具链缺失**(`LEAN_NOT_FOUND` 解析不到可执行文件 / `NO_SUBPROCESS` 宿主没有 subprocess 服务)时把代码写下来归档并在 `note` 写明"宿主无 Lean 工具链"——这算显式阻塞原因,门禁据此放行,不会因为装不了 Lean 而卡死。
|
|
253
154
|
|
|
254
|
-
|
|
155
|
+
- **归档位置**:`<VibeMath 根>/Formal/Lib|Proved/`(**跨项目**可复用定义与已证引理,各带 `Index.md` 索引,写新定义前先查这里);项目内 `Formal/<对象id>.lean` 是对象的工作文件(旁边有 `Index.md` 与 `require` 档的 `TODO.md`),`Verified/Lean/<对象id>.lean` 是**归档证明**(v5 在 `Projects/<项目>/Institutes/<所>/` 下)。
|
|
255
156
|
|
|
256
|
-
|
|
|
257
|
-
|
|
258
|
-
| **`'off'`(默认)** | **不额外进行任何要求。** 成员提示词里不出现任何 Lean 内容,不写入任何形式化状态,验证流程与门禁完全不变(是**真正的无操作**,有断言与探针守着)。三个工具仍注册可用(主动调用照常工作);主代理的 persona **始终**写着这三个工具与四个参数——否则这个开关就不可发现、"off" 也就无从打开 |
|
|
259
|
-
| `'encourage'` | **鼓励但不强制**:验证时先判断该对象的**实现难度**,能在可接受工作量内形式化就优先做;一旦 Lean 通过,审查重心转为**忠实性**。平时工作也鼓励把常用/可能复用的对象、假设、新定义随手形式化归档。**不设门禁** |
|
|
260
|
-
| `'require'` | **强制**:真/假结论必须满足「**Lean 已通过**」或「**显式记录了阻塞原因**」,否则本次裁定**不生效**——记为未定论(原因 `formal-required`)、写入「形式化待办」、群聊公告,对象留库待形式化后重新提议 |
|
|
261
|
-
|
|
262
|
-
> `require` 里的「显式记录阻塞原因」正是**"根据实现难度决定不做"**的落点:**决定权在代理,
|
|
263
|
-
> 但决定必须说出来、可审计**,不允许静默跳过。相关参数还有 `leanCommand`(默认 `lean`)、
|
|
264
|
-
> `leanArgs`(配合 `lake env lean`)、`leanTimeoutMs`(默认 120s)。
|
|
265
|
-
|
|
266
|
-
### ⚠️ 忠实性缺陷 ≠ 命题为假(重要)
|
|
267
|
-
|
|
268
|
-
Lean 通过只保证"这段代码过了内核",**不保证它说的就是命题想说的**。所以当表决者逐条核对后
|
|
269
|
-
发现 Lean 代码与命题原文不一致(写窄了 / 写宽了 / 换了对象 / 漏了条件)时:
|
|
270
|
-
|
|
271
|
-
- **不得投 0**。投 0 的含义是"**该命题为假**";一个写错的形式化会让框架把"形式化不合格"
|
|
272
|
-
记成"命题被证伪",在 v5 的全 0 一致规则下甚至会把命题写进 `Verified/` 标注**假**——
|
|
273
|
-
用来求真的机制反而**伪造出一个错误的否定结论**。
|
|
274
|
-
- 正确做法:给一个严格介于 0 与 1 之间的值(记为弃权)+ 用回执
|
|
275
|
-
`formal:{decision:'defect', note:'<具体偏差>'}` 记录偏差。框架随即**撤回这条证明的「已通过」状态**
|
|
276
|
-
(降级为 `attempted`;`Verified/Lean/<id>.lean` **删除**,宿主删不掉时改写为"已撤回"说明,
|
|
277
|
-
绝不把一个已撤回的证明留在大家找证明的位置;写入「形式化待办」),`require` 档下
|
|
278
|
-
**本次裁定不定论**(`encourage` 档没有门禁,不得声称框架会强制搁置——那里靠表决者弃权阻止定论);
|
|
279
|
-
修正形式化并重新跑通后再投票。
|
|
280
|
-
- 只有表决者**独立于这份 Lean 代码**也能确定命题为假(并能给出独立理由)时才投 0。
|
|
281
|
-
|
|
282
|
-
> **回执通道**(不调用 Lean 工具的成员也能留下判断,`require` 档下必须留):
|
|
283
|
-
> `"formal": {"target":"<对象id>", "decision":"used|blocked|defect", "file":"Formal/<对象id>.lean", "note":"难度判断/阻塞原因/具体偏差"}`。
|
|
284
|
-
> `decision='blocked'`/`'defect'` 时 **`note` 必填**(缺则整条拒绝);`used` 只把对象记为 `attempted`;
|
|
285
|
-
> `off` 档下这个通道**失效**(否则 `off` 就不是真正的无操作了)。
|
|
286
|
-
|
|
287
|
-
> 注入提示词的另外三条硬要求(契约 §6):工具名一律**全称**(`<prefix>lean_archive` 不是
|
|
288
|
-
> `lean_archive`——缩写不是注册名,代理照抄会调用一个不存在的工具);归档可复用定义/引理**前先跑通**,
|
|
289
|
-
> 跑不通不许进库;**工具链缺失**(`LEAN_NOT_FOUND` 解析不到可执行文件 / `NO_SUBPROCESS` 宿主没有
|
|
290
|
-
> subprocess 服务)时把代码写下来归档并在 `note` 写明"宿主无 Lean 工具链"——这算显式阻塞原因,
|
|
291
|
-
> 门禁据此放行,不会因为装不了 Lean 而卡死。
|
|
292
|
-
|
|
293
|
-
### 归档:形式化代码放哪里
|
|
157
|
+
- **五个工具(每个架构一套,前缀跟随各自命名)**:`<prefix>_lean_run` 在宿主 `subprocess` 服务上执行 Lean(`leanAsync=true` 时入队即返回 `{async:{jobId,state}}`,否则同步返回 `{ok, exitCode, ms, stdout, stderr}`),**绝不抛异常**(缺工具链 → `LEAN_NOT_FOUND`、超时 → `LEAN_TIMEOUT`、越界路径 → 拒绝);`<prefix>_lean_archive`:`kind='def'/'lemma'` 归档到**跨项目** `Formal/Lib|Proved`(同内容去重),`kind='proof'` 写 `Formal/<target>.lean` 并**只在作业 `settled(ok)` 时**写 `Verified/Lean/<target>.lean` 标记该对象为 Lean 通过,`kind='blocked'` 记录显式难度判断/阻塞原因(**原因必填**);`<prefix>_lean_lib` 重建并返回三处索引、逐对象状态与后台作业,**写新定义前先查重复用**;`<prefix>_lean_read` 取回归档原文(逐字复用,限 `Formal/Lib|Proved`、64KB);`<prefix>_lean_job` 查看/等待后台编译作业(只读)。例如 v5 是 `vibe_v5_lean_*`,v2/v3 是 `vibe_math_lean_*`,v4 是 `vibe_v4_lean_*`(各有 run / archive / lib / read / job 五个)。
|
|
158
|
+
- **边界(有意为之)**:框架**不内置 Lean**(不装工具链、不下载依赖;工具链缺失时优雅降级并如实记录);框架**不判断忠实性**(那是代理/人审查并投票的对象,框架只负责把审查焦点**换成**忠实性);**Lean 通过 ≠ 命题为真**——它只表示"这段形式化代码通过了内核检查"。
|
|
294
159
|
|
|
295
|
-
|
|
296
|
-
<VibeMath 根>/
|
|
297
|
-
├─ Formal/ # ★ 跨项目可复用库(四个架构共用)
|
|
298
|
-
│ ├─ Lib/<name>.lean # 可复用定义 / 对象 / 假设(def / structure / notation)
|
|
299
|
-
│ ├─ Lib/Index.md # 名称 → 文件 → 类别 → 摘要(写新定义前先查这里)
|
|
300
|
-
│ ├─ Proved/<name>.lean # 已成立的 Lean 命题 / 引理(机器已核对)
|
|
301
|
-
│ └─ Proved/Index.md
|
|
302
|
-
└─ Projects/<项目>/ # (v5 为 Projects/<项目>/Institutes/<所>/)
|
|
303
|
-
├─ Formal/
|
|
304
|
-
│ ├─ <对象id>.lean # 该对象的形式化工作文件
|
|
305
|
-
│ ├─ Index.md # 对象 → 状态 → 文件 → 归档证明 → 运行结果 → 难度判断
|
|
306
|
-
│ └─ TODO.md # require 模式下的「形式化待办」
|
|
307
|
-
└─ Verified/
|
|
308
|
-
├─ <原有定论卡片>
|
|
309
|
-
└─ Lean/<对象id>.lean # ★ 归档证明:该定论对象对应的形式化代码
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
### 工具(每个架构三个,前缀跟随各自命名)
|
|
313
|
-
|
|
314
|
-
| 工具 | 作用 |
|
|
315
|
-
|---|---|
|
|
316
|
-
| `<prefix>_lean_run` | 在宿主 `subprocess` 服务上执行 Lean,返回 `{ok, exitCode, ms, stdout, stderr}`。**绝不抛异常**:缺工具链 → `LEAN_NOT_FOUND`,超时 → `LEAN_TIMEOUT`,路径越界 → 拒绝 |
|
|
317
|
-
| `<prefix>_lean_archive` | `kind='def'/'lemma'` → 归档到**跨项目** `Formal/Lib` 或 `Formal/Proved`;`kind='proof'` → 写 `Formal/<target>.lean`,运行通过则同时写 **`Verified/Lean/<target>.lean`** 并标记该对象为 Lean 通过;`kind='blocked'` → 记录显式难度判断/阻塞原因(**原因必填**) |
|
|
318
|
-
| `<prefix>_lean_lib` | 重建并返回三处索引与逐对象形式化状态——**写新定义前先查重、直接复用** |
|
|
319
|
-
|
|
320
|
-
例如 v5 是 `vibe_v5_lean_run` / `vibe_v5_lean_archive` / `vibe_v5_lean_lib`,v2/v3 是 `vibe_math_lean_*`,v4 是 `vibe_v4_lean_*`。
|
|
321
|
-
|
|
322
|
-
**边界(有意为之)**:框架**不内置 Lean**(不装工具链、不下载依赖;工具链缺失时优雅降级并如实记录);
|
|
323
|
-
框架**不判断忠实性**(那是代理/人审查并投票的对象,框架只负责把审查焦点**换成**忠实性);
|
|
324
|
-
**Lean 通过 ≠ 命题为真**——它只表示"这段形式化代码通过了内核检查"。
|
|
325
|
-
|
|
326
|
-
完整契约(参数、路径、状态迁移、提示词语义、门禁位置、索引格式、测试要求)见
|
|
327
|
-
[`docs/formal-verification.md`](docs/formal-verification.md)。
|
|
328
|
-
|
|
329
|
-
> **四个预设的 persona(主代理收到的提示词)都完整列出了上面三个工具与四个参数**,
|
|
330
|
-
> 并且 `prefix` 与 `text` 两个块逐行一致(只允许第 0 行不同)。这一层由
|
|
331
|
-
> [`audit-persona-surface.test.mjs`](tests/audit-persona-surface.test.mjs) 与
|
|
332
|
-
> [`audit-persona-sensitivity.mjs`](tests/audit-persona-sensitivity.mjs) 守护——加入本特性时正是
|
|
333
|
-
> 在四个预设里发现了"工具已注册、persona 从未列出"的缺陷(同批还发现 persona 少列了两条
|
|
334
|
-
> 增删常驻研究员的工具、`/v4`/`/v5` 的子命令列表与实现不一致;详见随包发布说明)。
|
|
160
|
+
完整契约(参数、路径、状态迁移、提示词语义、门禁位置、索引格式、测试要求)见 [`docs/formal-verification.md`](docs/formal-verification.md)。四个预设的 persona(主代理收到的提示词)都完整列出了这五个工具与八个参数,并且 `prefix` 与 `text` 两个块逐行一致(只允许第 0 行不同);这一层由 [`audit-persona-surface.test.mjs`](tests/audit-persona-surface.test.mjs) 与 [`audit-persona-sensitivity.mjs`](tests/audit-persona-sensitivity.mjs) 守护——加入本特性时正是在四个预设里发现了"工具已注册、persona 从未列出"的缺陷(详见随包发布说明)。
|
|
335
161
|
|
|
336
162
|
---
|
|
337
163
|
|
|
@@ -425,125 +251,80 @@ dsh plugin --profile <你的 profile> add github:ChongCyrus/Vibe-Mathematics
|
|
|
425
251
|
|
|
426
252
|
---
|
|
427
253
|
|
|
428
|
-
## 🧠
|
|
254
|
+
## 🧠 架构与分工(四套并列)
|
|
429
255
|
|
|
430
|
-
|
|
256
|
+
### V2(概率驱动 · 经典)
|
|
431
257
|
|
|
432
|
-
|
|
433
|
-
|---|---|---|
|
|
434
|
-
| **主代理** | LLM(会话里的那个助手) | **自然语言接口 + 汇报者 + 助手**。它**自己不求解、不调度**,只负责:把你的话翻译成 `vibe_math_*` 工具调用、汇报进展、问答式配置参数、执行调控命令。 |
|
|
435
|
-
| **调度器** | 插件代码(非模型) | 唯一主控:维护 md 知识库索引、构造状态简报、**校验并执行规划代理的计划**、写文件、推进状态机。**硬约束(并发/幂等/已验证不再调度/写所有权)由代码强制**。 |
|
|
436
|
-
| **Planner(规划代理)** 🆕 | 子代理 | 每次准备派发时,读取状态简报(问题+依赖+存活率、可验证对象、活跃代理、并发预算、可用方法、上次计划结果),**自主选择最优调度方案,一次安排接下来 N 步**(spawn/continue/interrupt/promote/verify/method-keep/wait)。输出 JSON 计划,由调度器校验后执行;失败自动回退启发式。 |
|
|
437
|
-
| **Explorer 子代理** | 子代理 | 元认知头脑风暴:约束分解、边界测试、相似问题映射,把问题拆成多个「大相径庭」的求解方向(全死路则重派生)。开工前先查 `Methods/` 方法库。 |
|
|
438
|
-
| **Solver 子代理** | 子代理 | 每个方向一个专属求解器,**同一会话内多轮迭代**,产出引理(含证明)、子路线、存活概率、完整解法,并**上报 `methods_used` 与 `new_inventions`**(本轮回新发明的方法/工具/思想)。 |
|
|
439
|
-
| **Verifier 子代理** | 子代理 | 每个验证对象 ≥3 个独立「严苛审稿人」,独立审查 → 辩论(交流群)→ **近共识裁决**(同侧且均值 ≥0.85/≤0.15 取均值,否则 flat/forced)。 |
|
|
440
|
-
| **Method Keeper(方法整理代理)** 🆕 | 子代理 | 定期消化近期工作与新发明上报,**提炼新方法卡、合并碎片、完善体系结构(上级体系/子方法)、维护可信断言**,把求解中发明的理论/框架/工具/方法/思想沉淀进 `Methods/` 通用理论发明库。 |
|
|
258
|
+
框架 = **主代理 + 代码调度器 + explorer / solver / verifier 三类子代理**。调度器是唯一主控与唯一文件写者(子代理只返回结构化 JSON,从不写文件),按「正确概率 + 价值/关键性 + 优先级」由**代码启发式**决定下一步;每个验证对象交给 ≥3 个独立「严苛审稿人」审查 → 辩论 → 裁决(解法/证明达概率 `1` 即收口,`never` 永不调度)。**选它**:偏好结构化 JSON(`qs.json` / `Propos/`)与可预期、不依赖规划代理的确定性调度。
|
|
441
259
|
|
|
442
|
-
>
|
|
260
|
+
> 一句话分工:**主代理负责"和人对话",调度器负责"执行与守界",子代理负责"动脑"。**
|
|
443
261
|
|
|
444
|
-
###
|
|
262
|
+
### V3(论文式 md + 规划代理 + 方法库)· 经典
|
|
445
263
|
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
| 协调机制 | 消息 + 会议 | 消息 + 会议(与验证严格互斥)+ **compare-and-set 任务板** |
|
|
452
|
-
| 编制 | 常驻,可增开/关闭 | **可增减**:常驻研究员由所办批准增聘;临时工由院士/研究员自主雇佣解雇 |
|
|
453
|
-
| 状态 | `State/*.json` 直写 | **`State/<研究所>.v5state.json` 加固 JSON**(零 token 成本、串行写、读前必 load) |
|
|
264
|
+
框架 = **主代理 + 代码调度器 + 规划代理 + explorer / solver / verifier / method-keeper 四类子代理**。每次准备派发时,**规划代理**读取状态简报(问题依赖、存活率、可验证对象、并发预算、上次计划结果)**自主制定接下来 N 步计划**,由调度器校验后执行(失败自动回退启发式);求解中发明的理论/框架/工具/方法/思想经 `methods_used`/`new_inventions` 上报,由 **Method Keeper** 提炼新方法卡并沉淀进 `Methods/` 通用理论发明库。**选它**:偏好论文式 md 知识库、希望调度更灵活、并想要可体系化、跨项目复用的方法库。
|
|
265
|
+
|
|
266
|
+
> 一句话分工:**主代理负责"和人对话",规划代理负责"定计划",调度器负责"执行与守界",子代理负责"动脑",Method Keeper 负责"把发明沉淀成理论"。**
|
|
267
|
+
|
|
268
|
+
### V4(常驻自组织 · 实验)
|
|
454
269
|
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
270
|
+
主体是 **N 个持久化常驻子代理**(continuable):**没有中央调度,也没有领头人**——任务安排靠它们互相**留言 + 开会**自行涌现(框架只做消息总线/会议/任务板,绝不指派);各自沉淀并**按常驻 id 归属**自己的 `Progress/Propos/Methods/Subproblems` 库,可互相阅读;验证**仅当全体常驻一致(真 或 假)**才写入 `Verified/`,否则留库附概率;上下文达阈值自动 `/compact`;**仅当全体一致认为原问题已解决**才停止(`vibe_v4_resume` 可断点续跑)。**选它**:想要完全自组织、能接受"全体一致才定论"的严格门槛。
|
|
271
|
+
|
|
272
|
+
### V5(研究所体系 · 实验 · 最新)
|
|
273
|
+
|
|
274
|
+
把 v4 的常驻升级为一座**研究所**:**院士**(领头人 / 组织与协调中心:拆解、**分派**、定优先级、主持会议、督导进度)+ **常驻研究员**(有表决权,可自主雇佣/解雇自己的临时工)+ **临时工**(无表决权);**框架仍然只做中继、任务板、会议与计数,绝不指派任务**。定论门槛为 **≥ m = min(`quorumCap`, 在册有表决权人数) 票布尔一致**(反向票阻塞、弃权不计票但计入平均概率、未达门槛留库附平均概率);状态写在 `State/<研究所>.v5state.json`(零 token 成本);会议与验证严格互斥。**选它**:想要"有组织的自组织"、可增减的编制与可调门槛。
|
|
275
|
+
|
|
276
|
+
v5 的完整架构(成员生命周期、一轮时序、共识状态机、会议流程、调度优先级、状态折叠、提示词构成、任务板、职权矩阵)见 [`vibe-math-v5/架构图.md`](vibe-math-v5/架构图.md);文字规格见 [`vibe-math-v5/实现方案.md`](vibe-math-v5/实现方案.md)。
|
|
458
277
|
|
|
459
278
|
---
|
|
460
279
|
|
|
461
280
|
|
|
462
281
|
## 📁 目录结构
|
|
463
282
|
|
|
283
|
+
> 只列**顶层与高价值路径**;每个文件的完整语义见各预设的 `实现方案.md`([v2](vibe-math-v2/实现方案.md) · [v3](vibe-math-v3/实现方案.md) · [v4](vibe-math-v4/实现方案.md) · [v5](vibe-math-v5/实现方案.md))与 [`vibe-math-v5/架构图.md`](vibe-math-v5/架构图.md)。
|
|
284
|
+
|
|
464
285
|
### v2(概率驱动 · 经典)
|
|
465
286
|
|
|
466
287
|
```
|
|
467
|
-
|
|
468
|
-
├─
|
|
469
|
-
├─
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
├─ Propos/<分类>_Propos.json # 命题库:概述/布尔估计/细类型/证明·证伪列表/优先级/价值·关键性/progress
|
|
474
|
-
├─ Reliable/ # 可信参考文献(只读,用户放入)
|
|
475
|
-
├─ Verified/ # 定论事实索引(布尔估计=0/1 的命题)
|
|
476
|
-
├─ Verification_logs/ # 每轮验证的辩论记录(审计用)
|
|
477
|
-
├─ Progress_Logs/ # 定期进度报告 report.json
|
|
478
|
-
└─ VibeMath_State/ # 调度器私有持久状态(断点恢复用)
|
|
288
|
+
<VibeMath>/Projects/<项目>/
|
|
289
|
+
├─ qs/qs.json # 问题清单(概述/已解决/解法+正确概率/优先级)
|
|
290
|
+
├─ Propos/<分类>_Propos.json # 命题库(布尔估计/证明·证伪/价值·关键性)
|
|
291
|
+
├─ Verified/ # 定论事实索引
|
|
292
|
+
├─ Reliable/ # 可信参考文献(只读,用户放入)
|
|
293
|
+
└─ VibeMath_State/ # 调度器私有持久状态(断点恢复用)
|
|
479
294
|
```
|
|
480
295
|
|
|
481
296
|
### v3(论文式 md + 规划代理 + 方法库)· 经典
|
|
482
297
|
|
|
483
298
|
```
|
|
484
|
-
|
|
485
|
-
├─ Methods/
|
|
486
|
-
├─ Formal/
|
|
487
|
-
├─ current.<会话id>.json # 每会话当前项目(多会话并行互不覆盖)
|
|
488
|
-
├─ vibe_math_setting.json # (可选,全局回退)默认参数 JSONC,含注释
|
|
299
|
+
<VibeMath>/
|
|
300
|
+
├─ Methods/ # 【全局】跨项目通用理论发明库(晋升自项目级)
|
|
301
|
+
├─ Formal/{Lib,Proved}/ # 跨项目可复用定义 / 已证引理(Lean)
|
|
489
302
|
└─ Projects/<项目>/
|
|
490
|
-
├─
|
|
491
|
-
├─
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
├─ Progress/<id>/<方向id>.md # 每方向一个独立文件(代理自组织直接写,方向间无并发冲突)
|
|
495
|
-
├─ Propos/<分类>/<id>.md # 命题库:每命题一个 md(陈述/证明尝试/证伪尝试,软规范锚点 + 自由叙述)
|
|
496
|
-
├─ Methods/<id>.md # 【通用理论发明库】方法卡:理论体系/框架/工具/方法/思想(含应用记录/改进历史/体系层级)
|
|
497
|
-
├─ Verified/命题/<id>.md # 绝对可信:调度器生成的已验证命题卡(只读)
|
|
498
|
-
├─ Verified/问题/<id>.md # 绝对可信:已解决问题的完整可信解法卡(只读)
|
|
499
|
-
├─ Reliable/ # 可信参考文献(只读,用户放入)
|
|
500
|
-
├─ Notes/ # 自由笔记(不参与调度)
|
|
501
|
-
├─ Logs/Verification/ # 每轮验证的辩论记录(审计用)
|
|
502
|
-
├─ Logs/Plans/ # 每次调度计划 + 执行结果(规划学习闭环)
|
|
503
|
-
├─ Logs/报告.md # 论文式人读进度报告
|
|
504
|
-
└─ State/ # 调度器私有持久状态(agents/tasks/plans/verifier_accuracy/index/项目锁/进程纪元)
|
|
303
|
+
├─ Problems/ Progress/ Propos/ Methods/ # 论文式 md 知识库(软规范锚点 + 自由叙述)
|
|
304
|
+
├─ Verified/{命题,问题}/ # 绝对可信(只读)
|
|
305
|
+
├─ Logs/{Verification,Plans}/ Logs/报告.md # 辩论录 / 调度计划 / 论文式进度报告
|
|
306
|
+
└─ State/ # 索引、项目锁、进程纪元
|
|
505
307
|
```
|
|
506
308
|
|
|
507
|
-
|
|
508
|
-
**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` 上报给调度器。
|
|
509
|
-
|
|
510
|
-
### v5(研究所体系 · 实验)
|
|
309
|
+
### v4 / v5(常驻自组织 / 研究所体系 · 实验)
|
|
511
310
|
|
|
512
311
|
```
|
|
513
|
-
|
|
514
|
-
├─
|
|
515
|
-
|
|
516
|
-
├─
|
|
517
|
-
├─
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
│ ├─ Methods/<id>.md # 方法 / 理论 / 工具(含定义记号/应用记录/改进历史)
|
|
521
|
-
│ └─ Subproblems/<id>.md # 子问题
|
|
522
|
-
├─ Shared/
|
|
523
|
-
│ ├─ Chat/<日期>.md # 群聊记录(含建所/雇佣/解雇/会议/表决/结题公告)
|
|
524
|
-
│ ├─ Meetings/<mt-id>.md # 会议纪要(各成员发言 + 表决小节)
|
|
525
|
-
│ ├─ Debates/<对象>.md # 辩论录(各轮票与理由 + 全组平均概率)
|
|
526
|
-
│ ├─ TaskBoard.md # 任务板镜像
|
|
527
|
-
│ └─ State-of-institute.md # 成员对"是否已解决"的判断快照
|
|
528
|
-
├─ Verified/<类型>/<id>.md # 定论(只读;只有它能被当作已确立)
|
|
529
|
-
└─ State/
|
|
530
|
-
├─ README.md # 说明"这里的文件是镜像,请勿手改"
|
|
531
|
-
└─ <研究所>.v5state.json # 权威状态(加固 JSON、串行写、读前必 load)
|
|
312
|
+
<VibeMath>/Projects/<项目>/
|
|
313
|
+
├─ Progress|Propos|Methods|Subproblems/<常驻id>/ # v4:按常驻 id 归属
|
|
314
|
+
└─ Institutes/<研究所>/ # v5
|
|
315
|
+
├─ Members/<代号>/{Progress,Propos,Methods,Subproblems}/
|
|
316
|
+
├─ Shared/{Chat,Meetings,Debates}/ Shared/TaskBoard.md Institutes.md
|
|
317
|
+
├─ Verified/<类型>/<id>.md # 定论(只读)
|
|
318
|
+
└─ State/<研究所>.v5state.json # ★ 权威状态(加固 JSON、串行写、读前必 load)
|
|
532
319
|
```
|
|
533
320
|
|
|
534
|
-
|
|
535
|
-
> (**归档证明**),以及**跨项目**的 `<VibeMath根>/Formal/{Lib,Proved}/`(可复用定义与已证引理)——详见
|
|
536
|
-
> 上方「Lean 形式化验证」一节。
|
|
537
|
-
|
|
538
|
-
**v5 铁律**:① 权威状态只写在 `State/<研究所>.v5state.json`(加固 JSON、串行写、读前必 load)里,
|
|
539
|
-
上表中其余文件都只是**镜像/工作区**,手工改坏不会破坏研究所;
|
|
540
|
-
② 成员**只写自己的库**(`Members/<自己的代号>/`),但可以读任何人的库;
|
|
541
|
-
③ 只有 `Verified/` 与标注"已验证·真/假"的卡片**绝对可信**,其余(含 `Methods/` 里的未验证断言)只是经验参考,
|
|
542
|
-
引用必须注明"未验证";④ 入库必须写明**价值程度 / 动机用途计划 / 自己的概率估计**三项,缺一不可。
|
|
321
|
+
**铁律(四套)**:v2/v3 的调度器是**唯一文件写者**(v3 另支持代理直接写 md,靠 `vibe_math_claim_write`/`vibe_math_release_write` 写锁保证同一文件同一时刻只有一个写者);只有 `Verified/` 与标注"已验证·真/假"的卡片**绝对可信**,其余 md(含 `Methods/` 里未验证的断言)只是经验参考;v5 的权威状态只写在 `State/<研究所>.v5state.json`,上面其余文件都只是**镜像/工作区**(手工改坏不会破坏研究所),成员**只写自己的库**、入库必须写明**价值程度 / 动机用途计划 / 自己的概率估计**。启用 Lean 时另有本所 `Formal/`(工作文件 + 索引 + 形式化待办)与 `Verified/Lean/`(归档证明),以及**跨项目**的 `<VibeMath根>/Formal/{Lib,Proved}/`——详见上方「Lean 形式化验证」一节。
|
|
543
322
|
|
|
544
323
|
---
|
|
545
324
|
|
|
546
|
-
## ⚡
|
|
325
|
+
## ⚡ 5 分钟上手
|
|
326
|
+
|
|
327
|
+
> 一条主线:**说人话启动 → 随时问进度 →(可选)调参 / 干预 → 收尾**。收口时四个预设会**默认自动产出一篇最终论文**(`Paper/<id>/`,见上「功能特色」与 [`docs/final-paper.md`](docs/final-paper.md))。下面三种用法任选,不必都读。
|
|
547
328
|
|
|
548
329
|
### 方式 A:直接对话(推荐,最省事)
|
|
549
330
|
|
|
@@ -589,11 +370,9 @@ v5 的完整架构(含成员生命周期、一轮时序、共识状态机、
|
|
|
589
370
|
|
|
590
371
|
斜杠命令(与工具等价):`/vibe start|resume|pause|abort|status|report|mode <auto|manual>|setup|save|template [global|project]|add <id> <desc>|add-proposition <id> <概述>|list-propositions|project [list|new <name>|<name>]|decisions|agents`(v3 另有 `methods|index|plan|lock`)
|
|
591
372
|
|
|
592
|
-
|
|
373
|
+
### 🎓 让主代理替你干活(不用记命令)
|
|
593
374
|
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
### 1. 自然语言驱动(不用记命令)
|
|
375
|
+
#### 1. 自然语言驱动(不用记命令)
|
|
597
376
|
|
|
598
377
|
主代理的作用就是当你的「翻译官」。你只需描述**目标**,它会自己选择并调用工具:
|
|
599
378
|
|
|
@@ -606,7 +385,7 @@ v5 的完整架构(含成员生命周期、一轮时序、共识状态机、
|
|
|
606
385
|
| “给 q1 的某个求解方向换个思路(比如改成构造性证明)” | `list_agents` 找到 childId → `message_agent` 注入新指令 |
|
|
607
386
|
| “中断某个卡住的子代理” | `interrupt_agent` |
|
|
608
387
|
|
|
609
|
-
|
|
388
|
+
#### 2. 问答式参数配置(/vibe setup)
|
|
610
389
|
|
|
611
390
|
你甚至不用记参数名。说:
|
|
612
391
|
|
|
@@ -620,7 +399,7 @@ v5 的完整架构(含成员生命周期、一轮时序、共识状态机、
|
|
|
620
399
|
|
|
621
400
|
也可以直接跑命令:`/vibe setup`(看 schema)→ 跟主代理说你要改哪些 → `/vibe save`(存默认)。
|
|
622
401
|
|
|
623
|
-
|
|
402
|
+
#### 3. 配置文件(vibe_math_setting.json)
|
|
624
403
|
|
|
625
404
|
- **生成模板**:`/vibe template`(生成到工作区)或 `/vibe template project`(生成到当前项目)——
|
|
626
405
|
会产出一份**带 `//` 注释、逐项中文说明**的 JSON 模板,你手改后重启/resume 即生效。
|
|
@@ -628,9 +407,7 @@ v5 的完整架构(含成员生命周期、一轮时序、共识状态机、
|
|
|
628
407
|
- **唯一持久化来源**:该文件是参数的**唯一持久化层**(项目级优先 → 缺失时回退全局 `<工作区>/VibeMath/vibe_math_setting.json` → 内置默认)。
|
|
629
408
|
`vibe_math_set_params` / `set_mode` 会**立即写回**项目级文件并持久化,无需再手动 save。
|
|
630
409
|
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
## 🌱 新手示例流程(以“证明 √2 是无理数”为例)
|
|
410
|
+
### 🌱 完整示例:证明 √2 是无理数
|
|
634
411
|
|
|
635
412
|
**Step 1 — 用一句话启动**
|
|
636
413
|
|
|
@@ -678,9 +455,11 @@ v5 的完整架构(含成员生命周期、一轮时序、共识状态机、
|
|
|
678
455
|
|
|
679
456
|
> v2 不写 CSV:已解决问题就在 `qs/qs.json` 里,`Verified/<分类>_Verified.json` 是定论事实索引(解法 `正确概率 = 1` → 问题收口;证明/证伪 `正确概率 = 1` → 命题布尔估计 = 1/0)。
|
|
680
457
|
|
|
681
|
-
|
|
458
|
+
**Step 6 — 收口时自动产出最终论文(默认开启)**
|
|
459
|
+
|
|
460
|
+
四个预设默认 `finalPaper=true`:论文阶段在各个收口信号命中后、**run 被标记完成之前**启动(v2/v3 由专职「论文撰写」子代理整理已有证据,v4/v5 由团队合写 → 交叉互审 → 定稿代表定稿并取得一致认同)。产物在 `Paper/<id>/{paper.md,paper.tex,paper.pdf,paper.meta.json,paper.log.md}`:`paper.tex` / `paper.pdf` 只在 `paperFormat` 含 tex 且宿主检测到 LaTeX 引擎时产出(中文优先 `xelatex`;没有引擎就只交 md/tex,不阻塞收尾)。手动触发用 `/vibe paper`(v2/v3)、`/v4 paper`、`/v5 paper`,可带 `lang=` / `format=` / `editor=` / `force`;完整契约见 [`docs/final-paper.md`](docs/final-paper.md)。
|
|
682
461
|
|
|
683
|
-
|
|
462
|
+
### 🖼️ 实际使用示例(长截图)
|
|
684
463
|
|
|
685
464
|
> 截图很长,这里默认**折叠**:点击下方「展开」才加载整张长图,避免它占满页面、遮挡前后文字。
|
|
686
465
|
|
|
@@ -695,45 +474,84 @@ v5 的完整架构(含成员生命周期、一轮时序、共识状态机、
|
|
|
695
474
|
|
|
696
475
|
## ⚙️ 参数速查表
|
|
697
476
|
|
|
698
|
-
###
|
|
477
|
+
### 共用参数(被 ≥2 个预设接受)
|
|
699
478
|
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
|
704
|
-
|
|
705
|
-
| `
|
|
706
|
-
| `
|
|
707
|
-
| `
|
|
708
|
-
| `
|
|
709
|
-
| `
|
|
710
|
-
| `
|
|
711
|
-
| `
|
|
712
|
-
| `
|
|
713
|
-
| `
|
|
714
|
-
| `
|
|
715
|
-
| `
|
|
716
|
-
| `
|
|
717
|
-
| `
|
|
718
|
-
| `
|
|
719
|
-
| `
|
|
720
|
-
| `
|
|
721
|
-
| `
|
|
722
|
-
| `
|
|
723
|
-
| `
|
|
724
|
-
| `
|
|
725
|
-
| `
|
|
726
|
-
| `
|
|
727
|
-
| `
|
|
728
|
-
| `
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
479
|
+
> 每个预设的**完整参数集 = 本表「适用」列含该预设的每一行 ∪ 该预设的专属参数表**(v2 没有专属参数)。
|
|
480
|
+
> 参数细节与门禁位置另见 [`docs/formal-verification.md`](docs/formal-verification.md) 与 [`docs/final-paper.md`](docs/final-paper.md)。
|
|
481
|
+
|
|
482
|
+
| 参数 | 默认 | 适用 | 说明(含各预设差异) |
|
|
483
|
+
|---|---|---|---|
|
|
484
|
+
| `mode` | `auto` | v2·v3 | `auto` / `manual`(manual 在关键节点挂起决策等你 approve/reject/override) |
|
|
485
|
+
| `maxParallelThreshold` | 4 | v2·v3 | 全局最大并发子代理轮数(新派发前须 active < 阈值) |
|
|
486
|
+
| `solverMaxRounds` | 3 | v2·v3 | 每个求解方向最大迭代轮数(agent_self_iteration 上限) |
|
|
487
|
+
| `directionsPerSolver` | 1 | v2·v3 | 每个 solver 提示词可见的方向总数(1 = 只看自己方向、互不干扰;N>1 = 自己 + 最多 N-1 个其他活跃方向摘要) |
|
|
488
|
+
| `verifierCount` | 3 | v2·v3 | 每个验证对象的独立验证器数量 |
|
|
489
|
+
| `debateMaxRounds` | 5 | v2·v3 | 验证辩论(交流群)最大轮数 |
|
|
490
|
+
| `verdictMode` | v2 `flat`;v3 `forced` | v2·v3 | **默认按预设不同。** v2 `flat` = 取各验证者报告概率的**等权平均**(不一致时不再一律判 0.5);v2 `forced` = 强制裁决(按历史准确率+严谨性加权;准确率按模型追踪,且只在对象此后获得布尔裁决时计分)。v3 `forced` = 先做**近共识判定**(全部结果同侧且均值 ≥0.85/≤0.15 取均值——先于模式生效,所以 0.9 vs 1 在两种模式下都得到 ≈0.95),否则取各验证者概率的**等权平均**(不再按准确率加权;严格的 1/0 仍以绝对票生效),`flat` 则判 `0.5`(不一致即不确定) |
|
|
491
|
+
| `reportMode` | `file` | v2·v3 | `file` = 写报告文件 / `push` = 推送主代理汇报 / `both` |
|
|
492
|
+
| `promoteValueThreshold` | 0.7 | v2·v3 | Propos 中「价值/关键性」≥ 该值且未决(0,1) 的命题自动加入 qs.json |
|
|
493
|
+
| `priorityAdjust` | `none` | v2·v3 | `none` / `deadend-deprioritize`(全死路降优先级)/ `survival-map`(按存活率重算) |
|
|
494
|
+
| `proposPriorityAdjust` | `none` | v2·v3 | 命题优先级动态调整:`none` / `progress-graded`(按定论接近度+证明/证伪材料量重算,越接近定论越优先验证) |
|
|
495
|
+
| `provider` / `model` | 空 | 四套 | 模型路由(空 = 继承根代理)。**各预设语义**:v2/v3 = 子代理模型(v3 的规划代理另见专属表 `plannerProvider`/`plannerModel`);v4 = **常驻 LLM 路由**(此前声明未用,v1.4.1 真正接入);v5 = 成员 LLM 路由(空 = 继承所办/主代理路由) |
|
|
496
|
+
| `solverPersona` / `verifierPersona` / `explorerPersona` | 空 | v2·v3 | 注入求解器/验证器/explorer 提示词开头的人格/要求 |
|
|
497
|
+
| `knowledgeContext` | 空 | v2·v3 | 共享知识/数据模型说明(空 = 内置完整版:对象/属性定义、概率语义、文件夹用途、输出完整性要求;非空 = 覆盖并注入所有子代理提示词) |
|
|
498
|
+
| `solverToolAllow` / `solverToolDeny` | `[]` | v2·v3 | 求解器允许/禁止的工具 |
|
|
499
|
+
| `verifierToolAllow` / `verifierToolDeny` | `[]` | v2·v3 | 验证器允许/禁止的工具 |
|
|
500
|
+
| `solverAllowNetwork` / `verifierAllowNetwork` | 空 | v2·v3 | 网络工具开关(web_search/web/fetch):空=继承全部;`true`=在已有 allow 列表时补入;`false`=禁止 |
|
|
501
|
+
| `solverAllowScripts` / `verifierAllowScripts` | 空 | v2·v3 | 脚本工具开关(bash/pwsh):同上 |
|
|
502
|
+
| `solverMaxToolCalls` / `verifierMaxToolCalls` | 0 | v2·v3 | 每轮外部工具调用上限(0=不限) |
|
|
503
|
+
| `reportIntervalMs` | 0 | v2·v3 | 0 = 仅事件驱动(有状态更新才写/推);>0 = 定时自动汇报(毫秒) |
|
|
504
|
+
| `mathComputation` | `auto` | 四套 | 数学计算工具档位:`off`(真 no-op,不探测/不执行/不进提示词)/ `auto`(探测到引擎才工作)/ `on`。详见 [`docs/math-computation.md`](docs/math-computation.md) |
|
|
505
|
+
| `mathMode` | `typed+shell` | 四套 | **提示词策略**(插件无法强制):`typed+shell` 允许工具不可用时用宿主 shell 兜底,但结论必须标注"未经工具归档"、只有工具路径算可复核支撑材料;`typed` 不提 shell 且禁用 `engine:'cli'` |
|
|
506
|
+
| `mathEngines` | `[python, r, octave, julia, matlab, maple, wolfram, cli]` | 四套 | 允许的引擎及探测顺序。商业三家(matlab/maple/wolfram)只探测与许可检查、**永不安装**;去掉 `cli` 即关闭通用逃生口 |
|
|
507
|
+
| `mathTimeoutMs` | `60000` | 四套 | 单次计算上限(毫秒,最小 1000);超时后主动终止进程 |
|
|
508
|
+
| `mathPackages` | `[]` | 四套 | 默认要求存在的包/工具箱;缺包只报告并给安装计划,**不自动安装** |
|
|
509
|
+
| `mathInstallScope` | `user` | 四套 | 安装作用域;`system` 必须**每次显式指定且不被记住**(多数包管理器没有 system 模板,此时会被拒绝) |
|
|
510
|
+
|
|
511
|
+
> **归档即证据**:每次计算都写出 `Computation/<id>/`,回执含 `scriptPath` 与 `scriptHash`;脚本原件可以打开/编辑,编辑后必须用 `mode:'file'` **重跑**得到新回执——**旧回执不代表修改后的代码**(`scriptChanged` / `scriptChangedDuringRun` 会显式告警)。归档只追加不覆盖,超上限只告警不删除。详见 [`docs/math-computation.md`](docs/math-computation.md) §4.1。
|
|
512
|
+
| `tickIntervalMs` | 2000 | v2·v3 | 调度器心跳间隔(毫秒) |
|
|
513
|
+
| `activityLogCap` | 100 | v2·v3 | 活动日志保留条数(report 最多显示 30 条) |
|
|
514
|
+
| `maxExplorerRetries` | 3 | v2·v3 | explorer 拆方向失败的重派生上限 |
|
|
515
|
+
| `maxParallel` | 3 | v4·v5 | 同时唤醒的常驻(v4)/成员(v5)上限(框架侧并发闸,非指派) |
|
|
516
|
+
| `activityTimeoutMs` | 120000 | v4·v5 | v4:空闲心跳间隔(超时才触发**自驱动** CHECKPOINT 唤醒,推动常驻继续推进;唤醒失败会自动重新武装心跳,保证小组永不永久停死);v5:空闲兜底心跳间隔(主驱动是一次性活动等待,不轮询;任务板的"推一把"也按它节流) |
|
|
517
|
+
| `stallAutoMeetingMs` | 360000 | v4·v5 | **停滞自动同步会议阈值**(分级保活 B):团队空闲且无新产物超过该时长时,框架自动召集一次同步会议,让成员自行决定下一步路线/分工(框架只促成,不指派) |
|
|
518
|
+
| `verdictMaxRounds` | 3 | v4·v5 | 验证在独立初评后进入辩论(v4)/公开辩论(v5)的最大轮数 |
|
|
519
|
+
| `compactThreshold` | 66 | v4·v5 | 上下文占比(0–100)达此值触发软压缩:v4 = 常驻上下文占比达此值触发软压缩(自述指令);v5 = 成员达此值触发压缩(把工作状态浓缩进 `Progress/`) |
|
|
520
|
+
| `compactAfterRounds` | 8 | v4·v5 | 每累计 N 轮(未压缩)触发一次软压缩 |
|
|
521
|
+
| `meetingKeepEvery` | 5 | v4·v5 | 每积累 N 个新产物自动触发一次同步会议 |
|
|
522
|
+
| `toolAllow` / `toolDeny` | `[]` | v4·v5 | **常驻/常驻员工工具权限**(经 `startContinuable` 的 `toolFilter` 做作用域 `tools.restrict()`;空 = 继承全部工具;⚠️ 空 `allow:[]` 会拒绝一切工具);v5 的临时工另有专属 `tempToolAllow`/`tempToolDeny` |
|
|
523
|
+
| `formalVerify` | `'off'` | 四套 | **Lean 形式化验证开关**:`'off'` 不额外要求(默认)|`'encourage'` 鼓励(验证时按实现难度自行决定是否形式化)|`'require'` 强制(真/假结论必须先有「Lean 通过」或显式阻塞记录,否则记为未定论并进入形式化待办)。非法值一律回退 `'off'` |
|
|
524
|
+
| `leanCommand` | `'lean'` | 四套 | 要执行的 Lean 可执行文件(例:`'lake'`) |
|
|
525
|
+
| `leanArgs` | `[]` | 四套 | 插在文件名之前的附加参数(例:`['env','lean']` 配合 `leanCommand='lake'`) |
|
|
526
|
+
| `leanTimeoutMs` | `120000` | 四套 | 单次 Lean 运行的上限(毫秒)(异步作业同样用它作单次预算) |
|
|
527
|
+
| `leanAsync` | `true` | 四套 | Lean 编译模式:`true`(默认)= 后台队列,`lean_run` / `lean_archive{run:true}` 入队即返回 `async.jobId`,成员不阻塞;`false` = 同步 await(旧语义逐字保留) |
|
|
528
|
+
| `leanJobsMaxParallel` | `1` | 四套 | 后台编译并发上限(默认 1 = 串行;调大即并行) |
|
|
529
|
+
| `leanInitiative` | `'normal'` | 四套 | **日常形式化主动性**:`off` / `normal`(默认,顺手形式化)/ `eager`(更主动)。与 `formalVerify`(验证时的要求强度)**是两件事** |
|
|
530
|
+
| `leanSearchPaths` | `[]` | 四套 | 额外 Lean 搜索根(先注入它们、再注入自动的 `<VibeMath 根>`;`leanArgs` 里已有 `--search-path`/`-R`/`--root` 时不注入) |
|
|
531
|
+
| `finalPaper` | `true` | 四套 | **最终论文**:收口时自动撰写(`false` 只关自动触发,手动命令仍可用)。完整契约见 `docs/final-paper.md` |
|
|
532
|
+
| `paperFormat` | `both` | 四套 | 论文产出格式:`both`(md+tex)/ `md`(跳过编译,且不报"缺 tex")/ `tex` |
|
|
533
|
+
| `paperLanguage` | `zh` | 四套 | 论文语言:`zh`(ctexart,引擎优先 xelatex)/ `en`(article,pdflatex 优先) |
|
|
534
|
+
| `paperCompilePdf` | `true` | 四套 | 检测到 LaTeX 时编译 `paper.pdf`;无引擎或编译失败则保留 tex+md 并记日志告警 |
|
|
535
|
+
| `paperLatexCommand` | `''` | 四套 | 指定 LaTeX 引擎可执行文件(空 = 按语言自动探测 xelatex→latexmk→pdflatex→lualatex→tectonic) |
|
|
536
|
+
| `paperEditor` | v4 `office`;v5 `academician` | v4·v5 | 定稿代表。v4:`office`(会话根/人类侧,默认)或 `resident:<id>`(该 resident 已离职则降级 office 并在 meta/log 记明);v5:`academician`(默认,无人值守也能完成)或 `office`(仅手动 `/v5 paper editor=office`,须先与全所交流 + 开会) |
|
|
537
|
+
|
|
538
|
+
- **异步是默认**:`leanAsync=true` 时编译在后台队列里跑,`lean_run` / `lean_archive{run:true}` 立即返回;`leanAsync=false` 才回到同步等待。
|
|
539
|
+
- **只有"落地为通过"才算通过**:作业必须 `settled` 且 exit 0,**并且**编译期间文件内容哈希与构建上下文都没变,才置 `passed` / 写 `Verified/Lean/<id>.lean`;其余(排队 / 失败 / 超时 / 中断 / 内容或上下文已变)一律停在 `attempted`。
|
|
540
|
+
|
|
541
|
+
### v2(概率驱动 · 经典)专属参数
|
|
542
|
+
|
|
543
|
+
v2 **没有专属参数**:它的完整参数集就是上表「适用」列含 v2 的每一行。运行时用 `vibe_math_set_params`(或 `/vibe set`)调整,持久化在项目级 `vibe_math_setting.json`(缺失时回退全局 `<工作区>/VibeMath/vibe_math_setting.json` → 内置默认)。
|
|
544
|
+
|
|
545
|
+
#### 最终论文(final paper)
|
|
546
|
+
|
|
547
|
+
四个预设都**默认开启**:收口判定命中后、**在 run 被标记完成之前**进入 paper 阶段。v2 由一名专职「论文撰写」子代理把已定论证据整理成 `Paper/<项目>/{paper.md,paper.tex,paper.meta.json,paper.log.md}`(检测到引擎时才有 `paper.pdf`)。手动:`/vibe paper [lang=zh|en] [format=both|md|tex] [force]`。PDF 需要宿主上有 LaTeX 引擎(中文优先 `xelatex`);没有引擎或编译失败时 tex+md 照常交付,只记日志告警——不阻塞定稿、不覆盖已有 pdf。完整契约见 `docs/final-paper.md`。
|
|
548
|
+
|
|
549
|
+
### v3(论文式 md + 规划代理 + 方法库)专属参数
|
|
550
|
+
|
|
551
|
+
v3 接受 v2 的**全部**参数(见上表「适用」列含 v3 的行),并新增:
|
|
733
552
|
|
|
734
553
|
| 参数 | 默认 | 说明 |
|
|
735
554
|
|---|---|---|
|
|
736
|
-
| `verdictMode` | `forced` | v3 先做**近共识判定**(全部结果同侧且均值 ≥0.85/≤0.15 取均值)——这一步先于模式生效,所以 0.9 vs 1 在两种模式下都得到 ≈0.95;否则 `forced` 取各验证者概率的**等权平均**(不再按准确率加权;严格的 1/0 仍以绝对票生效),`flat` 则判 `0.5`(不一致即不确定) |
|
|
737
555
|
| `planningHorizon` | 3 | 规划代理一次计划的最多动作数("接下来 n 次") |
|
|
738
556
|
| `plannerEnabled` | true | false = 完全走内置启发式调度(规划代理禁用) |
|
|
739
557
|
| `plannerProvider` / `plannerModel` | 空 | 规划代理模型路由(空 = 继承根代理) |
|
|
@@ -746,36 +564,31 @@ v5 的完整架构(含成员生命周期、一轮时序、共识状态机、
|
|
|
746
564
|
| `indexAutoRebuild` | true | 每次写盘后自动重建 `State/index.json`(false = 手动 `vibe_math_index`) |
|
|
747
565
|
| `projectLockTimeoutMs` | 60000 | 项目锁等待超时(同项目同一时刻只允许一个会话调度) |
|
|
748
566
|
| `methodKeeperPersona` | 空 | 注入方法整理代理提示词开头的人格/要求 |
|
|
749
|
-
| `formalVerify` | `'off'` | **Lean 形式化验证开关**:`'off'` 不额外要求(默认)|`'encourage'` 鼓励(验证时按实现难度自行决定是否形式化)|`'require'` 强制(真/假结论必须先有「Lean 通过」或显式阻塞记录,否则记为未定论并进入形式化待办)。非法值一律回退 `'off'` |
|
|
750
|
-
| `leanCommand` | `'lean'` | 要执行的 Lean 可执行文件(例:`'lake'`) |
|
|
751
|
-
| `leanArgs` | `[]` | 插在文件名之前的附加参数(例:`['env','lean']` 配合 `leanCommand='lake'`) |
|
|
752
|
-
| `leanTimeoutMs` | `120000` | 单次 Lean 运行的上限(毫秒) |
|
|
753
567
|
|
|
754
|
-
|
|
568
|
+
#### 最终论文(final paper)
|
|
755
569
|
|
|
756
|
-
`
|
|
570
|
+
v3 与 v2 同一开关、同一时序(严格收口;**在调度器停止之前**派遣撰写者):专职「论文撰写」子代理产出 `Paper/<项目>/{paper.md,paper.tex,paper.meta.json,paper.log.md}`(检测到引擎时才有 `paper.pdf`)。手动:`/vibe paper [lang=zh|en] [format=both|md|tex] [force]`。无引擎或编译失败仍交付 tex+md、记警告、不阻塞定稿。完整契约见 `docs/final-paper.md`。
|
|
571
|
+
|
|
572
|
+
### v4(常驻自组织 · 实验)专属参数
|
|
573
|
+
|
|
574
|
+
`vibe_v4_set` 可调(持久化到 `State/settings.json`);共用参数见上表,v4 另有:
|
|
757
575
|
|
|
758
576
|
| 参数 | 默认 | 说明 |
|
|
759
577
|
|---|---|---|
|
|
760
578
|
| `residentCount` | 4 | 常驻数(可 `vibe_v4_add_member` 增减) |
|
|
761
|
-
| `compactThreshold` | 66 | 常驻上下文占比达此值触发软压缩(自述指令) |
|
|
762
|
-
| `compactAfterRounds` | 8 | 常驻每累计 N 轮(未压缩)触发一次软压缩 |
|
|
763
|
-
| `meetingKeepEvery` | 5 | 每积累 N 个新产物自动触发一次同步会议 |
|
|
764
|
-
| `maxParallel` | 3 | 同时唤醒的常驻上限(框架侧并发闸,非指派) |
|
|
765
|
-
| `activityTimeoutMs` | 120000 | 空闲心跳间隔(超时才触发**自驱动** CHECKPOINT 唤醒,推动常驻继续推进;唤醒失败会自动重新武装心跳,保证小组永不永久停死) |
|
|
766
|
-
| `stallAutoMeetingMs` | 360000 | **停滞自动同步会议阈值**(分级保活 B):团队空闲且无新产物超过该时长时,框架自动召集一次同步会议,让常驻们自行决定下一步路线/分工(框架只促成,不指派) |
|
|
767
|
-
| `verdictMaxRounds` | 3 | 验证在独立初评后进入辩论的最大轮数 |
|
|
768
|
-
| `provider` / `model` | 空 | **常驻 LLM 路由**(空 = 常驻继承主代理的 provider/model;此前声明未用,v1.4.1 真正接入) |
|
|
769
579
|
| `residentPersona` | 空 | 注入每个常驻提示词开头的人格/要求 |
|
|
770
|
-
| `toolAllow` / `toolDeny` | `[]` | **常驻工具权限**(经 `startContinuable` 的 `toolFilter` 做作用域 `tools.restrict()`;空 = 继承全部工具;⚠️ 空 `allow:[]` 会拒绝一切工具) |
|
|
771
|
-
| `formalVerify` | `'off'` | **Lean 形式化验证开关**:`'off'` 不额外要求(默认)|`'encourage'` 鼓励(验证时按实现难度自行决定是否形式化)|`'require'` 强制(真/假结论必须先有「Lean 通过」或显式阻塞记录,否则记为未定论并进入形式化待办)。非法值一律回退 `'off'` |
|
|
772
|
-
| `leanCommand` | `'lean'` | 要执行的 Lean 可执行文件(例:`'lake'`) |
|
|
773
|
-
| `leanArgs` | `[]` | 插在文件名之前的附加参数(例:`['env','lean']` 配合 `leanCommand='lake'`) |
|
|
774
|
-
| `leanTimeoutMs` | `120000` | 单次 Lean 运行的上限(毫秒) |
|
|
775
580
|
|
|
776
|
-
|
|
581
|
+
#### 最终论文(final paper)
|
|
582
|
+
|
|
583
|
+
默认开启;v4 在一致性会议投出「一致停止」票后、**标记完成之前**进入 paper 阶段。团队流程:各 resident 写自己库里的部分 → 合并(去重、统一术语与记号)→ 至少一轮**交叉互审** → 定稿代表按 `paperEditor`(默认 `office`,或 `resident:<id>`)梳理成最终稿 → **全体明确"可交付"**才定稿(有反对则继续迭代,超轮次上限记警告并把分歧写进附录)。手动:`/v4 paper [lang=] [format=] [editor=office|resident:<id>] [force]`。产物 `Paper/<run id>/{paper.md,paper.tex,paper.meta.json,paper.log.md,paper.lock.json}`(引擎可用时另有 `paper.pdf`;`paper.lock.json` 是该目录的写锁,用于并发的复写/重编译串行化)。完整契约见 `docs/final-paper.md`。
|
|
584
|
+
|
|
585
|
+
**v4 专属工具 `vibe_v4_formal_report`(文档补记,round-3)**:把"哪些命题/方法已经得到形式化支撑、支撑强度如何"汇报给常驻团队,是 v4 **团队自治**流程的一部分——居民之间要靠这条汇报对齐"谁能引用哪条已定论结论",因此它**只存在于 v4**(v2/v3 是专职求解/验证子代理架构,其形式化状态由 `vibe_math_lean_*` 与验证日志承载;v5 由院士评审路径 `vibe_v5_propose_verify`/`vibe_v5_verdict` 与 `vibe_v5_status` 承载)。v4 的两处 persona 文本块都要求成员使用它;v4 的 `status`/`report` 也会汇总其输出。
|
|
777
586
|
|
|
778
|
-
`vibe_v5_set`
|
|
587
|
+
> **状态面不对称(文档补记,round-3)**:v2/v3 的 `vibe_math_status` 返回**参数块**(含 `math*`/`lean*` 现值),而 v4 的 `vibe_v4_status` 与 v5 的 `vibe_v5_status` 返回**各自的状态/成员/研究所视图但不含参数块**(参数请用 `vibe_v4_set`/`vibe_v5_set` 的 schema 或对应 `status` 里的既有字段)。这是既定设计(v4/v5 的参数面在 `*_set` 的闭合 schema 上),本轮选择**在文档里声明**而不是给 v4/v5 加参数块。
|
|
588
|
+
|
|
589
|
+
### v5(研究所体系 · 实验)专属参数
|
|
590
|
+
|
|
591
|
+
`vibe_v5_set` 可调(持久化在研究所状态文件 `State/<研究所>.v5state.json` 里);共用参数见上表,v5 另有:
|
|
779
592
|
|
|
780
593
|
| 参数 | 默认 | 说明 |
|
|
781
594
|
|---|---|---|
|
|
@@ -785,24 +598,15 @@ v5 的完整架构(含成员生命周期、一轮时序、共识状态机、
|
|
|
785
598
|
| `researcherCount` | 3 | 常驻研究员数(建所时) |
|
|
786
599
|
| `quorumCap` | 3 | m 的上限;实际 **m = min(quorumCap, 在册有表决权人数)** |
|
|
787
600
|
| `quorumMode` | `'m-unanimous'` | v5 口径;切 `'all-unanimous'` 回到 v4 的"全体一致" |
|
|
788
|
-
| `verdictMaxRounds` | 3 | 独立初评后进入公开辩论的最大轮数 |
|
|
789
601
|
| `maxTempPerMember` | 3 | 每位院士/研究员**同时**在册的临时工上限(按在册计,非累计——所以换人不受限) |
|
|
790
602
|
| `maxTempTotal` | 12 | 全所同时在册临时工上限 |
|
|
791
|
-
| `compactThreshold` | 66 | 成员上下文占比(0–100)达此值触发压缩 |
|
|
792
|
-
| `compactAfterRounds` | 8 | 或每累计 N 轮触发一次软压缩 |
|
|
793
|
-
| `maxParallel` | 3 | 同时唤醒的成员上限(框架侧并发闸) |
|
|
794
|
-
| `activityTimeoutMs` | 120000 | 空闲兜底心跳间隔(主驱动是一次性活动等待,不轮询) |
|
|
795
|
-
| `stallAutoMeetingMs` | 360000 | 停滞自动召集同步会议的阈值 |
|
|
796
603
|
| `chatDigestMs` / `chatDigestMax` | 45000 / 12 | 群聊摘要合批的时间窗与条数上限(私信/会议/表决不合批) |
|
|
797
|
-
| `meetingKeepEvery` | 5 | 每积累 N 个新产物自动发起一次同步会议 |
|
|
798
|
-
| `provider` / `model` | 空 | 成员 LLM 路由(空 = 继承所办/主代理路由) |
|
|
799
|
-
| `toolAllow` / `toolDeny` | `[]` | 常驻员工工具权限(⚠️ 空 `allow:[]` 会拒绝一切工具) |
|
|
800
604
|
| `tempToolAllow` / `tempToolDeny` | `[]` | 临时工的工具权限(比常驻更窄) |
|
|
801
605
|
| `staffPersona` | 空 | 追加到每个成员章程前的人格/要求 |
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
606
|
+
|
|
607
|
+
#### 最终论文(final paper)
|
|
608
|
+
|
|
609
|
+
默认开启;v5 在 `checkSolved` 判定「已解决」后、**标记完成之前**进入 paper 阶段。常驻研究员与院士各自写、合并、交叉互审,定稿代表由 `paperEditor` 决定:**自动流程固定用 `academician`**(所办是根会话,没有唤醒路径);`office` 只能通过手动 `/v5 paper editor=office` 选择,此时**所办必须先与全所交流、商讨、优化、审查**(≥1 条 `vibe_v5_message` + ≥1 次 `vibe_v5_meeting`),把结论写进定稿说明,再调用 `vibe_v5_finalize_paper`;缺一即被拒(`V5_PAPER_CONSULT_REQUIRED`)。工具入口:`vibe_v5_paper`、`vibe_v5_finalize_paper`。产物 `Paper/<研究所 id>/{paper.md,paper.tex,paper.meta.json,paper.log.md}`(引擎可用时另有 `paper.pdf`)。完整契约见 `docs/final-paper.md`。
|
|
806
610
|
|
|
807
611
|
常用控制:`vibe_v5_configure`(先配置)→ `vibe_v5_start`(开工)→ `vibe_v5_report` / `vibe_v5_status`;`vibe_v5_message` / `vibe_v5_meeting` / `vibe_v5_members` / `vibe_v5_hire` / `vibe_v5_fire`(临时工)/ `vibe_v5_add_researcher` / `vibe_v5_remove_researcher`(增删常驻,仅所办)/ `vibe_v5_pause` / `vibe_v5_resume` / `vibe_v5_stop`;斜杠命令 `/v5`。
|
|
808
612
|
|
|
@@ -826,8 +630,9 @@ v5 的完整架构(含成员生命周期、一轮时序、共识状态机、
|
|
|
826
630
|
- **四套 Lean 提示词语料**:[`prompt-corpus-v2/formal-verify-v2.md`](prompt-corpus-v2/formal-verify-v2.md) · [`prompt-corpus-v3/formal-verify-v3.md`](prompt-corpus-v3/formal-verify-v3.md) · [`prompt-corpus-v4/formal-verify-v4.md`](prompt-corpus-v4/formal-verify-v4.md)(各自覆盖 off / encourage / **require** / 忠实性分支 / 工作轮 / 回执契约;工作区归一化为 `<WS>`、VibeMath 根为 `<VIBEMATH>`)
|
|
827
631
|
- **四个预设的 persona 原文**:[`prompt-corpus-persona/persona-corpus.md`](prompt-corpus-persona/persona-corpus.md)(主代理实际收到的提示词:有哪些工具、哪些参数、哪些斜杠子命令;由 `audit-persona-surface.test.mjs` 生成,随包发布)
|
|
828
632
|
- **Lean 形式化验证(四架构共用契约)**:[`docs/formal-verification.md`](docs/formal-verification.md)
|
|
829
|
-
-
|
|
830
|
-
-
|
|
633
|
+
- **最终论文(四架构共用契约)**:[`docs/final-paper.md`](docs/final-paper.md)(五个参数与 v4/v5 的 `paperEditor`、收口顺序"先论文后完成"、`Paper/<id>/` 产物与 9 节骨架、LaTeX 检测顺序与"先修复后降级"、v4/v5 团队合写流程与 v5 所办咨询规则)
|
|
634
|
+
- **测试耗时基线与并行跑法**:[`docs/test-timing.md`](docs/test-timing.md)(`node tests/run-tests.mjs` 并行跑**全部套件 + 全部探针**:`TOTAL 57`(39 套件 + 18 探针/变体)≈3.5 min;哪 18 项随包发布、哪些仅仓库见该文档 §1.1;每个 runner 都会打印耗时/加速比供下次选策略)
|
|
635
|
+
- **静态提示词面一致性(persona ↔ 工具注册表 ↔ 斜杠命令 hint/usage)**:[`audit-persona-surface.test.mjs`](tests/audit-persona-surface.test.mjs)(260 条断言,并生成 [`prompt-corpus-persona/persona-corpus.md`](prompt-corpus-persona/persona-corpus.md) 供人工复核)+ [`audit-persona-sensitivity.mjs`](tests/audit-persona-sensitivity.mjs)(16 条灵敏度探针)——守"注册的工具必须在 persona 里出现 / persona 里的名字必须真的注册 / `prefix` 与 `text` 两块逐行一致 / hint、usage、实际分支三处必须一致"
|
|
831
636
|
- **全面检查必查清单**:[`AUDIT-CHECKLIST.md`](docs/AUDIT-CHECKLIST.md)(本仓库的强制审计流程;§1.9 专门查"工具参数 schema 收不收得下")
|
|
832
637
|
- **提示词/交互不变式(四套一起,可一键复核)**:[`audit-prompt-invariants.mjs`](tests/audit-prompt-invariants.mjs)(157 条断言)——把"历史上真实发生过的提示词/工具面缺陷类别"逐条编码成静态不变式(缩写工具名、把忠实性缺陷投成 0、`defect` 只写在提示词里没实现、回执契约缺 `defect`、无 note 放行、字段名错、`off` 档回执仍能写状态、语料不确定、探针缺失、**工具的封闭 schema 收不下它自己文档里的参数**、**schema 声明了参数层却静默丢弃的键**)。加 `--self-probe` 会在内存里注入这些缺陷形状,要求对应不变式**变红**、未变异的对照跑**仍为绿**(5/5);脚本自身另带 X5–X8b 六条自检(注释扫描器必须认正则字面量——包括 `return /…/ ` 这种**关键字后面**的正则——字符串里的 `//` 必须保留、抹注释不改变行结构,以及"四套源码抹掉注释后仍必须能被 `node --check` 解析"这条解析级判据)
|
|
833
638
|
- **规格 ↔ 代码可追溯(四套一起)**:[`audit-spec-traceability.mjs`](tests/audit-spec-traceability.mjs)(94 条断言)——`实现方案.md`/README 里承诺的工具必须真的注册;四个 Lean 参数必须同时被文档与代码接受
|