Memory

跨会话的长期记忆 — 搜索、读取、保存。Memory 技能为 CLI-JAW 提供持久化的回忆能力,包括用户偏好、项目决策以及跨越单次对话的持久知识。

默认启用: 是 类别: 生产力 L1 + L2 作用域

快速参考

技能名称memory
状态已激活(自动注入每个会话)
类别生产力
SKILL.md 路径~/.cli-jaw/skills/memory/SKILL.md
数据目录~/.cli-jaw/memory/structured/
依赖无(无外部依赖)
安装预装(随 CLI-JAW 附带)
作用域L1 实例本地(读写)+ L2 仪表盘(只读)
嵌入搜索可选,默认关闭

概述

memory 技能是 CLI-JAW 的持久化知识层。它使 AI 能够跨会话记住事实、偏好和决策,而不仅仅依赖对话上下文。每个会话都会自动注入 memory 技能 — 无需手动加载。

Memory 在两个作用域下运行:

L1 实例本地记忆

  • 命令: cli-jaw memory search/read/save
  • 所有操作的默认路径
  • 仅限当前实例
  • 读 + 写
  • 用于所有保存操作

L2 仪表盘记忆

  • 命令: cli-jaw dashboard memory search/read/instances
  • 跨实例联合查询
  • 多实例 / 多主机
  • 只读
  • 仅当用户明确请求跨实例数据时使用
当用户请求仪表盘记忆、所有实例、其他实例/主机或跨实例上下文时,才使用 L2 仪表盘记忆。其他情况一律默认使用 L1。

规则

Memory 技能遵循七条严格规则,规范何时以及如何使用记忆:

#规则详情
1回答前先搜索当被问及过往工作、决策或偏好时,在回复之前始终先运行 cli-jaw memory search <keywords>
2立即保存持久事实用户偏好、关键决策和稳定的项目事实应在识别后立即保存。
3使用结构化目标路径优先使用 structured/profile.mdstructured/semantic/...structured/episodes/...,而非随意路径。
4承认信息缺失如果搜索没有返回结果,应回答"我没有相关记录。"不要捏造记忆。
5仅保存稳定事实不要保存临时待办事项、阶段日志或临时清单。只有持久性知识才应存入记忆。
6广泛搜索构建搜索查询时,考虑韩语/英语变体、错误代码、符号和文件名。
7使用注入的上下文提示中可能已包含任务快照;但当需要精确信息或确切措辞时仍应搜索。

命令

搜索

在记忆索引中搜索关键词。返回匹配的条目及其源文件路径。

# 基本关键词搜索
cli-jaw memory search "keyword"

# 搜索用户偏好
cli-jaw memory search "user preference"

# 搜索错误代码或技术术语
cli-jaw memory search "auth login 401"

# 搜索系统/服务相关术语
cli-jaw memory search "launchd plist service"

# 跨实例搜索(L2 仪表盘,只读)
cli-jaw dashboard memory search "cross-instance topic"
提示:广泛搜索。如果第一次查询没有返回结果,请尝试韩语/英语变体。例如,同时搜索"인증"和"auth"以匹配双语条目。

读取

读取特定记忆文件的完整内容,或其中的指定行范围。

# 读取用户档案
cli-jaw memory read structured/profile.md

# 读取语义知识文件
cli-jaw memory read structured/semantic/cli-jaw.md

# 读取情景记忆条目
cli-jaw memory read structured/episodes/live/2026-03-07.md

# 仅读取指定行(适用于大文件)
cli-jaw memory read structured/profile.md --lines 1-30

保存

将持久事实追加到记忆文件中。内容是追加写入,不会覆盖原有内容。

# 将用户偏好保存到档案
cli-jaw memory save structured/profile.md "- User prefers Korean UI and English code"

# 将技术事实保存到语义文件
cli-jaw memory save structured/semantic/cli-jaw.md "- Memory runtime uses task snapshots before response generation"

# 保存有时间标记的情景记忆
cli-jaw memory save structured/episodes/live/2026-03-07.md "## 16:30\n- Decided to remove query-provider setup from memory UX"
重要:仅保存稳定、持久的事实。"当前任务进度"或"临时调试笔记"等临时数据不应存入记忆。如有疑问,请考虑这个事实下周是否仍然有意义。

列表 & 初始化

用于检查和初始化记忆目录的实用命令。

# 列出所有记忆文件及其大小
cli-jaw memory list

# 初始化记忆目录结构(首次设置)
cli-jaw memory init

存储布局

记忆被组织为 ~/.cli-jaw/memory/ 下的结构化目录层级。每个子目录有不同的用途:

