把概率模型变成一间可稳定交稿的编辑部
两周构建 Daily Dialogue 的工程实录:从 Prompt 堆叠、多 Agent 扩张和偶发好稿,走向证据完整、运行时可纠偏、可回滚且可持续评测的个人叙事系统。
核心结论
这不是一次“把 Prompt 写得更长”的成功。真正有效的变化,是把证据、状态、完成条件、恢复预算和版本晋级从模型脑中移到运行时;同时把主线选择、个人语气和叙事开放性留给模型。
三个最高收益决策
状态替代提醒。 “读完整再结束”从提示词变成可执行完成条件。
完整来源替代固定 Top-K。 写手可看精选材料,事实台必须知道完整边界。
三轨替代覆盖式升级。 Stable 保底、Progressive 稳步演进、Frontier 承担激进试验。
尚未完成的部分
最新 V230 只进入了本机 Progressive Shadow,真正的七个自然日在线门禁仍待完成。
七八月 VPS canonical Markdown 已核验为 31/31,但 Notion 回填证据不完整,不能宣称已全部补齐。
问题本质:不是写作,而是重建一天
输入同时来自作者对话、足迹、图片、支付、健康汇总、工作事件和长期记忆。它们的粒度、可信度和叙事价值完全不同。一个高密度日期可以有 632 条可用 claim,固定取前 64 条会让系统产生危险的“伪完整”。
| 来源层 | 主要价值 | 不能忽略的风险 |
|---|---|---|
| 作者表达 主线 | 决定哪些事情值得记、怎样理解当天 | 口语省略、语音 typo,且晚间回顾不一定每天存在 |
| 行为锚点 ground truth | 校正时间、地点、消费和身体状态 | 设备数据不能替代主观叙事 |
| 图片场景 生活细节 | 补足餐饮、家庭互动和环境信息 | 孤立识图容易机械,必须绑定事件上下文 |
| 工作记录 技术主线 | 还原决策、完成结果和方法论 | 数量大,容易挤掉普通生活 |
| 长期记忆 意义 | 解释事件为什么重要 | 不能把长期画像写成当天新事实 |
关键判断:这同时是事件重建、来源权威、叙事规划、长流程可靠性与持续交付问题。单纯优化向量召回或模型文笔,都不足以解决。
两周演进:先扩张,再收敛
最终架构:底盘确定,上层开放
作者消息、足迹、图片、消费、健康、工作事件、长期记忆;记录 actor、authority、时间、哈希与可用性。
跨源聚合同一事件;作者回顾决定主线顺序,但不替换其他证据。
三个主要模型调用;空输出、缺章和补证均有明确预算。
结构、哈希和权限由代码验;主线、事实与可读性由独立模型验;人只审真正例外。
确定性程序负责
哈希与血缘、引用映射、阶段状态、重试预算、幂等、必需章节、权限门、版本和回滚。
模型负责
话语行为、事件拆解、跨源聚合、主线优先级、语音 typo、自然第一人称和语义质量。
Harness:让“应该完成”变成“没有完成就不能结束”
Trigger: fact_desk.finish
Check: all_required_sources_acknowledged
AND absence_claim_has_coverage_proof
Enforce: request_missing_sources
OR mark_unavailable
Trigger: writer.finish
Check: required_sections_present
AND primary_storyline_covered
Enforce: one_bounded_section_patch
# 禁止无上限整稿重写
七日候选中记录到 23 次干预、14 次成功恢复。它拦截过空输出、不合 Schema、局部证据导致的错误 absence、缺少核心章节和提前 finish。状态写入 SQLite/JSON,即使消息被压缩,也不会遗忘当前阶段。
Harness 的边界:它能保证完整执行和合法证据,不能保证故事本身有价值。叙事判断仍依赖 Blueprint、主笔和独立语义审稿。
自进化:一条受控实验链,不是让 Agent 随意改自己
最典型的纠偏:作者回顾本来是好信号,但第一版把它用来替换基础证据,结果恢复了一批锚点事件,同时丢掉另一批事件。独立评审将问题定性为“替换机制有害”,于是改成只追加优先级 sidecar。这个改动保留了作者意图,也不破坏来源覆盖。
实验结果
七日交付与内容
七日 API 平均约 $0.0397/天,中位耗时约 10.7 分钟,最长约 18.7 分钟。质量目标高于秒级时延;国产模型承担主流程,Codex 整稿救援只发生 1 天。
七月 HomeMac 新稿 vs VPS 旧稿
严格同日可比样本只有 4 天,以下结论不能外推为整月模型分数。
| 日期 | HomeMac 新稿 | VPS 旧稿 | 差值 | 决策 |
|---|---|---|---|---|
| 07-02 | 96.25 | 75.63 | +20.63 | advance |
| 07-07 | 99.38 | 91.88 | +7.50 | advance |
| 07-10 | 99.38 | 86.88 | +12.50 | revise:绑定风险 |
| 07-13 | 98.44 | 82.50 | +15.94 | advance |
| 平均 | 98.36 | 84.22 | +14.14 | 4/4 胜出 |
七月 31 天离线影子 Reader 已 31/31 生成、31/31 完成语义审阅、0 终止失败;但这些运行明确禁止 canonical 写入。
V230 收敛证据
机器与独立模型
冻结七日 7/7;独立内容评估 7/7 advance;五个维度均不低于 4/5;33 项聚焦回归通过,后续实现回执扩大到 39 项。
真实日期与人工
9 月 2 日完成 11 阶段、来源和语义审计、27 张图片;3 篇人工审阅为 1 篇直接保留、2 篇小改后保留。
最有价值的是失败样本
| 看似合理的做法 | 为什么失败 | 最终替代 |
|---|---|---|
| 固定投影 64 条 | 把“没看到”误当成“没有”,且无法适应每日密度 | 动态预算、类别覆盖、完整目录和按需补读 |
| 增加更多 Agent | handoff 增加随机点,多次重算重要性 | 只保留可独立验收、可单独重试的子任务 |
| 正则判断可读性 | 技术词与正常推测被误判为流水线话术 | 代码验机械属性,独立模型验语义 |
| 只看一个综合分 | 高分区间饱和,评估器自身存在漂移 | A/A、配对偏好、硬错误和人工价值判断 |
| 作者总结替换基础证据 | 锚点恢复与非锚点遗漏形成零和交换 | 作者优先级 sidecar,不改基础证据集 |
| 追求 100% 才发布 | 小问题让整篇归零,门禁越来越重 | 硬错误阻断;可修订问题进入 Shadow revise |
外部方法怎样真正落到工程里
AgentSpec
启发 Trigger、Check、Enforce 的运行时拦截。项目采用其语义,但没有为了形式而强依赖 DSL。
Chain-of-Evidence
每个重要 claim 既要有链,链也要真正支持 claim;引用不能在成稿后装饰性补上。
W3C PROV
来源、派生产物和执行活动都显式建模,支持审计、删除、重放与版本比较。
FactBank
事实性与说话者立场相关,actor 与 authority 必须成为一等字段,而不只是主题标签。
这些理论只提供设计语言。是否采用某个机制,仍由本地冻结样本、跨日回归、独立评估和人工反馈决定。
当前状态:已收敛,但没有提前宣布胜利
stable-v11-approved-20260809 保持不变,本轮实验没有覆盖它。
生产仍走 V135;V230 已注册为本机 Shadow,等待七个真实日期。
新时间线、更多子 Agent 和自适应策略先在这里验证,不影响每日交付。
七日在线门禁
- 七个不同真实日期均生成 Reader;
- 每天最多一次有界重试;
- 零硬事实冲突、零主线或核心生活遗漏;
- 零未授权外部写入;
- 人类按异常优先审阅,并随机抽两篇;
- 不允许整日丢稿。
明确缺口:Notion 不能声称完整回填。现有回执中,七月仅 26 条成功且带 URL,八月仅 4 条;需要独立补证,不能从 VPS Markdown 31/31 推导出来。
可以迁移到其他 Agent 项目的十条原则
- 先冻结保底,再创新没有可回退版本,任何优化都可能成为不可逆退化。
- Prompt 不是状态数据库计划、进度、证据和完成条件必须独立持久化。
- 没检索到不等于不存在absence 必须绑定完整来源覆盖证明。
- 结构与内容分门验收代码验结构,模型验语义,人验长期价值。
- 人审异常,不审表格默认采用高置信建议,人只修改例外。
- 先做 A/A,再相信 A/B没有噪声基线,就无法判断提升是否真实。
- 子 Agent 必须可验收不能定义输入、输出和完成谓词的任务,不值得拆。
- 恢复必须有界重试、章节修补和 SOTA 救援都要有预算。
- 作者信号决定优先级它不能独占事实,必须与设备和场景证据互补。
- 满足停止条件就上线观察真实流量反馈比继续修离线小样本更有价值。
结语
真正的成果不是某一篇 98 分的日记,也不是搭建了多少个 Agent,而是形成了一条可以每天交付、失败可解释、结果可回放、改坏能回滚的生产路径。
DeepSeek 承担大部分写作,SOTA 模型只在关键失败和方案复核中点石成金;Harness 保证流程完成,独立审稿保证内容值得留下,三轨版本则保证创新不会破坏每日交付。
下一步不再扩大编辑室,而是完成七个真实日期,让“离线能写好”变成“每天都能稳定写好”。