AI Coding · 协作观测 Future layer on Work Memory + Tanka
协作观测框架
在当前 Agent 仍然先验坍塌的前提下,观察并描述人在协作中是否注入了方向,以及这种注入是否在更长时间尺度上呈现可学习的结构。
§ 00 — Preface
一段不替代评估的观察
它不告诉用户「你是谁」,也不告诉团队「这个人能力如何」。它只显化已经发生过的、可被追溯到证据的事件。
这个框架建立在 Work Memory 之上,不替代它。Work Memory 负责记录工作事实和思考证据;协作观测层负责在这些证据里显化人的方向性输入:用户在哪里改变了 AI 的默认走向,这个改变后来怎样了。
它是一面镜子,不是判官。镜子只显影,不下判决。
用户在哪里改变了 AI 的默认走向?这个改变后来怎样了?两个核心问题 · 全篇围绕
§ 01 — Position
一句话定位
这个框架只观察两件事:
- 人是否在协作中注入负熵。
- 这种注入是否在更长时间尺度上呈现可学习的结构。
它不是评估系统。所有用户面输出必须能追溯到 source refs:session id、canonical entry、commit、PR、spec。无 source 不发言。
1.1术语
- W · plausible space
- 当前可被 AI 生成并讲得通的叙述空间。系统每多给一个解释、画像、标签,W 就在扩大。
- plausible
- 不是「真实」或「被承诺过」,而是「能自洽、听起来合理、可被 AI 继续论证」。
- 梯度 · gradient
- 用户通过行动留下的方向性痕迹:拒绝、约束、承担代价、维持选择。不是人格,不是综合解释。
- baseline · trajectory prior
- 这段协作自身演化出的「自然下一步」分布。判断「非默认」的目标参照系。
- valence
- 正负价值判断。「有梯度」≠「正确/优秀」。框架剥离 valence。
- source refs
- 支撑某个观察的原始证据引用。任何用户面陈述必须可追溯回去。
- empty-state
- 未识别到事件时的输出。它不是空白,是对「没观察到什么、同时观察到什么」的明确陈述。
§ 02 — Premise
核心前提:plausible 坍塌
当前 Agent 在很多场景下会输出 plausible-but-flat 的分布——它能把 A 讲得合理,也能把非 A 讲得合理。
只要用户不施加方向性约束,决策方向就容易变成 AI 在 plausible 选项池里的采样结果。这就是「先验坍塌」:输出看起来丰富,实际方向性很弱。
在这个前提下,人的非默认动作才有观测价值。用户拒绝、约束、改道、承担代价,这些行为不是又一个 plausible 叙述,而是在压缩可能性空间。
如果未来 Agent 不再坍塌、或采样已稳定携带方向,这层框架的意义需要被重新定义。这不是永久真理,只是当前产品阶段的工作假设。
§ 03 — Refusal
为什么不能做评估系统
把对话提炼为「探索型 / 架构思维 / 协作能力 8 分」看起来很产品化,但它在结构上是错的。
原因不是「标签不礼貌」,而是它增加 W:把本应被用户行动压缩的可能性空间,重新扩张成更多可被讲通的身份解释。AI 已经能为他生成一百个听起来都对的解释;再加一个「数据驱动」的画像,本质上是在 plausible 池里再加一个更有权威感的选项。
本框架的判别标准只有一句:
它是在增加 W,还是在显化已有梯度?唯一判别 · 应贴在每个用户面输出旁
§ 04 — Philosophy
设计哲学(三条)
4.1镜子,不是判官
用户面输出必须停留在观察陈述层。
可以这样说
我给出过直接实现方案,你没有继续推进它,而是要求先理解原代码的不变量。后续三次类似情境里,你也做了同样的选择。
不能这样说
你是谨慎型工程师。
前者是事件,用户可以继承、修正或否认。后者是身份命题,会被内化、反弹,并改变它所测量的对象。
4.2痕迹考古,不是身份综合
真正有信号的不是「偏好分布」——偏好太容易被 AI 模仿和包装。真正可观察的是承诺痕迹:用户在哪里放弃其他路径、拒绝更快方案、增加自己的工作量、在没有充分证据时做了方向明确的选择、后来承认「那次是错的」。
痕迹考古的目标不是推断人格,而是把已经发生过的负熵输入重新变得可见。
4.3分析单位是协作,不是用户
同一个用户,跟另一个 Agent、做另一个项目、处在另一个组织压力里,可能呈现完全不同的模式。所以本框架只描述:
某个用户、与某个 Agent、在某个项目上的协作状态。分析单位 · 不是「这个人本质上是什么样」
这条边界对 Tanka 尤其重要。Tanka 会通过 User ID + Project ID 聚合长期记忆,若不锁定「协作」为分析单位,系统很容易滑向个人评分和组织管理画像。
§ 05 — Two questions · Three states
核心观察
5.1当下是否有负熵注入?
不是用户发言越多越好——大量指令也可能只是把 AI 的 plausible 生成继续推下去。真正有信号的是非默认动作:用户压缩了选择空间,承担了代价,并让后续工作沿着这个方向展开。
5.2长期是否结构化?
单点惊讶只说明某一刻用户做了非默认动作。结构化观察的是:这些非默认动作是否可以被学习。如果系统对「用户何时何处会这样做」的预测残差长期下降,说明这种负熵注入呈现结构。
残差长期不下降,本身也是一个信号。它不说明用户差,只说明这段协作关系里,人的方向性输入暂时没有形成稳定模式,或系统尚未学到。
5.3三状态分类(仅内部使用)
§ 06 — Internal mechanism
梯度点 · gradient point
「梯度点」是内部工程术语,不进入用户面 UI。用户面只展示事件本身。
内部定义:
AI 预测路径与用户实际输入之间的 divergence 达到阈值,且满足代价与持续性条件的事件。梯度点 · 内部定义
6.1为什么用惊讶度
信息论里,自信息是 I(x) = −log P(x)。事件概率越低,信息量越大。「惊讶」不是修辞,它就是信息量。这件事的关键不是让 AI 评价用户,而是反过来利用 AI 的预测能力定位它自己触及不到的东西。
系统的发言主语
「我在这里没有预测到你会这样做。」
而不是「我判断你很有洞察力。」
6.2参照系 · trajectory prior
- 通用先验 — 测到的是「怪异度」。
- 用户历史平均 — 测到的是「漂移」,分不开成长和噪声。
- 轨迹先验(目标) — 测到「用户偏离了自己自然演化路径的下一步」。
MVP 阶段可用启发式近似轨迹先验;但目标必须保留,否则系统退化成「用户风格分析」。
6.3三要素合取
§ 07 — Negative space
负空间扫描
强信号不总在用户说了什么,也常在用户拒绝接住什么。
这类「沉默的拒绝」比正面表达更难伪装,也更容易被普通日志漏掉。但风险很高,不能凭空解释沉默。必须同时满足:
- AI 的建议足够具体,可以确认「用户没有接住什么」。
- 后续行为沿着另一个方向展开。
用户面陈述可以这样
我给出过直接实现方案,你没有继续推进它,而是把问题转回依赖边界。后续实现也沿着依赖边界展开。
不可以滑向
你不喜欢直接实现。
§ 08 — Fate tracking
命运追踪
梯度点本身不携带 valence。它只说「这里注入了方向」,不说「这个方向对不对」。
方向后来怎样,要在更长窗口里观察:被维持 · 被扩展 · 被复现 · 用户后来怎么重新解释。
错的梯度点不能被删除。关键约束 · 否则系统在做 hindsight 选择
如果系统只保留事后看起来正确的事件,它就在偷偷做 hindsight 偏好选择,最后呈现的是一个无菌版本的用户。这仍然是评价系统,只是包装成了观察系统。
正确做法:事件保留、命运追加、意义可重开。
§ 09 — Second-order predictability
二阶可预测性
单点惊讶回答「用户此刻是否做了非默认动作」;二阶可预测性回答「用户的非默认动作是否可学习」。
一个成熟的协作关系可能这样:
- 单点上,用户仍然经常让 AI 惊讶。
- 长期上,AI 开始知道用户会在哪些位置介入。
不矛盾——第一层是事件概率,第二层是事件发生位置和模式的可预测性。
§ 10 — Pressure tests
三个压力测试
这些压力测试不是附录,它们决定了框架边界。
CASE · 01
完全授权的用户
「你来决定下一个最有价值的任务」——系统不应解读成「高度信任 AI / 战略授权能力强」。
三状态分类下,长期授权不是中性 empty:在当前 Agent 是 plausible-option generator 的前提下,它把方向选择交给熵泵继续运转。
empty-state 不能静默:「没有人的梯度」≠「没有事情发生」。
CASE · 02
事后证明错误的干预
高惊讶 · 高代价 · 被维持的选择,事后证明错了——仍然记录。它不是「好梯度」也不是「坏梯度」,它是一个方向性输入。
命运可以记录为 reverted、user_reframed、caused_rework,但事件不能删。
防止观察层变成事后胜利叙事。
CASE · 03
新手的错误干预
不断错误介入,按单点惊讶看会产生大量信号——但梯度的量 ≠ 方向质量。
不能因为信号多 credit 用户,也不能因为信号错删除。继续观察反转率、冲突、复现、单位代价产出、自我标注。
仍是协作状态观察,不是能力评分。
§ 11 — Output forms
输出形态
11.1事件流(时间线 · 单事件)
11.2边界与方向(聚合 · 不下身份判断)
可以这样聚合
过去 30 个会话里,有 5 个事件指向同一类模式:当我准备快速进入实现时,你更常把问题拉回依赖边界、运行时边界或数据边界。
不能滑向
你是架构优先型开发者。
11.3对话式确认
如果用户说「只是这几个项目特殊」,系统接受这个反馈,不把它解释成「用户否认自己的模式」。
11.4Empty-state(必须诚实)
主语必须是系统:「我没有识别到」「我注意到」「这段协作目前呈现为」——避免把 empty-state 变成对用户的指责。
§ 12 — Relation to Work Memory
与 Work Memory 的关系
Work Memory 的 synthesizer 已经在抓 motivation · approach · attempts · lessons · decisions · blockers · next_steps——天然兼容。区别只是:
- Work Memory 记录「这段工作为什么发生、怎么推进」。
- 协作观测 记录「人的方向性输入在哪里出现、后来怎样了」。
三条边界:
- 不改 canonical log。观察事件是派生数据,绝不写回事实源。
- 不替代日报。Daily report 面向团队进展;协作观测默认面向用户本人。
- 不进团队看板。它比工作报告更接近个人协作反思,误用风险更高。
短期最有用的改动,不是新建复杂模型,而是强化现有 synthesizer prompt——显式扫描纠偏、拒绝、约束注入;扫描负空间;在 attempts 里区分 tried-and-rejected;在 motivation 里保留用户原话;artifact-only 工作不强行编造解释。
§ 13 — Data shape · Phased rollout
数据形态 · 分阶段落地
13.1派生层存储
建议放在项目 root 下,与 canonical log 解耦:
// ~/.work-memory/<userId>/<orgId>/projects/<projectId>/observations/ { "id": "obs_2026-05-14_ab12", "project_id": "tanka-work-memory-plugin", "event_window": { "started_at": ..., "ended_at": ... }, "source_refs": [ { "type": "session", "id": ... }, { "type": "entry", "id": "e_2026-05-14_abcd" }, { "type": "commit", "id": "a1b2c3d" } ], "user_visible_summary": "我给出过直接实现路径,你把问题拉回到运行时边界。", "internal": { "kind": "gradient_point", "baseline": "trajectory_prior", "signal_types": ["explicit_constraint", "negative_space"], "cost_signals": ["delayed_implementation"], "persistence_turns": 4, "confidence": "medium" }, "fate": [ /* append-only */ ], "interpretations":[ /* versioned, never overwritten */ ], "user_feedback": [ /* higher priority than system interpretation */ ] }
13.2四个阶段
Prompt hardening
不改 schema。让 synthesizer 更稳定地保留观测所需证据:纠偏、负空间、代价、持续。
Local observation report
work-memory observe --window 30d · 本地 markdown · 不上传 · 验证事件流是否有用。
Observation store
新增 observations/ 派生目录。命运追加、解释版本化、user_feedback、source refs audit。
Tanka integration
仅在 opt-in 下进入 Tanka。本人可见 · 不进管理评分 · 不排名 · 不输出用户类型。
§ 14 — Risk map
核心风险
| Risk | Mitigation |
|---|---|
| 观测滑向评价 | 文案规则禁止标签、分数和能力判断。 |
| 系统过度解释沉默 | 负空间事件必须有后续行为支撑,并以低确定性呈现。 |
| 管理场景误用 | 默认本地、私有、opt-in,不进入团队日报。 |
| 生成 W+1 叙述 | 只显化 source-backed 事件,不综合人格画像。 |
| 只保留「正确事件」 | 事件不可删除,只能追加命运和解释版本。 |
| 二阶可预测性被理解为稳定性评分 | 明确它只描述协作模式是否可学习,不评价好坏。 |
| baseline 退化为通用比较 | 长期目标锁定 trajectory prior,不做「和平均人相比」。 |
§ 15 — Bottom line
设计底线
Closing · 镜与判官
这层系统是一面镜子,
不是判官。
镜子不告诉用户他是谁,
只让他看见
自己在这段协作里做过什么。
看见之后怎么解释、是否接受、下一步怎么走,仍然属于用户。
- Subject
- 协作状态 · 不是用户本质
- Verb
- 显化 · 不综合
- Object
- source-backed 事件 · 不是身份判断
- Tense
- 已发生的痕迹 · 不是未来预测