WukongDojo.AIAI is here, just build it
中文

文档 - Memory 可见性

看见 Agent 在记什么

在悟空平台上, 你不只是 prompt 的作者, 你是 Agent 记忆的管理员. 每一条 fact, commitment, trajectory 都看得见, 改得动, 写得了 note. 而且每一 turn 的 LLM 调用, 你都能看到记忆是怎么塞进 context window 的.

1. 为什么是世界第一

ChatGPT, Claude, Gemini, Coze, Dify 这些平台上, Agent 的长期记忆都是一个黑盒. 你写完 prompt 后, Agent 在跟用户聊什么, 记住了什么, 用记住的什么去回答下一句 - 你看不到也改不了. Agent 突然说错话, 你只能猜.

悟空是 全球首个 把 Memory 层直接开放给 Builder 的 Agent 平台:

  • 可见 (Visible) - 每一条 fact, commitment, trajectory 都在屏幕上.
  • 可编辑 (Editable) - LLM 抽错了你可以改, 不该记的可以删.
  • 可批注 (Annotatable) - 在 Agent 任何一条回复下面留 note: "下次该先问预算".
  • 可追溯 (Traceable) - 每一 turn 都能看到塞进去的是哪些记忆, 每条记忆又是从哪个 turn 抽出来的.

这不是一个 ChatBot 升级. 这是从对话 AI 走向数字生命体的开始.

2. 三大模块 - 先看全景

模块回答的问题在哪儿看
Memory 是从哪里来的这条记忆是哪一段对话抽出来的? 哪一个 turn? LLM 写的还是你写的?Session Memory 区, Memory Snapshot Card, Latest Memory 里的 "Learned [date]" 跳转
Memory 是怎么被用的这一次 LLM 调用, 从记忆里挑了哪些条目塞进 context window? session summary 被压缩成什么样?Memory At Turn 弹窗 (点 turn 头上的 🧠 N facts · M commitments 按钮)
Builder 怎么干预改 / 删 / note. 你的动作直接影响下一 turn.Latest Memory Drawer (改 / 删), Memory Snapshot Card (追加 fact), Builder Message Memory (per-message note)

3. 怎么进入

Builder Dashboard → 选 Agent → 用户列表 → 选某个 end-user → Conversation Memory View. URL 形式: /agents/{agentId}/conversations/{userId}/memory. 顶部是 Agent 名称, end-user 邮箱, session 数量, 累计收益. 下面是四个可折叠的记忆层级标签, 再下面是聊天记录时间线.

4. 四个记忆层级 (顶部 Tab)

Builder 看到的 Memory 不是一锅粥, 而是按生命周期分成四层. 每层一个颜色, 一个图标, 一个用途.

🧠 Latest Memory - Agent 现在心里装的

最常用的入口. 打开后是一个 Drawer, 分两段.

Short-term (短期, 0-6 个月) - 以 Facts 和 Commitments 形式存在. 每条 Fact 显示: 内容文本, Learned 2026-05-28 形式的时间戳 (点击会跳到产生它的那条原始消息), Edit / Delete 按钮. 每条 Commitment 显示: 状态 pill (OPEN / DONE / ABANDONED), 承诺内容, 承诺日期.

Long-term (长期, 6 个月以上)- 压缩段落 + Trajectory. 长期模式是只读段落. Trajectory 是 Builder 可编辑的多行文本 - 这是 Agent 对这个用户的“成长曲线”理解, 你可以直接改写.

Builder 权限: 改 / 删 fact, 改 trajectory.

💾 Session Memory - 这次对话内部记的

当一次对话长到超出 context window, 会触发 session-level 压缩. 这里展示结构化的压缩结果.

子块: Open Threads (描述, 下一步动作, 阻塞在谁, 优先级), User Profile (domain literacy, interaction style, 推断项目, 明示目标, notable insights), Facts, Key Events (T5, 摘要, 结果), Prose Summary.

只读. 它告诉你 Agent 在这次对话里看到了什么.

🔮 Short-Term Memory - 跨 session 的用户画像

Tier 2. 会被注入到每次新对话的 system prompt 的 Block 0.

每条显示: 置信度圆点 (绿色 = 已确认, 琥珀色 = 推断), 内容, 状态 pill (active / stale / resolved / contradicted / archived), confidence label, last seen (today / yesterday / Nd ago), expiry (no expiry / expires in Nd / expired), agent kind tag, tags, evidence (斜体, 如果有). 按类型分组: Fact ◆ / Commitment ◉ / Trajectory ⟶, 每组显示 active / inactive 计数.

这一层只读 - 要编辑请回 Latest Memory.

🌐 Long-Term Memory - 永久档案

Tier 2.5. 从 stale 的短期记忆每周 harvest 一次. 半年以上压缩肖像.

每条显示: 状态 (Active / Superseded), 版本号 + harvest 次数, 引号内的散文摘要 (斜体), Tags (青色 pill), 来源行数 ("sourced from N short-term rows"), 首次创建日期. 当前 Active 版本在上, 历史版本默认折叠.

只读. 这是 Agent 对这个用户的长期肖像画.

