Skip to content

composite 演示数据的打磨记录 ​

状态:2026-10-15,随 edits.json 维护,对着第二次自由运行重做。每处修正都写在 edits.json 里,由 scripts/build_demo_data.py composite 从空状态逐帧重放生成 scenario.mjs,Python 内存内核与原型引擎都要能完整回放;不手改最终 JSON。来源、许可与公开前要决定的事见 SOURCES.md。

起点 ​

项内容
Agent 判断自由运行 free-20261015-161501:claude-opus-5-5 读 skill/SKILL.md(sha256 30b6a7ae10ff…,与第一次相同),从空状态逐帧维护 28 帧。28 帧全部提交成功,3 次被退回(标题超过 24 字 2 次、摘要超过 60 字 1 次),看到回执后都改对;31 次调用,23.23 美元。结果与作者标注的对照见评测记录。
被打磨的批次agent-batches.json:每帧被接受的声明、确认与逐条处置,由 --import-run .local/eval/free-20261015-161501 导出。
人物背景交给 Agent 的是 frames.json 的人物设定:前四条流的设定见 MIX.md,另加一句家人与联系方式(伴侣 Kajsa、女儿 Signe、儿子 Ture、母亲、妹妹 Ulrika、猫 Smilla),说明家庭往来是瑞典语、由作者编写。
演示正文混合语料 v1.1 加家庭流(3217 条),去掉 21 封 Enron 营销邮件后 3196 条;正文截到 500 字符、保留链接。自由运行看到的就是这一版。
第三次运行free-20261015-201110 用同一份语料、换回第一次的手写背景重跑,只用于归因(见第三次自由运行)。演示数据仍依据第二次:家庭六条线的结构判定两次几乎相同,差在档位(第三次母亲住处一直是 12 份,更接近作者),而第二次已经打磨并验收,换底稿要重做全部修正、旁白与回应路径,得不偿失。

第一次自由运行(free-composite-2026-10-15,不含家庭流)打磨出的旧演示数据整份作废:事项 ID、修正、旁白、回应路径与反馈都按这次运行重做。

原则 ​

  • Agent 的批次是底稿。 只在三种情况下改:判断会误导读者(该等你的被记成知会、不相关的事并成一件、随口的事占着最大份额);语料的接缝或版本差异让 Agent 写错了事实;份额腾挪是上面两类修正的连带结果。措辞偏好、差一档的分歧都不改。
  • 只改批次,再重放。 修正写成对批次的 patch、replace、add、drop,重放被内核拒绝就停下;腾份额时优先提前撤下 Agent 自己后来也撤下的痕迹,并沿用它的理由。
  • 不改原文。 MIX.md“接缝”一节列的不一致(公寓与房子、住在法国、问的是狗而人物养猫)与家庭流和其他流之间的接缝都不改输入,影响理解时在旁白里带一句。
  • 回应路径与反馈是演示数据先行定下的形态(见原型说明),不是 Agent 的输出:ask 由打磨时登记,反馈从本人的后续动作推出;家庭流的后续动作是作者编写的。

统计 ​

  • 28 帧全部写了叙事标题与旁白,分成 6 章;两周出现过 60 件根层事项,都写了短名。
  • 对 Agent 批次的修正 9 处,分布在 6 帧;另有 4 处手写反馈链接。处置(disposition)没有改。
  • 登记回应路径 26 条:choose 9、approve 6、confirm 5、reply 3、defer 2、schedule 1;家庭流 13 条(照 OUTLINE.md“Fold 应当怎么判”与 labels.json 的 family.asks),航班 2 条(生活流的提问并在家里的事项里),工作流 10 条,生活流 1 条。11 条在窗口内被本人在来源处的动作回答,7 条到最后仍开着,8 条没被回答就随条目改写、撤下或并入而关上。
  • 反馈链接 160 条,挂在 160 条本人输入上:32 条指回具体的 ask,128 条只指向事项。按流:工作 91、家庭 49、生活 20;家庭流本人 78 条里另外 29 条当时没有已展示的事项可挂(多是同一帧里刚出现的事,或杂事、零碎请求)。

新旧两次运行 ​

两次用同一份 SKILL.md、同一个模型,区别在语料多了家庭流(388 条,本人 78 条)。

项第一次(不含家庭流)第二次
处置(含本人发言)采用 1486、噪音 836、暂缓 491、重复 12采用 1177、噪音 885、暂缓 1117、重复 33
他人输入里的暂缓418(工作 388)889(工作 671、家庭 86、生活 98)
生活流他人输入的采用227130
根层 64 份平均来自工作 48.9、生活 13.1、社区 0.4家庭 37.7、工作 20.3、生活 2.6
两周出现的根层事项88 件,同一时刻最多 33 件60 件,同一时刻最多 26 件
提交被退回5 次3 次

