Kunora Agent Memory 产品蓝图
摘要
Kunora Agent Memory 的产品蓝图可以概括为一句话:把智能体的历史上下文,变成可治理、可召回、可交付的记忆资产。
它不是给用户多一个聊天窗口,也不是给智能体多接一个向量库。它要提供一组产品特性,让 kgent、Codex、Claude、Gemini、OpenClaw、Hermas 这些智能体都能接入同一套记忆能力:该记住的留下,该想起的出现,该过期的退出,该解释的能追溯。
蓝图总览
这条链路对应用户体验中的一句话:智能体先学会记住,再学会整理,再学会在任务开始前想起,最后学会解释为什么这样想起。
其中,“技能协同”是横切能力。记忆告诉智能体当前什么有效,技能告诉智能体这类任务该怎么做。更进一步,记忆可以触发技能,技能执行后的经验和教训也会沉淀为新的记忆,并可能抽象成技能版本。详细模型见 记忆与技能的关系。
特性一:记忆捕获
故事从一次普通对话开始。
用户对 Codex 说:“这个项目数据库访问必须走 repository 层,新功能先补测试。”这句话不应该只停留在当前对话里。Kunora 要能识别它不是闲聊,而是值得保留的项目规则。
记忆捕获负责从不同来源发现候选记忆:
| 来源 | 可捕获内容 | 例子 |
|---|---|---|
| 对话 | 用户偏好、规则、决策 | “不要引入大型框架” |
| 任务执行 | 状态、结果、失败经验 | “客户导入接口已完成基础校验” |
| 文件和代码 | 项目约定、目录结构、接口契约 | repository 层负责数据库访问 |
| 工具结果 | 调研结论、测试结果、外部证据 | Gemini 调研出的方案对比 |
这层产品体验要足够克制。Kunora 不能把每句话都存起来,而是要把“值得长期影响智能体行为”的信息变成候选记忆。
特性二:记忆建模
捕获只是开始。真正有用的记忆,必须有类型。
同一句话在不同语境下可能含义不同。“权限可以先不考虑”如果发生在 Demo 阶段,它是临时约束;如果发生在生产系统里,它可能是高风险决策。Kunora 需要把记忆拆成可理解的对象。
| 记忆类型 | 含义 | 智能体使用方式 |
|---|---|---|
| 事实 | 已确认的信息 | 作为背景上下文 |
| 偏好 | 用户或团队倾向 | 影响默认选择 |
| 规则 | 必须遵守的约束 | 约束执行行为 |
| 决策 | 已选方案及理由 | 避免重复争论 |
| 任务状态 | 当前进展和下一步 | 支持继续工作 |
| 经验 | 成功或失败教训 | 降低重复犯错 |
| 证据 | 来源、文件、工具结果 | 支持追溯和审计 |
这一步让记忆从“历史文本”变成“可操作对象”。智能体拿到规则时应当遵守,拿到偏好时应当参考,拿到证据时应当用于判断,而不是把所有内容当成同等权重的聊天记录。
特性三:记忆作用域
用户同时使用多个智能体,也同时参与多个项目。记忆如果没有边界,就会从能力变成污染。
Kunora 要为每条记忆标记作用域:
例如“用户喜欢简洁回答”可以是用户级偏好;“这个项目必须先写测试”是项目级规则;“本轮客户导入任务还差失败报告”是任务级状态。
作用域解决的是“谁该知道”的问题。Codex 做代码任务时应该拿到项目规则;Claude 写产品文案时应该拿到产品定位;Gemini 做调研时不一定需要拿到代码目录约定。
特性四:记忆生命周期
记忆不是永久真理。它会被确认、修正、替代、废弃,也可能自然过期。
生命周期是 Kunora 防止污染的关键。Demo 阶段的“可以不考虑权限”,在正式阶段必须退出当前召回结果。旧决策不是删除就好,而是要能解释“它曾经有效,但现在被什么取代了”。
特性五:任务感知召回
召回不是搜索历史文本,而是在任务开始前重建上下文。
当 kgent 编排一个任务,或者 Codex 准备改代码,它会向 Kunora 描述当前任务:我要做什么、在哪个项目、涉及哪些实体、预算多少 token。Kunora 返回的不是一堆聊天记录,而是当前任务需要的上下文包。
| 召回维度 | 作用 |
|---|---|
| 当前任务 | 判断哪些记忆真正相关 |
| 项目/工作空间 | 避免跨项目污染 |
| 实体 | 找到业务对象、接口、文件、用户等关联记忆 |
| 时间 | 过滤过期内容,提升新近决策权重 |
| 记忆状态 | 排除废弃、撤销、冲突未解决的记忆 |
| token 预算 | 控制进入上下文的内容长度 |
任务感知召回的产品价值是:智能体不只是“想起相关内容”,而是“想起当前要做成这件事所需要的内容”。
特性六:上下文交付
召回结果不能直接丢给模型。原始记忆可能冗长、重复、证据分散,还可能有不同置信度。Kunora 要把召回结果打包成智能体能直接使用的上下文。
一个上下文包应当长这样:
Context Pack
- Active rules: 当前必须遵守的规则
- Relevant facts: 当前任务需要知道的事实
- Decisions: 仍然有效的历史决策
- Task state: 当前进度和下一步
- Warnings: 过期、冲突或高风险提示
- Evidence: 可追溯来源
这层决定 Kunora 是否真的节省 token。好的交付不是“召回 20 条记忆”,而是把 20 条候选记忆压缩成 5 条可执行约束,并保留证据链接。
特性七:技能协同
Kunora 的蓝图不能只考虑记忆本身。真实智能体执行任务时,往往同时需要两类输入:
- 记忆:当前任务里什么事实、偏好、规则、决策仍然有效。
- 技能:面对这类任务,应该采用什么工作流、模板和质量标准。
例如写设计文档时,design-doc-writer 是技能;“用户嫌文档太啰嗦”“本项目偏好 Mermaid 和表格”“当前处于产品设计阶段”是记忆。这些记忆会触发并调节技能。技能执行后,如果用户再次反馈“还是太长”,这条经验会进入记忆;如果类似反馈反复出现,就应该沉淀为技能规则或新版本。
| 协同点 | 产品要求 |
|---|---|
| 技能选择 | Kunora 可以记录某类任务常用技能,但不复制技能全文 |
| 记忆触发 | 根据任务、偏好、项目阶段和历史教训 推荐技能 |
| 技能偏好 | 用户对某技能输出的偏好可以成为记忆 |
| 上下文分区 | 交付给智能体时,技能、记忆、工具说明必须分区 |
| 使用反馈 | 技能输出过长、过浅、格式不佳等反馈可进入记忆 |
| 技能沉淀 | 重复出现的经验和教训可以抽象为技能候选 |
| 版本引用 | 记忆引用技能 ID 和版本,而不是保存技能内容 |
技能协同不改变 Kunora 的核心定位。Kunora 仍然是记忆产品,但它必须管理好记忆和技能之间的双向关系:记忆触发技能,技能产生经验,经验沉淀为记忆或技能版本。同时,它必须防止技能全文被当成普通记忆召回。
特性八:记忆审计与解释
当智能体做出决策,用户应该能问:“你为什么这样做?”
Kunora 需要支持记忆审计:
| 审计问题 | 产品能力 |
|---|---|
| 这次召回了哪些记忆 | 召回日志 |
| 哪些记忆影响了输出 | 影响标记 |
| 这条记忆从哪里来 | 来源和证据 |
| 为什么没有召回某条记忆 | 过滤原因 |
| 旧记忆为什么失效 | 生命周期记录 |
审计不是企业功能的装饰,而是用户信任的基础。记忆越能影响智能体行为,就越需要能解释、能撤销、能修正。