5. Per-turn 追溯 - 每一 turn 记忆是怎么用的

这是悟空 Memory UI 最独特的功能. 目前没有任何竞品做到这一点.

聊天记录时间线里, 每一对 (user message + agent reply) 上方有一条蓝色按钮: 🧠 5 facts · 2 commitments ⌄. 点它. Memory At Turn 弹窗会打开, 标题是 "Memory sent at this turn", 副标题是 turn 序号 + 时间戳.

段落展示什么
Session Summaries这一 turn 之前所有 session summaries + L5 compaction preview (session 内部压缩预览)
Factsmanifest.l3.pinnedFactIds 里的 facts - 也就是被挑出来塞进 context window 的那几条

这就是 full trace 的核心:你看到的不是 "Agent 当时大概记得什么", 而是那一次 LLM 调用真实的 context window 切片. manifest 是从 runtime 直接读出来的, 不是事后重建.

这里只读. 想改某条 fact, 回 Latest Memory.

它解决了什么:
  • "Agent 怎么突然说错话了?" - 现在你能看到它当时拿到的 context.
  • "Agent 为什么没用上用户之前说过的偏好?" - retrieval 排序可见.
  • "session compaction 把哪些细节扔了?" - L5 preview 把压缩后的样子摊给你看.

6. 每条 Memory 是从哪里来的 (Provenance)

Memory Snapshot Card. 聊天记录时间线每一个 session 边界, 都有一个 "Memory after Session N" 卡片, 副标题 "Post-processed [date]" 或 "Not post-processed yet". 分三组: Facts (本 session 新抽出的会带 NEW 徽章, 每行右侧 Edit / Delete), Commitments (状态 pill, open 的可直接删), Trajectory (如果本 session 更新过会带 NEW 徽章, 右侧 Edit). 底部还有 + Add fact - Builder 手工追加 fact 的入口.

关于手写 fact 的信任语义: 这种 fact 的 provenance 会被标记为 builder_authored (区别于 llm_generatedbuilder_edited), retrieval 时会按更严格的规则处理, 防止 prompt injection. 完整策略在平台内部的 trust-and-injection 文档.

"Learned [date]" 跳转. 每条 Short-term Fact 旁边都有 Learned 2026-05-28 这种链接. 点它, 时间线会自动滚动到那条原始消息并高亮.

这就是 end-to-end trace: fact → 它被抽出来的 turn → 它后来在哪些 turn 被 inject 进 context. 三段路径全部可见.

7. Builder 的三种干预动作

Memory 不是装饰, 它是 Agent 行为的输入. 有三种干预方式.

Edit - 修正 LLM 抽错的事实

Edit 在 Latest Memory Drawer 和 Memory Snapshot Card 的每条 fact 右侧都有. 点 Edit, 弹出 inline textarea, 改完保存.

后台行为: provenance 从 llm_generated 变成 builder_edited. 下次 retrieval 时, 这条 fact 的可信度会上调 (人工确认过的优先级高).

Delete - 删除不该有的记忆

同样的入口. 常见场景:

  • 用户随口提了个错误信息, Agent 把它当真了.
  • 隐私敏感内容 (手机号, 住址) 被无意识地记成了 fact.
  • 旧版本 prompt 抽出的过时知识.

软删除: 从 retrieval 集合里移除, 历史轨迹保留 (合规审计仍可查).

Note - 在 Agent 回复下面写批注

每条 Agent 回复 下方有一个折叠按钮 + Add memory. 展开后是 textarea, 写完点 Save. 这条 note 会以 📝 1 memory 的形式常驻在那条回复下面.

Note 给三个对象看:

  • 给你自己 - 下次回顾这个对话时, 你会看到自己当时的思考.
  • 给悟空平台 - 你的 note 是平台改进 memory engine 的信号.
  • 给未来的 Training 模块 - 这是 Builder 标注数据. 后续 Training 上线后, 它就是 RLHF / DPO 的原料.

示例 note:

  • "这里 Agent 应该先问用户的预算, 而不是直接推荐高端方案."
  • "这条 fact 是用户在玩笑, 不应该记."
  • "Agent 把 commitment 标成 done 太早了, 用户还没确认."

Note 的 provenance 是 builder_authored, 不会被注入到面向 end-user 的 prompt, 不会污染真实对话.

8. Memory 改了之后会发生什么

改了 short-term fact: 立即对 下一次 对话生效. 当前 session 已经送出去的 prompt 不会回滚. 历史 turn 的弹窗仍然显示旧值 - trace 不被改写 (这是设计上的不变量).

改了 trajectory: 立即生效. Trajectory 是 Block 0 的一部分, 下次对话开始就读到新版本.

删了 fact / commitment: 立即从 retrieval 集合里移除. 历史 trace 仍然保留- 你三个月后回头看那条 turn 的弹窗, 仍然能看到 "当时这条 fact 被 inject 了".

写了 note: 不影响 Agent 的对外行为. note 进入 Builder 自己的 review pipeline 和未来 Training 模块.

9. 一句话总结

黑盒时代结束了. 从今天起, 你的 Agent 记得什么, 用了什么, 为什么这么回答 - 你都看得见, 也都管得着.