逐帧看,上一次的三类错误这次大多没再出现,所以修正从 31 处降到 9 处:

  • 生活里要他决定的事不再被低估。 航班改经停 f08 就记成等你、6 份(上次知会 3 份,f11 撤下);猫的药量 f18 给 12 份,看到失明风险后 f22 升到 24 份(上次 6 → 12);车道下的主水管 f26 给 24 份(上次 3 份)。三件都是 Agent 把生活流的提问与家里的消息并成了一件:家人在追问,这件事就成了“家里在等你”。
  • 长期事项不再一直占着大份额。 master CI 只在 f01–f10 记等你,12 份只有 f02 一帧,f11 起 Agent 自己降为进行中(上次 27 帧都是等你、12 份,打磨改了 14 帧)。每日的合并记录滚成一条“合并留档”,过几天就撤下。
  • 把不相关的提问并成一件,这次变成把问答站上自己提问的新回复收成一条“问答新回复”的知会(1–3 份),而不是两三个提问共用一件事的份额与问题。

最常见的几类错误 ​

按自由运行的全部 28 帧,不只是被修正的那些:

  1. 家里的事普遍高一档。 家庭流平均占根层 37.7 份,工作降到 20.3。母亲九月住哪有 12 帧占 24 份(作者标 high,即 12 份),猫的药量 f22、车道下的水管 f26–f28 也到 24 份;几次升到 24 份都有截止或家人催促,算差一档的分歧,不改。反过来,作者写定为“当帧最高”的 Ture 发烧(f20)只给了 1 份知会,手机首页会把它折进“其余”,打磨时升到 3 份。
  2. 随口的约定被时间信号抬高。 Joakim 把“明早 9 点骑不骑”发错到派对群,Agent 因为“今早 9 点就要出发”给了 12 份、排在根层第一,高过同帧邻居说车道湿了一整周(作者:骑车最多一条痕迹)。打磨时降为 3 份。
  3. 把接缝当成事实。 家庭流里他 8/9 早上对 Joakim 说“晚上发 rc1”,工作流里 rc1 在 8/8 23:10 已经发出。Agent 以家里那句为准,把“已发”改回“今晚发”,此后 15 帧挂着“rc1 发布待确认”。同类的小错还有:把“下周六”写成 16 日(应为 15 日),把“诊所回过电话、他没回拨”写成“诊所还没回电”。这几处都改了。
  4. 了结之后降得慢,零碎的事并进别的事。 猫的药量 8/14 答上后又占 12 份三帧;母亲 f28 约下周日吃饭、Ulrika 提的 9 月 30 日生日,都并进已经了结的“住哪”那件;f01 的浇番茄并进了猫;开学同意书在 f22 并进了作者判为噪音的头虱提醒;两条钓鱼短信都单列了提醒(BankID 那条挂了六帧,假关税那条一帧),没有丢弃。这些是措辞与粒度上的分歧,不改;对回应路径的影响见下文(一件事此刻只能登记一个问题,母亲的生日就没有登记)。
  5. 生活问答收成一条知会,f21 之后整体暂缓。 与家里有关的五个提问(猫的药量、航班、漫画、后刹、铜水管)都并进了家里的事;其余问答回复只进那条知会,f21 撤下之后,新提问的回复全部暂缓(空调、地暖找平、斜切锯、修车价、预算表、天花板凸线、车道厚度)。有人在问答站等他澄清的两处(Tilda 问是否只要美国的方案、汤底是甲壳还是贝类)都没有单独成件。不改。
  6. 工作里暂缓翻倍,评审请求并成一行。 工作流他人输入的暂缓从 388 升到 671,多是 Mastodon 回复、评论与评审:它们关联到他的事(所以不是噪音),但不改变他的理解,这正是 SKILL.md 里 deferred 的定义,不算漏判。评审请求 f18 起被并成一行(#13530、#12088、#13295、#13350),f22 又把 #13567 和它的修复 #13572 并进来,#13572 批准之后,三个旧 PR 在 f23–f27 一起占 6 份。不改,回应路径登记在这一行上。

此外,提交被退回的 3 次都是字段长度(标题超过 24 字、摘要超过 60 字),回执说明后一次改对,不影响演示数据。

逐帧修正 ​

帧事项改了什么为什么
f13release-8-22-rc1不改成“今晚发 rc1”,保持已发、3 份家庭流与工作流的接缝:rc1 已在 8/8 23:10 发出
f13joakim-ride-16标题“下周六16日”→“下周六15日”他说的下周六是 8 月 15 日
f14release-8-22-rc1去掉改写成“rc1 发布待确认”同 f13
f18release-8-22-rc1降到 1 份时保持已完成,理由改为“发出已三天”同 f13;Agent 的理由是“还是没看到 rc1 发布记录”
f20smilla-vet标题“诊所还没回电”→“未回诊所电话”诊所 9:42 回过电话、留了语音,是他没回拨
f20ture-pickup-08121 份 → 3 份,仍是知会4 岁的儿子发烧 38.4、Kajsa 在手术室,是这一帧家里最大的事
f20benchmark-13465提前撤下给 Ture 腾 1 份;Agent 在 f21 撤下,理由相同
f21benchmark-13465去掉撤下已在 f20 撤下
f24joakim-ride-1612 份 → 3 份,仍等你见“最常见的几类错误”第 2 条

手写反馈链接 4 处:他开 #13484(undef NDEBUG)回答 NDEBUG 之争;家里“约好了周一 10:15”回答“约好兽医了吗”;告诉 Kajsa“只是技术经停、19:40 落地”回答“改签还是照旧”;热浪里给母亲打的电话挂到母亲那件事上(Ulrika 的提醒与通话在同一帧,自动推导找不到可挂的事项)。

保留未改、但读演示时会碰到的问题:上面第 1、4、5、6 条;社区流 738 条 Agent 一条也没采用;Mastodon 提及里本人账号写成 @jberglund@mastodon.social,与人物设定的 @jonasb 不一致(语料化名的遗漏)。

回应路径与反馈 ​

  • 登记。 edits.json 的 asks 按事项与帧登记,按钮从模板来(review → approve,issue → choose,answer → reply,confirm、schedule、defer),也可以直接写;short 是 16 字以内的短问法,供腕上一瞥,这次每条都写了。ask 属于登记时的条目版本:条目此后每被改写一次就以同一 id 重登记,直到 until 或条目不再 active;改写后没有重登记的,视为问题失效。一件事同一时刻只登记一个问题。
  • 反馈从动作推出。 本人在 GitHub 上的评审、合并(含“closed this in 提交”)、关闭,在论坛、问答站、邮件列表、Mastodon 上的回复,以及家庭流里的消息、通话、表情、Swish 转账,按线程挂到当时已经展示过、引用了同一线程的 active 事项上,via 记为 source。同一线程被几件事引用时,挂到 Agent 在处置里把这条输入关联到的那件;没有关联的,挂到以这个线程为主的那件。家庭流的杂事线程(浇番茄、收快递、照片)不推导。
  • 映射到按钮。 那件事登记着 ask 时,动作映射到 ask 的按钮(合并算批准,通话对应“打给诊所”);没有对应按钮或没有 ask 时只指向事项,动作取自 feedback.sourceActions。批准某个 PR 的 ask 只认那个 PR 上的动作,也可以用 answer_threads 指定哪几个线程能回答它:条目顺带引用了别的线程时,他在那边的回复只记在事项上。家里的多数问题只给选项、不给“回一句”,所以他和 Kajsa 的来回消息只记在事项上,不算回答了问题。
  • 11 条被回答的 ask:水碗尺寸、约兽医、#13473、NDEBUG(他开 #13484)、vdns、航班信息、改签还是照旧、#13528、猫的药量(8/14 打给诊所)、机票退款、#13572。
  • 7 条到最后仍开着:主水管挖开换还是免挖(截止 8/17 10:00)、开学同意书、VAB、三个旧 PR 推到哪天、#13596、派对的 Swish、母亲 23 日来吃饭。
  • 8 条没被回答就关上:master CI 谁来查(f11 有人在修)、母亲九月住哪(f23 母亲自己交了回执)、后刹排气定哪天(f21 Kajsa 直接买了新车)随改写失效;派对回几个人(f22 Kajsa 在群里替他报了 4 人)、Göran 抬棚屋随事项撤下;#13350、#13295 随事项并进“待审 PR”,第一处开学同意书随事项并进开学准备,在新事项上重新登记。

旁白、章节与信号 ​

  • 每帧的 title 与 narrative 由打磨时按输入、家庭流节拍表与 Agent 的批次手写,提到 Agent 原判断与打磨改动的地方都直接说明。帧是“此前 12 小时”的窗口:f15 是 8/10 周一上午,f16 是周一下午到夜里。
  • 6 章按日期与主线分:漏洞报告重开与母亲的换管通知、最忙的一天撞上航班改经停、rc1 回城与看兽医、猫的药量与 Ture 发烧、热浪里母亲自己定了与车道下的水管、周日水管还没定。
  • frame.signal 保留 Agent 看到的宿主信号(每 12 小时定时整理、收到条数与窗口),另加 coverage 写各流条数,并注明这一帧有几封营销邮件没有收入演示(所以 received 可能比演示里的输入多)。
  • 第二轮草图的选用帧写在 sketchFrames,说明写在 sketchNotes。
  • 根层事项的短名写在 categories.<id>.short(60 件,手写):取标题里的事(“猫看病”“主水管”“NTLM 复用”),不用 PR 编号;让位图与批次记谱在色块和记号旁用它。