# codedouble **Repository Path**: ziruichen12138/codedouble ## Basic Information - **Project Name**: codedouble - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-25 - **Last Updated**: 2026-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 自学习代码分身(The Self-Learning Code Double) 一套设计:一个**外置于执行代理的、关于开发者"判断力"的分身**——一个*自学习、可复用、有强干预力*的 代理。它从你的真实行为中学习**何时该询问你、何时直接行动**,并把这份判断力随你带到你拥有的每一个 工具和每一个仓库。 > **未来是一个"分身市场"。** 分身基于你的行为训练,且*独立于*任何单一工具——因此它是**你拥有的资产**, > 可跨执行器、跨仓库、跨时间复用。终局是:分身可以被**出售**——把一位顶尖工程师的编码判断力打包、 > 售卖,插入到任何人的代理里。 > > **但你必须先证明它有效。** 如果底层的学习闭环并不真的在学习,市场就毫无价值。一切之前的关卡是一个 > *没人拿到过*的经验数字:**随着分身学习一个真实人类的方式,他的"覆盖率(override rate)"是否在下降?** > 先挣到这个数字。市场是它*解锁*的东西——而不是我们最先该造的东西。 本文是设计讨论,而非定稿。开放问题以 **[OPEN]** 标记。 --- ## TL;DR —— 一屏看懂整套设计 - **§0 什么是分身** —— 一个外置的、*自学习 · 可复用 · 强干预*的"判断力分身";必须同时跨过两道门槛: 没有任何代理能做到 **且** 它是真实痛点。 - **§1 核心原则** —— 检测代理"自信但其实错了"之处,路由到最便宜的解决源(仓库 → 历史 → 人); *是索引,不是智能*。三个来源里有两个正在被商品化——分身活在第三个里。 - **§2 外置监督者** —— 一个*独立*代理监视意图;它不能是给执行体的一句提示词(自我反思 61.2% vs 外置 监督 69.4%;RLHF 毁掉了自我校准)。 - **§3 询问 · 行动 · 偏好** —— 偏好负责*解决*,询问/行动负责*把关*;每一次被回答的询问都会变成一条 偏好,让它下次能直接行动。这个闭环就是"学习"本身。 - **§4 可逆性** —— `git` 让"撤销"几乎免费,所以"先行动、错了再回退"胜过"凡事都问";只在*既欠定义又 不可逆*时才强干预。一旦把善后成本算进去,正确性*就是*便利性。 - **§5 可防御性** —— 护城河是 A+B+C+D 这套*组合*(外置 · 询问/行动+偏好 · 被动行为 · 透明+可度量); 没人四样都有。外加两条结构性护城河:git 即标签、单用户飞轮。 - **§6 数据层** —— 记录 `resolution_event`;`situation_signature` 是成败关键;标签来自行为 (回退/纠正 = 黄金),绝不把"从未查看"当作正向。 - **§7 冷启动** —— 永远不会*完全*冷(仓库**及其 git 历史**就是先验);检索而非训练 → 第一条事件就有用; 挖掘提交历史来预热。 - **§8 验证关卡** —— 决定一切的那个数字:*一个真实人类的覆盖率是否在下降?* 没人拿到过。 在做市场之前先证明它;这个数字日后会变成市场的信任凭证。 - **§9 通往市场之路** —— 先在顶尖程序员身上证明 → 卖给 B2B(团队记忆)→ 面向消费者的市场放到**最后** (被售卖的分身 = 可抄袭的"专家预设";有 IP 风险)。 - **§10 第一个产物** —— 一个什么都不解决、只做记录的日志器;在动手造任何东西之前,先检查签名是否成簇。 - **§11 各部分如何拼合** —— 三个进程(执行体 · 监视器 · 捕获),一个共享索引;索引*就是*分身。 - **§12 相关文献** —— 这套架构在 2025–26 年被学界收敛;真实人类的那条曲线仍是空白。 --- ## 0. 什么是分身——以及它必须跨过的门槛 四个词,每个都承重——而且每一个,都是当下任何代码代理*无法同时*宣称拥有的: - **自学习** —— 从你的行为(纠正、`git revert`)中学习*偏好*(你想要什么)**和**询问/行动的校准 (要不要打扰你)——而不是靠手写规则。被商品化的那一片是*静态*内容偏好(tab、async);尚无人占据 的那一片是*情境化*的决议偏好 **+** 那道把关闸门(§3)。 - **可复用** —— 它*外置*于执行体,因此可跨模型、跨工具、跨仓库迁移。是**你拥有**的资产,而不是绑死在 某一家厂商上的功能。 - **强干预** —— 一个有牙齿的监督者:它能*拦停*执行体、能*注入*执行体遗漏的东西——但只在真正值得介入 的地方。 - **分身** —— 是你*判断力*的分身,且保持**透明**:它做的每一个假设都可见、可否决。不是一个不透明的 双子。 **定位:** *不是又一个会写代码的助手——而是一个学会"你何时想被询问"、并且归你所有的分身。* **门槛(两道把关标准)。** 每一个设计选择都必须同时跨过: 1. **没有任何现有代码代理能解决它** —— 一个真实的未解空白,而不是 Cursor / Claude Code / Copilot / Devin 已经在做的事。 2. **它是真实痛点** —— 真的被人感受到,而非假想。 二者的交集刻意很窄:那些出名的痛点会吸引所有人,所以目标是*真实但被攻坚不足*之处。(为何本设计正落在 这个交集里见 §5;什么动作会把它推出交集见 §9。) --- ## 1. 核心原则 > **检测代理"自信但其实不该自信"之处,然后要么用索引解决,要么升级给人——在动用人的注意力之前, > 先穷尽一切便宜、可证明的解决方式。** 代理低估了三个真相来源,因为它认不出自己的无知: 1. **代码库** —— 被低估,因为它不去搜索。 → 由监视器从索引中*注入*。 2. **用户过去的决定** —— 被低估,因为它不去回忆。 → 从历史中*静默解决*。 3. **用户本人** —— 被低估,因为它不知道该问什么。 → 由监视器*向人询问*。 一个元模式统御这三者:**一个外置监视器,检测代理未被识别的无知,并把它路由到能修复它的最便宜来源。** 人是最后手段——最昂贵的索引——但对于不可消除的歧义,是唯一握有答案的那一个。 **是索引,不是智能。** 分身是*对一条已记录索引的检索*,而不是一个被训练出来的"人的模型"。这正是它保持 透明的原因("我假设了 X,因为上周你……"),既绕开了数据量天花板,也避免了"戴着面具的先例"。 **三者中已有两者正在被商品化——分身活在第三者里。** 现代代理*确实*会 grep 仓库(来源 1),也*确实* 会通过规则/记忆文件存储内容偏好(来源 3,但很弱)。真正能跨过标准 1 的,是**来源 2 的硬核形态**: 从*被动行为*中学习*你的决议偏好与询问/行动校准*。下文一切都围绕它构建。 --- ## 2. 分身是一个外置监督者 它不是"切到批评者模式"的执行体。它是一个**独立代理**,在执行体行动之前监视其声明的意图。两个监视器, 都在检测*虚假的自信*: | | 代码监视器 | 用户监视器 | |---|---|---| | **空白在哪** | 代理不知道某个 helper 已存在 | 代理不知道该问用户什么 | | **为何搜索会失败** | 不会去 grep 它不曾怀疑的东西 | 不会去问它不曾怀疑有歧义的意图 | | **何时触发** | 代理意图与"工件能证明的"相背离(太自信,且*错了*) | 代理意图未被用户所说的话所确定(太自信,且*此刻无从得知*) | | **基准真相** | 在场且可查询(grep 仓库) | **缺席**——用户*所指*之物不存在于任何地方 | | **解决方式** | 从代码注入 | 向人询问 | **为何这种对称会"漏"(以及分身如何修补):** 代码监视器之所以奏效,是因为它的基准真相在场且可查询。 用户的意图是缺席的——这正是它有歧义的原因。因此,光秃秃的用户监视器只能检测出*"解读空间显然是多元的"*, 而无法检测出*"对这个用户来说是错的"*。**分身的全部职责,就是把那个缺席的神谕变成在场的**——把"用户所指" 变成一条可查询的索引——这正是当初让代码监视器奏效的那一招,被应用到那个缺席的神谕上。 **监督者必须是外置的——不能是给执行体的一句提示词。** 这不可妥协,而且有实证:一个*独立*的监督进程把 解决率拉到 **69.4%**,而让执行体"小心一点"只有 **61.2%**(§12,arXiv 2603.26233)。原因是结构性的—— RLHF 毁掉了执行体的自我校准;它自信地错着,且*感觉不到*(§12,arXiv 2505.22655)。代理无法监督自己的 自信。这一个事实,就是它必须是一个独立产品、而永远不能是一句系统提示词的原因。 --- ## 3. 升级阶梯——询问、行动、偏好 分身运行在三个原语上:**询问**、**行动**、**偏好**。**偏好**是*解决者*(你想要什么);**询问**和 **行动**是*闸门*(要不要打扰你)。它们是分层的、而非互相竞争:分身先尝试用偏好解决,而它对*这次偏好 匹配的置信度*决定了是行动还是询问。这三者构成一个**闭环**——每一次被回答的**询问**都会变成一条新的 **偏好**,让分身下次能直接**行动**。这个闭环*就是*自学习本身。 **两种偏好——只有一种值得你去防御。** *静态内容*偏好(tab、async、命名)是无状态的、已被商品化的 (规则/记忆文件)。*决议*偏好——**你**如何解决**这一类**歧义,以 `situation_signature` 为键、从纠正/ 回退中学得——才是那种基于行为、不可抄袭的偏好。分身两者都需要;护城河是后者,外加那道闸门。 ``` 代理意图欠定义(监视器的触发条件) │ [1] 情境本身能解决吗?(失败的测试、打开的文件、diff、仓库结构) → 行动 │ 否 [2] 分身能以"高校准置信度"解决吗? → 行动,并把假设可见地记录下来 │ (这个用户近期的决定、蒸馏出的偏好、这个仓库的惯例) │ 否 / 低置信度 [3] 询问人 → 并把答案写回索引 └─ 这个回写箭头是全部关键:每一次升级都是一个训练样本; 下次面对这个签名时,阈值就会下降。 ``` **要工程化对抗的陷阱(第 2 级):** "从历史中静默解决"是代码监视器的强项,却变成了用户监视器的陷阱。 先例("他们之前怎么修的")不是当前意图("他们现在想要什么")。一个分身就是*被编译成模型的先例*—— 更有说服力的先例,戴着用户的嗓音。缓解措施: - 让分身保持为**透明检索**,而非不透明的双子 → 你能展示并记录该假设; - **以校准置信度为第 2 级把关**——只有高置信度的解读才能静默解决; - **把假设可见地记录下来**,让用户能抓住一次糟糕的静默解决。 --- ## 4. 可逆性(先行动、后回退)——分身如何摆脱权衡 整件事都活在**便利性 ↔ 正确性**这根轴上。我们的赌注是*摆脱*这个权衡,而非在其上取平衡。第二件工具, 经济学正好相反: - **先问后做:** 在*每一个*有歧义的动作上付出 `C_ask`(用户注意力)。 - **先做后退:** 只在出错的那部分上付出 `p · C_revert`。 - **当 `p · C_revert < C_ask` 时,"先做后退"获胜**——动作通常是对的*且*回退便宜。 **编码拥有所有领域里最低的 `C_revert`**,因为 `git` 是一个通用、免费、完美的撤销。这正是"先行动"在 这里*格外*可行的原因——回退的基础设施已经存在。(这也是为何该领域是被*锁定*的:在编码里,`git revert` **既是**撤销**又是**训练标签——见 §5。) 这两件工具组合成一个 **2×2**,监视器在其中选择——而这正是分身如何配给它的**强干预力**: ``` 低回退成本 高回退成本 (叶子节点,git 可撤销) (地基性、相互纠缠) 高置信度 │ 绕过,记录假设 │ 行动,但标记待复查 (索引密集) │ │ 低置信度 │ 绕过,吵闹地+可轻易回退 │ 先询问 ← 唯一真正该问的象限 (欠定义) │ │ ``` **只在右下象限强干预**——既欠定义*又*难以撤销。其余一切,分身都保持被动(先行动、记录、错了再回退)。 凡事都强干预,你就重建了那个整套设计要打败的"凡事都问"稻草人。牙齿,只咬在重要之处。 **可逆性是机械可估的**(git 边界干净吗?有下游依赖吗?是叶子级编辑还是地基性的类型改动?)——这是一个 比"校准意图"*远为可处理*的信号。这是个好消息:它在安全处降低询问率,却不在危险处降低。 **对抗"什么都绕过"这种天真做法的失败模式(必须工程化对抗):** 1. **检测延迟** —— `C_revert` 随"察觉所需时间"增长;10 秒内抓到的 bug 是免费的,深藏三个提交之后则昂贵。 2. **复利/纠缠** —— 动作 B 依赖错误的动作 A;回退就变成了解开一张依赖图,而非一次 `git revert`。 3. **静默接受之毒** —— 系统把*未被注意*误当作*被认可*,越来越自信,并把自己的盲区训练得更深。 **"从未查看"必须是"无信号",而非一个正向信号。** **授权注意事项:** "在分支/worktree/沙箱里对可逆编辑先行动"是站得住脚的(分支*就是*干这个用的)。 一个强干预的分身**绝不能**绕过那些守护"不可逆或对外动作"的权限闸门。这个 2×2 把真正不可逆的动作留在 "先询问"象限里。 **那个反转你直觉的关键点:** 过了某个点,便利性与正确性是*一致的*——一个自信地错着的代理才是*最*不便的 结果(你在三个提交之后调试它留下的烂摊子)。**一旦把善后算进去,正确性*就是*便利性。** --- ## 5. 为什么没人能抄走它(可防御性) 不要逐个功能去争——你会输,因为每个功能都在*某处*存在。要争的是**组合**:它需要四块拼图,它们只有 *合在一起*才奏效,而**每一个现有产品最多只有其中一块。** | 拼图 | 含义 | 谁有 | 谁没有 | |---|---|---|---| | **A — 外置** | 由一个*独立*代理判断自信,而非执行体自我反思 | 审查/批评者代理 | Cursor、Copilot、"小心点"提示词 | | **B — 对的对象** | 学的是**询问/行动的决策 + 情境化偏好**,而非静态内容偏好 | arXiv 2603.26233 | Cursor Memories、所有规则文件 | | **C — 对的信号** | 从**被动行为**(纠正、`git revert`)学习,而非对话/手写规则 | ~没人 | 所有人(对话/手写) | | **D — 可证明** | **透明 + 可度量**——可见/可否决 + 一条下降的覆盖率曲线 | ~没人 | 所有人 | - Cursor/Copilot 的记忆 = 内容偏好,来自对话/手写 → **缺 B 和 C。** - 代码审查器 = 外置,但无状态,审查的是*产出*而非*意图* → **缺 B 和"学习"。** - 最接近的研究(arXiv 2603.26233)= A + B,但**没有跨任务持久化** → **缺 C 和 D。** **没有人拥有 A+B+C+D。** 一句话反驳:*"对,每块拼图都存在——一堆零件也叫'存在着一辆车'。产品是那次 组装,而没人在一个真实用户身上把它组装起来过。"* **最难的反对,配最难的反驳。** *"直接提示代理小心一点不就行了。"* 用数字回答:自我反思 **61.2%** vs 外置监督 **69.4%**(§12)。这不是调参的差距——是结构性的。 **两条即便对手明天抄走架构也依然成立的护城河:** 1. **领域锁定。** 它之所以奏效,是因为 `git revert` *既是*免费的撤销*又是*训练标签——修复错误的那个 动作,同时也在教会分身。没有别的领域会给你这个。它的持久*正因为*它是编码专属。 2. **单用户数据飞轮。** 即便完美克隆了你的代码也是冷启动。你的分身拥有*你*几个月的决议历史——不可复制, 且切换成本随使用而复利增长。"用得越久越好用"同时也是"用得越久越被锁定"。 --- ## 6. 数据层——记录什么 原子单位是一个**决议事件(resolution event)**:一个"意图欠定义并被解决"的瞬间。这份数据你免费就能产生 ——捕获本就在发生的决定,无需任何打标工作。*(这种"免费的、来自行为的"捕获就是拼图 C——对的信号。)* **Git 历史是同一套 schema,只是回溯的。** 提交——尤其是回退(revert)和补丁(fix-up)——就是决议事件, 你可以在用户*从未*实际运行分身*之前*就把它们挖出来;这是最强的冷启动加速器(§7)。注意:git 给你的是 `resolution`、以及(对于回退)`outcome`,但 `situation_signature` 和 `interpretation_space` 必须从 diff 中**推断**、而非直接读出——一个错误的推断会污染索引。 ``` resolution_event { situation_signature: 是什么让它有歧义 (检索键) interpretation_space: 各种说得通的解读 resolution: 哪个解读胜出 source: situation | double | human (哪一级) reversibility_est: low | high (2×2 那根轴) outcome: accepted | overridden | reverted | answered (标签) } ``` **`situation_signature` 是成败攸关的决定。** 它是检索键。对编码而言它异常丰富且廉价可取:失败的测试/ 错误类型、在场的文件与符号、被触及的仓库惯例(**复用代码监视器的索引**)、请求的措辞类别("修一下" / "清理一下" / "做成像 X 那样")、这个仓库里的先例。 - 太粗 → 自信地误用上周的决议(自动化的面具)。 - 太细 → 覆盖永远稀疏、永远走不出冷启动、永远在问。 同一根"粗/细"刀刃也支配着**泛化**:把一条事件("删掉这条注释")变成一条原则("别再写显而易见的注释") = 选择一个更粗的签名。LLM *提出*一个泛化;用户随后的行为*修正它的高度*(一个过宽的泛化会表现为覆盖率 的尖峰,§8)。为覆盖率而激进地泛化;让行为把它拉回正确高度。 **标签来自行为,而非问卷:** - **纠正(override)** —— 代理假设了 X,用户改成了 Y。捕获 (X→Y)。这是"自信地错了"的事件。 - **回退(revert)** —— 用户亲手撤销了它(`git checkout`/undo)。*最干净*的负向标签,带时间戳。 - **回答(answered)** —— 人回答了一个澄清问题。最强的正向,最稀有,价值约为一次静默接受的 ~100 倍。 - **接受(静默)** —— 弱正向;**狠狠降权、随时间衰减,并且绝不把"从未查看"当作正向。** --- ## 7. 冷启动——四个层,四种成本 它不是一个问题。 - **层 0——情境索引从不冷。** 对一个全新用户,分身仍然拥有**仓库**。"这个代码库是怎么解决这类歧义的?" 这个问题可以从代码里回答——而且用的是**代码监视器早就建好的同一条索引。** 第 [1] 级在第零天就奏效。 *这就是为什么编码是对的范围。* - **层 1——群体先验。** 对仓库也无法解决的情况,退回到"一个谨慎的开发者会指什么?"(基座模型的默认)。 新用户 = 谨慎的中位数,会多问一点。 - **层 2——快速个性化,而非训练。** 分身是**上下文内/检索式的,不是微调的** → *单独一条*决议事件即刻 可用。冷启动不是在 N 个样本之后结束,而是在*每一个情境类*的*第一条*决议之后结束。 - **层 3——显式引导(可选加速器)。** 摆出 5–10 个真实的有歧义编码情境,让用户解决它们,播种高置信 事件。可选。 **最大的加速器:挖掘 git 历史(由用户提供)。** 一个仓库的提交日志就是一条*回溯式的决议事件流*—— 作者早已做出的真实决定,免费的,在分身被实际使用*之前*就存在: - **回退提交** → 历史性的*回退*标签(最干净的负向,§6); - **补丁/后续提交**("改用已有的那个 helper")→ 历史性的*纠正*(X→Y); - **由审查驱动的改动** → 这个团队视为"错"的东西 → 决议偏好; - **反复出现的 diff 模式 + `git blame`** → 个人偏好(可迁移层)与团队共识(仓库限定层)。 吸收历史,把"从不冷"(层 0)从*仓库当前的样子*升级为*仓库全部的决策历史*——一个密集得多的先验。 **注意事项(与实时捕获同一套纪律):** - git 展示的是**决议,而非 interpretation_space**——你必须*推断*每个提交所解决的 `situation_signature`; 错误的推断会污染索引; - **被提交 ≠ 被认可**——上线的代码可能是赶 deadline 的凑合,或审查者的要求;把每一行被提交的代码都当作 正向,就是在历史尺度上重演静默接受之毒(§4)。给显式回退/补丁加权,给"仅仅被提交"降权; - **时间衰减**——一个三年前的偏好可能已过时;代码库和作者都已往前走了; - 它**预热先验,但不结束冷启动**(仍是逐情境类的)——实时的"纠正/回退/回答"闭环仍是黄金标签。 **可复用性把"新仓库的冷启动"解决了一半。** 因为分身可迁移且归你所有,一个*新*项目并非完全冷的: 用户的**个人层**(例如"我讨厌显而易见的注释")会迁移过来;只有**仓库限定层**从零开始。纪律在于把这两 层分开——一条仓库限定的决议*绝不能*泄漏进可迁移层,否则它会在下一个仓库里失灵(自信地错)。 **策略:拥有越少,就问得越多。** 询问阈值是"解决历史对*当前签名*覆盖了多少"的函数。冷启动不是一个你 会走出的阶段——它是一个逐情境的覆盖度数字。一种*新类型*的歧义,即便对一位经验老到的用户,也会正确地 重新触发询问。 --- ## 8. 验证关卡——必须最先到手的那个数字 > **在索引说"高置信度,保持沉默"的那些次里,用户有多少比例做了纠正/回退——而且这个比率是否随时间下降?** **这是市场之前的关卡。** 如果这条曲线是平的,§9 里的一切都毫无价值。每一篇已发表的论文都是针对一个 *模拟*用户来度量它。**没人拿到过真实人类的纵向数字。** 在一个真实开发者的编码历史上把它做出来,恰恰 贡献了文献给不出的东西——*而且*这正是日后让分身可被售卖的那个东西。 **日后,同一条曲线会变成市场的信任凭证。** 你不是卖"相信我,这是某专家的分身"——你卖的是"这个分身在 一套留出测试集上的覆盖率是 X%"。*现在*证明它有效的那个指标,正是*日后*让它可交易的那个指标。造一次即可。 --- ## 9. 通往"分身市场"之路 愿景是卖分身;纪律是顺序。**不要**以市场打头阵——它是最炫的那张幻灯片,也是最易被抄的那个产品。 **第 1 步——在顶尖程序员身上证明闭环(楔子实验)。** 让精英工程师用上几周。三赢:(a) 它产出 §8 那条 没人有的真实人类曲线;(b) 它播种出第一个可售卖的分身;(c) 它证明论点——曲线要么弯、要么不弯,平的话 没有任何模型质量能救(§10)。顶尖程序员是*对的*实验对象,正因为他们会**纠正**——纠正/回退是质量最高 的标签(§6);新手会静默接受垃圾、毒化索引。**在那一周开始之前,先用他们的提交历史把各自的分身预热 (§7)**,这样曲线度量的是*在真实先验之上的学习*,而不是冷启动下的乱扑腾。 **第 2 步——先做 B2B 变现。** 一个团队的分身 = **团队记忆**:新人在第一天就继承了团队的判断力。买家 清晰、预算真实、靠飞轮留存——而且分身**留在内部**,从而绕开市场最糟的那个问题(IP,见下)。 **第 3 步——面向消费者的市场(未来,放最后)。** 人们在线上出售自己的分身:一位顶尖工程师的判断力被 打包、被购买。诱人——也是*可复用 + 归你所有*的自然终局。但三个难题让它是第 3 阶段、而非楔子: 1. **个人的东西不可迁移——一个被*售卖*的分身是更弱、更易被抄的产品。** 护城河本是"从*你的*行为学*你的* 判断力"。一个被*购买*的分身学的是别人的,于是退化成一个**专家预设**——这远更易被抄(对手下个季度就 出一个"资深 Staff 工程师规则包"),并**重新削弱标准 1**。更糟的是,它把*卖家*的询问/行动焦虑强加给 买家——"戴着面具的先例"(§3),只不过是别人的面具,还是你花钱买的。 2. **IP / 隐私雷区。** 一个在工作单位训练了数周的分身,编码了雇主的惯例、专有模式、可被推断的机密。 "卖你的分身"可能意味着"卖你雇主的编码判断力"。(这是 B2B 优先更安全的第二个原因——分身留在组织内部。) 3. **来源/可信。** 由 §8 的"曲线即凭证"解决——但前提是那个指标先存在。 **纪律,重申一遍:** 以个人学习闭环打头阵(不可抄——那是*你*经年累月的行为),而非市场(一个被售卖的 分身是可抄的预设)。市场是被证明过的闭环所**解锁**的东西,不是我们最先要造的东西。 --- ## 10. 第一个产物(本周可造) **一个捕获决议事件、却什么都还不解决的日志器。** 搭在现有代码代理之上。跑一周。然后检查:*相似的签名是否 真的得到了一致的决议?* - 若是 → 签名设计奏效,分身可行,去造监视器。 - 若否 → 签名错了,且没有任何模型质量能救它。先修签名。 **在造解决器之前先度量。** 签名函数是那个唯一成败攸关的工程决定;在投入监视器或解决器之前,先用实证 验证它。这个日志器也正是 §9 的第 1 步——它就是你在顶尖程序员身上要跑的东西。 --- ## 11. 各部分如何拼合 三个进程,一个共享索引。分身**外置**于执行体——绝不在它脑子里(后训练会腐蚀执行体自身的自信;校准必须 被外置化)。"外置"也正是它**可复用**的原因:一个包裹任何执行体的层,归用户所有。 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 执行代理(executor)—— 干编码的活。从不评判自己的意图置信度。 │ │ 在行动前发出意图。 │ └───────────────┬───────────────────────────────────┬──────────────┘ │ "我打算做 X,因为……" │ 行动 / 用户反应 ▼ ▼ ┌──────────────────────────────┐ ┌───────────────────────────┐ │ 监视器(监督者) │ │ 捕获 │ │ 外置。逐意图: │ │ 观察结果: │ │ 签名 → 查询索引 │ │ 纠正 / 回退 / │ │ → 覆盖度 + 置信度 │ │ 接受 / 回答 │ │ + 可逆性估计 │ │ → 写入决议事件 │ │ → 选择 2×2 象限 │ └─────────────┬─────────────┘ └──────────────┬───────────────┘ │ │ 人的回答(黄金标签) │ ▼ ▼ ┌────────────────────────────────────────────────────┐ │ 索引("分身") │ │ 以 situation_signature 为键的决议事件。 │ │ 以代码监视器的仓库索引作为先验,二者共享。 │ │ 是检索、而非被训练的双子 → 透明。 │ │ 可迁移 + 归用户所有 → 可复用,日后可售卖。 │ └────────────────────────────────────────────────────┘ ``` **和代码监视器是同一套架构,而非新的一套:** 二者都是一个外置进程——给情境签名、查询共享索引、在背离处 行动。**一套索引基础设施,两种查询模式,两个触发器。** --- ## 12. 相关文献(2025–2026) 这套架构今年被学界收敛——这既验证了设计,也把"真实人类的纵向指标"(验证关卡,§8)留作空白。 - **Ask or Assume? Uncertainty-Aware Clarification-Seeking in Coding Agents**(arXiv 2603.26233)—— 最接近的已实现版本。独立的"Intent Agent"监视执行历史,在欠定义处停下。被监督的多代理把解决率拉到 **69.4%**,对比完全明确规格的 **70.8%**;单代理"小心点"只有 **61.2%** → **监视器必须是一个独立进程, 而非给执行体的一句提示词。** 校准是真实且粗粒度的(在 62% 的简单任务上询问 → 在最难的任务上 100%)。 注意:用的是 GPT-5.1 *模拟器*而非人类;需要前沿模型;是提示词搭建而非原生;成本约 2 倍(约 $3.50 vs $1.63/任务)。**没有跨任务持久化——他们完全绕开了冷启动**(即他们有 A+B,而无 C+D——§5)。 - **Training Proactive and Personalized LLM Agents**(arXiv 2511.02208)—— *被训练*的那一支。对"询问的 后果"做 RL;逐用户校准的阈值**同时打败"凡事都问"和"凡事不问"。** 把那个"再训练回写箭头"落到了实处。 - **T-POP: Test-Time Personalization with Online Preference Feedback**(arXiv 2509.24696)—— 在 **测试时从近期交互**构建分身,而非靠微调。这正是"检索而非训练"的机制;用不多的反馈即见效。 - **PersonaAgent / Survey on Personalized & Pluralistic Preference Alignment**(arXiv 2504.07070)—— 情景记忆(近期交互)+ 语义记忆(蒸馏出的长期偏好)。 - **Position: UQ Needs Reassessment for LLM Agents**(arXiv 2505.22655)—— 基座 LLM 的似然是校准的, **但 RLHF 摧毁了它;单轮 RLHF 鼓励过度自信。** → 这就是*为何*校准必须活在一个外置监视器里,而非执行 体里。 - **Learning to Ask: When LLM Agents Meet Unclear Instruction**(EMNLP 2025)—— 面对有歧义的请求, 当下最强的 LLM 默认是"假设意图"而非"询问"。