路径用途何时使用
structured/profile.md 稳定的档案、偏好、长期项目上下文 用户偏好、工具设置、默认行为
structured/episodes/ 按时间排序的情景记忆 会话结果、带日期的决策、有时限的事件
structured/semantic/ 持久事实和提取的知识 技术知识、项目架构笔记、API 模式
structured/procedures/ 可重用的工作流和规则 分步指南、部署流程、标准流程
structured/sessions/ 可选的会话衍生记忆 从已完成会话中自动提取的洞察
structured/index.sqlite 搜索索引 自动维护;为 memory search 提供支持
~/.cli-jaw/memory/
  structured/
    profile.md                          # 用户偏好和身份
    index.sqlite                        # 全文搜索索引
    episodes/
      live/
        2026-03-07.md                   # 每日情景条目
        2026-05-29.md
    semantic/
      cli-jaw.md                        # CLI-JAW 相关知识
      deployment.md                     # 部署流程
      project-architecture.md           # 架构决策
    procedures/
      release-checklist.md              # 可重用的工作流
      code-review-process.md
    sessions/
      session-2026-05-29-abc123.md      # 自动提取的会话笔记

工作流

Memory 技能定义了四种标准工作流,规范在对话中如何使用记忆。

新对话

当新会话开始时:

1如果存在已注入的记忆上下文,则直接使用(系统可能会预加载相关记忆)
2如果任务依赖于先前的决策或偏好,则搜索记忆
3当需要精确措辞或详细信息时,读取相关文件

用户提到偏好

当用户表达偏好时(例如,"我喜欢用 Tab 而不是空格"):

1简要确认("好的,已记录。")
2保存到 structured/profile.md
3如果是项目特定的,也保存到相应的语义文件中

用户问"你记得...吗?"

当用户询问之前是否讨论过某事时:

1运行 cli-jaw memory search "<keywords>"
2如果找到,回答记忆中的事实并引用源文件
3如果未找到,说明没有已保存的记录并提议保存

重要会话结束时

当会话产生了重要的决策或结果时:

1保存持久性的决策或事实
2使用情景文件(episodes/)保存有时间标记的结果
3使用语义或档案文件保存长期知识

使用示例(~해줌)

以下是 CLI-JAW 能理解的、以自然韩语风格编写的实际使用模式。

"내가 저번에 Tailwind 쓰다고 했던 거 기억해?"
触发"你记得...吗?"工作流。代理运行 cli-jaw memory search "Tailwind",在 structured/profile.md 中找到已保存的偏好,并返回确切的条目及其源文件。
"앞으로 코드는 영어, UI 텍스트는 한국어로 해줌"
触发"用户提到偏好"工作流。代理进行确认,然后将 - Code language: English, UI text: Korean 保存到 structured/profile.md,以便所有后续会话遵循此偏好。
"지난번 배포 때 DB 마이그레이션 어떻게 했더라?"
触发"回答前先搜索"规则。代理搜索"DB migration deploy"和"배포 마이그레이션",然后读取相关的情景条目以回忆确切的迁移步骤。
"이 프로젝트에서 API 에러 해들링은 항상 ErrorResponse 타입 쓰기로 결정했어. 기억해줌."
触发立即保存。代理将 - API error handling: always use ErrorResponse type 保存到 structured/semantic/project-architecture.md,使此架构决策得以持久化。
"다른 인스턴스에서 이 프로젝트 어떻게 설정했는지 찾아뵐"
触发 L2 仪表盘记忆。代理识别到"其他实例"并运行 cli-jaw dashboard memory search "project setup" 进行跨实例联合查询,返回来自仪表盘的只读结果。

应该保存 vs. 应该跳过

保存(持久性)跳过(临时性)
用户在所有 UI 中偏好暗色模式当前任务:"修复登录 bug"
项目使用 pnpm 而非 npm阶段日志:"第二阶段于下午 3 点开始"
API 响应格式决策临时调试清单
生产环境部署流程"提醒我明天检查这个"
架构:使用事件总线的微服务进行中的待办事项列表
团队使用 Conventional Commits会话特定的变量值

选择正确的目标路径

保存事实时,根据信息的性质选择目标路径:

信息类型目标路径示例
个人偏好structured/profile.md"用户偏好韩语 UI、英语代码"
项目架构事实structured/semantic/<project>.md"CLI-JAW 使用 SQLite 作为记忆索引"
带日期的决策structured/episodes/live/<date>.md"2026-05-29: 选择 Drizzle ORM 而非 Prisma"
可重用的工作流structured/procedures/<name>.md"发布清单:lint、test、tag、deploy"
领域知识structured/semantic/<domain>.md"Cloudflare D1 每个数据库有 10GB 限制"

搜索技巧

记忆搜索索引支持全文关键词匹配。为获得最佳结果:

嵌入搜索是可选的,默认关闭。该技能不假定向量/语义搜索可用。所有搜索操作默认使用 SQLite 全文索引。

注意事项

相关内容