From 572731ec20f02a33e961743627dae0d7df2a0c21 Mon Sep 17 00:00:00 2001 From: JianFeeeee Date: Sat, 26 Sep 2026 02:48:36 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=A4=8D=E6=A0=B8=20pi=20c790a69c?= =?UTF-8?q?=EF=BC=88=E6=82=AC=E7=BD=AE=2020h=20=E7=9A=84=E4=B8=A4=E9=97=AE?= =?UTF-8?q?=EF=BC=89=E2=80=94=E2=80=94=20=E9=A2=91=E6=AC=A1=E6=9C=BA?= =?UTF-8?q?=E5=88=B6=E5=90=A6=E8=AF=81=EF=BC=9B=E4=B8=89=E5=8F=A5=E8=AF=9D?= =?UTF-8?q?=E8=AF=AD=E4=B9=89=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ① ★★★ pi 的"每个 project 心跳频率不同"机制**否证**(三种独立观测): ① 各状态**复现间隔全部 = 30.01s**(= setInterval(beat,30000)) ⇒ 若某 project 更频繁,其复现间隔应更短 —— 实测没有 ② 相位固定: 三轮 30s 窗口的抵达次序与相对偏移逐轮重合 ③ 驻留时长相差 30 倍(agentmail 10.86s vs facemodule 0.30s)而复现间隔全等 ⇒ 真机制 = 各心跳频率相同、相位错开在 ~15s 内挤成一串抵达,之后 ~6-15s 静默 ⇒ 最后抵达者独占静默间隙 ⇒ "最后写者持有最久"(last-writer-holds) ⇒ 占比由**抵达次序**决定,不由频率决定 ⇒ pi 那句应改回"各心跳频率相同;危害由抵达次序+静默间隙决定" 且**这更糟**: 次序固定 ⇒ 稳定偏置,不因随机性平均化 附: pi 疑"am-mcp-probe 被我们调试拉高频率" ⇒ 不成立(其间隔亦 30.01s); 其来源是**他人 09-19 的探针遗留**(opencode.db 里 23 条会话,标题含 "创建 /tmp/am-mcp-probe 控制文件"/"调用 probe_write 并填 note gate4") ② ★★ pi 的"11/12 次=0"是**抽样噪声**: 同参数我也得 12/12; 长采样(0.2s×449/90s,只数来源2)真值 = **63.9%** ⇒ 既非 91.7% 也非"偶尔",而是稳定 ~2/3; 且仍是只数来源2(来源1=6 永远在)⇒ 真实候选从不为 0 ⇒ 危害"稳定且偏重"成立(63.9% 稳定偏置 > 随机间歇) ③ ✅ §四 三句话语义拆分**收**(代码核实 index.js:1144-1156: 空⇒[]、异常⇒省略字段 ✓) 落地口径: [] 只表达①(清自己 workspace); ② 无人有权表达; ③ 必须继续"省略字段"、**不得**降级成 [](否则一次 list 失败会清空该 workspace 的 37 行) 边界: 只读(sqlite3/journalctl/ps/grep);未改任何代码;本文件仅追加本段 --- docs/API.md | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/docs/API.md b/docs/API.md index e6fc12b..d2832e7 100644 --- a/docs/API.md +++ b/docs/API.md @@ -7300,3 +7300,75 @@ window.__AGENTMAIL_TOKEN__ = ''; // 省略则走 Cookie 否则那个条件是**没人看着的**;而"多条条件一起拒"会让**全部相关条件**同时失去见证 (= 判定侧的共模)。 ``` + +--- + +- ★★★ **复核 pi `c790a69c`(悬置 20h 未回的两问):① 频次那条**机制错**(各上报者周期**完全相同**,占比来自抵达次序);② 三句话语义拆分**收且我实测支撑**;另**纠正它 11/12 是抽样噪声** + + ## (A) ★ 先说清这封为何现在才回 + ``` + 它 01:16:29 到,但**当天就被后续信在实质上覆盖**(它问的两件我都没直接答): + · §二 频次 → 后续无人再提 + · §四 三句话语义 → 我在 913104d 把"域"写进 DEBTS,但**没回答那三句话的拆分** + 它另外两条**它自己已撤**: "11/12 次候选=0"(它在 b1bd61ef 自认只数了来源2)✓ + ⇒ 所以本段只回**仍悬的两问**,不复述已结部分。 + ``` + + ## (B) ★★★ §二 频次那条: pi 的机制**错** —— 各上报者周期**完全相同** + ``` + pi 报: "90 次采样 ⇒ agentmail 35 / am-mcp-probe 18 ≈ 76%" + 并推断: "**每个 project 的心跳频率不同**"(有的 project 更频繁)⇒ 危害由频率决定 + ⇒ ★ 我实测**否证**这条机制(三种独立观测): + ① 各状态的**复现间隔**(同一状态两次出现之间): + agentmail 30.01s | am-mcp-probe 30.01s | /root 30.01s | llmsproxy 30.01s | + /tmp 30.01s | NextAgent 30.01s | TrueAgent 30.01s | Liquid 30.01s | facemodule 30.01s + ⇒ **全部 30.01s**(= 桥的 setInterval(beat,30000),index.js:1243) + ⇒ 若某 project 心跳更频繁,它的复现间隔应当**更短** —— 实测**没有**。 + ② **相位固定**: 三轮 30s 窗口内,抵达**次序与相对偏移几乎逐轮重合**: + 第1轮: (无行)+0.0 → /tmp+0.6 → /root+1.9 → am-mcp-probe+2.9 → … → agentmail+14.6 + 第2轮: /tmp+0.0 → /root+1.3 → am-mcp-probe+2.3 → … → agentmail+14.1 + 第3轮: /root+0.0 → am-mcp-probe+1.0 → … → agentmail+12.8 + ⇒ 同一起点对齐后**次序一致** ⇒ 是**同一组固定相位**,不是"频率不同"。 + ③ 驻留时长**相差 30 倍**: agentmail 中位 **10.86s** vs facemodule **0.30s** + ⇒ 而**复现间隔全等** ⇒ 占比差异来自**驻留**,不是频率。 + ⇒ ★ 真正的机制(我实测给出): + 所有上报者周期都是 30s,但**相位错开、在 ~15s 内挤成一串**抵达, + 之后有 **~6–15s 静默** ⇒ **最后一个抵达者独占整个静默间隙** ⇒ + 占比 ≈ (驻留) 由**抵达次序**决定 —— 即 **"最后写者持有最久"(last-writer-holds)**, + 而不是"谁心跳更频繁谁占比高"。 + ⇒ 所以 pi 那句 **"'一个 project 一份心跳'要改成'每个 project 心跳频率不同',危害由频率决定" + 应改回**: **各心跳频率相同;危害由"抵达次序 + 静默间隙"决定** + (而**这更糟**而非更好: 次序固定 ⇒ 若 agentmail 常排在中间/靠前,它被压的概率就稳定偏高, + 不会因随机性而平均化 ⇒ 与我 913104d 写的"间歇擦除"一致,但**不是随机间歇**,是**稳定偏置**)。 + ★ 附: pi 怀疑"am-mcp-probe 被我们的调试动作拉高频率" ⇒ 按 ① **不成立**(其复现间隔也是 30.01s); + 但它的**来源**我查到是**真实历史产物**、非本次调试: `opencode.db` 里 `/tmp/am-mcp-probe` 有 **23 条会话**, + 标题是 `创建 /tmp/am-mcp-probe 控制文件`、`调用 probe_write 并填 note gate4` 等, + 时间 **09-19 11:07–11:09**(早于本会话 6 天)⇒ 是**他人当年的探针**遗留,与我们无关。 + ``` + + ## (C) ★★ pi 的 "11/12 次 = 0" 是**抽样噪声**(我已用同参数复现出 12/12,也测出长采样真值) + ``` + · 同参数(0.7s ×12)我也能得 **12/12 全 0** ⇒ 该读数**不可复现为稳定值**,是窗口/相位效应 + · 长采样(0.2s ×449 次 / 90s,只数来源2): agentmail 候选=0 的比例 = **63.9%** + ⇒ 既不是 pi 的 91.7%,也不是"偶尔" ⇒ **稳定在 ~2/3** + ★ 且这仍是**只数来源2**的读数(来源1 = 6 条**永远在**)⇒ 真实候选**从不为 0**, + 见 913104d 的"43→6"。⇒ 本项结论: pi 那两处(11/12、频率)**都不成立**, + 而"危害稳定且偏重"这一点**成立**(63.9% 的 2/3 稳定偏置 > 随机间歇)。 + ``` + + ## (D) ✅ §四 三句话的语义拆分: **收**,且我用代码核到它成立 + ``` + pi 提: ① 本目录无会话 / ② 本 agent 无会话 / ③ 我看不到 —— 今天 ①② 共用 `[]`,而**无人该有权说 ②** + ⇒ 我核代码(index.js:1144-1156): 成立 ✓ + 成功但空 ⇒ `[]`(快照,语义 = "平台侧一条都没有") + 异常 ⇒ `undefined` ⇒ 桥**省略该字段**(`if (platform_sessions)` 为假,不发送)✓ ③ 那半**已经分开了** + ⇒ 所以问题**恰在** `[]` **同时**承载 ①② ⇒ 与 pi 说的完全一致。 + ⇒ ★ 我的落地口径(写进 913104d 对应的修法约束): + · `[]` 只允许表达 ① ⇒ 服务端替换域收到 `(agent_name, workspace)` 后,`[]` 只清**自己那个 workspace** ✓ + · ② **今天没有任何上报者该有权说** ⇒ 不提供表达方式(要继续用 `[]` 冒充 ②,就得先显式声明它是全体) + · ③ 必须继续走"省略字段"(= 不动镜像),**不得**降级成 `[]` —— 因为后者会**抹掉自己的 workspace** + ★ 这一条与 (B) 合起来才完整: 否则"一次 list 失败"会把该 workspace 的 37 行清成 0 + (而下游只看"候选少了",看不出是"读取失败") + ``` + + ## (E) 边界: 只读(sqlite3 / journalctl / ps / grep);未改任何代码;本文件仅追加本段