跳到正文

记忆

记忆让新任务可以召回过去工作中的有用背景。它是用户拥有、可选择启用的辅助上下文,不是指令、 策略,也不能替代仓库中的 AGENTS.md 等版本化文件。读取记忆、贡献新记忆、从外部工具内容学习 三个能力默认全部关闭。

为新任务选择策略

打开 Settings → Advanced → Memory & learning。三个开关彼此独立:

设置允许的行为
Use memories in new tasks从配置的主记忆存储读取相关条目。
Contribute new tasks to memories从符合条件的已完成任务中提取并保存有用背景。
Learn from tool-assisted tasks默认关闭;贡献开启后,额外允许使用过 Browser、MCP、Web 搜索等外部结果的任务参与学习。

策略由 Java Host 按已认证所有者保存,并在创建任务时冻结。修改默认值不会悄悄改变已有任务的同意 边界;升级后,旧版本曾隐式允许的外部工具学习也会重置一次,必须再次明确开启。因此可以只召回、 只贡献、二者都开或全部关闭。

浏览器只是投影:不能通过本地存储制造同意,也不能伪造任务创建字段覆盖 Host。多个设备使用版本号 更新同一所有者的默认值,旧页面不能静默覆盖较新的选择。切换登录或配对身份会进入彼此独立、初始 关闭的记录;同意权威不可用时,开关不可编辑且任务创建保持失败关闭,不会猜测用户选择。

必须遵守的规则应写入仓库

偏好与可复用背景适合记忆;必需命令、架构规则、安全约束和审查政策应写入 AGENTS.md 或其他 版本化项目文档。

为什么需要所有者隔离

记忆可能包含个人偏好、仓库决策或过往任务中学到的背景。Kairo 因此把同意、召回、管理游标、 编辑和删除回执都绑定到一个凭据身份,而不是让共享本地数据库全局可读。

这一边界阻止登录、API token、配对设备、任务 fork、handoff 或子智能体静默跨入另一身份的 保存上下文。获准子智能体只得到父任务所有者范围的只读视图。这不是多租户 SaaS 声明:一个 Kairo Code Host 只服务一位操作者,不同人应使用独立 Host。

召回时会发生什么

启用记忆读取的任务会在每次请求开始时截取一次当前用户的直接意图,最多 4,096 个完整 Unicode 码点;同一请求的多次模型/工具迭代复用这一快照。Kairo 只向一个配置好的主存储查询候选,并在写入 模型上下文前排序和限量。工具输出、系统指令、旧历史、附件、Browser 内容以及其他用户的集合不会 成为召回查询。

每条候选在召回时都会重新验证来源。只有用户直接保存、能逐字回溯到一条用户消息的模型提取,或 所有者已同意的结构化 Memory 写入,才可以进入模型上下文。未知、旧版、自动生成或来源与权限声明 不匹配的记录仍会显示在管理器中,便于检查或删除,但不会被静默注入。召回还会确定性限制条目数、 UTF-8 字节数、保守 token 单位、年龄与 namespace;凭据会被脱敏,存储文本也会作为“不可信证据” 隔离,而不是当作指令执行。

上下文压缩与长期记忆是两件事:压缩长对话不会把完整转录或工具输出保存为记忆,子智能体任务描述 也不会自动成为召回查询。父任务已同意读取且子智能体配置允许 memory_read 时,子智能体可以显式 查询同一所有者集合,但看到的是拒绝写入的视图。子智能体永远没有 memory_write,不会运行记忆提取; 父任务未同意读取时,子智能体不会得到任何 Memory 工具。内置 explorer 还会在最终工具上限中移除 memory_read

召回结果仅供辅助,可能过期或不相关。智能体仍须检查当前仓库并服从当前项目政策。

查看与管理已保存记忆

打开 Settings → Advanced → Memory & learning → Manage saved memories,可以:

  • 搜索当前范围并按页加载更早记录;
  • 手工添加记忆;
  • 分辨条目来自用户、智能体保存还是规则/模型提取;
  • 修改保留文本;
  • 删除条目并检查持久删除回执。

Kairo 范围保存供 Kairo Code 智能体使用的上下文,Personal 范围保存用户级上下文。两者都 受当前凭据身份的所有权边界约束。本地身份、密码登录、API token 与配对设备拥有不同记忆命名空间, 跨越登录或配对边界不会静默复用条目。原始用户名、OAuth subject 和 bearer token 不会作为记忆路径 或元数据。一个 Host 的这些凭据属于同一操作者,而非相互隔离的租户;不同人员应使用不同 Host。

分页延续项会绑定已登录所有者、范围和准确搜索条件。切换范围或搜索会开始新列表;Host 重启或游标 失效时,界面提供明确的重新加载操作,不会偷偷返回第一页并冒充延续结果。

理解删除回执

删除接口返回不等于删除已被证明完成:

回执状态含义
Verified权威主存储中已确认不存在该条目。
External unverifiedKairo 已移除主视图,但自定义提供方无法证明所有外部副本都删除。
Pending / interrupted不应假定完成;需要重试或诊断主存储。
Incomplete提供方步骤失败,持久回执保留供排查。

回执包含标识与状态,不保存被删除的记忆正文。

存储与可用性

召回、写入、提取、管理和删除始终使用一个 Java 权威主存储。默认实现是 Kairo Code 数据目录下的 文件存储;管理员也可选择 JDBC 或明确配置的自定义提供方。设置页只显示后端类别、持久性、共享范围 和健康状态,不泄露路径或凭据。

主存储异常时,记忆能力会明确不可用,不会把读取和写入静默拆到一个回退存储。自动提取是持久后台 工作;提供方临时限流时任务会延期,而不是形成请求风暴或阻塞已完成任务。

默认文件主存储使用 JVM 锁和崩溃后自动释放的操作系统文件锁,在共享同一真实目录的协作进程之间 串行化经过校验的读取与修改。它不承诺跨多个物理文件的断电原子事务,也不构成多 Host 部署契约。 管理游标及其他 Host 权威仍属于单个实例,因此受支持的发布拓扑仍是一个 Host 进程。记忆本身需要 数据库时使用支持事务的 JDBC 主存储,不要把文件锁理解为横向扩展能力。

隐私检查清单

启用贡献前:

  1. 判断任务内容是否值得以后复用。
  2. Browser 或外部工具结果不应成为学习来源时,保持 Learn from tool-assisted tasks 关闭。
  3. 在 Activity 收件箱查看近期记忆活动。
  4. 定期检查 Kairo 与 Personal 两个范围并删除过期条目。
  5. 即使贡献关闭,也不要把秘密写进提示词或仓库;模型与工具仍各有自己的数据边界。

Kairo Code 用户手册 · 闭源产品分发