跳到主要内容

记忆系统

📖 适合谁:全员 —— 想要 AI 跨会话记住自己(名字、偏好、项目历史),越用越懂自己的人

📖 阅读时长:4 分钟

📖 一句话:YingClaw 的灵魂能力 —— 4 类记忆(core / user / daily / conversation)按"保留时长 + 注入方式"区分,跨会话保留关键上下文,本地存储不上传。对话中自然语言(「记住…」/「忘掉…」)或 memory_store / memory_recall / memory_forget 工具触发,全员访问,每用户独立记忆库,存储于 ~/.YingClaw/workspace/


一、核心价值

价值说明
越用越懂你用户画像 + 偏好持续累积 — 名字、岗位、代码风格、沟通语气,越来越对你胃口
跨会话连续性主会话每次自动注入 L1 核心 + L2 用户记忆,新会话按需召回,接续上次话题不掉线
4 类分层管理core(永久)/ user(永久)/ daily(7 天)/ conversation(系统自动)— 按生命周期精准管理
本地隐私 + 自动去重全部本机存储不上传;同 key 自动合并并升级到 L1,避免记忆碎片化

二、主要能力

1. 4 类记忆架构

类型作用注入方式生命周期
core永久事实、决策、约定每次会话都注入永久
user用户画像、偏好、风格每次会话都注入永久
daily每日笔记、临时任务按需调用7 天后自动过期
conversation对话自动保存不可手动系统管理

L1 注入 = 主会话每次自动加载到系统提示开头,无需手动 recall。

2. 核心记忆(core)

  • 永久保留,显式 memory_forget 才删;每次会话自动注入
  • 适用:项目约定、技术决策、公司制度、不变的规则
  • 示例:"仓库 docs/ 要小写"、"PowerShell 直接推 master 不走 MR"、"Shell 超时 5 分钟输出截断 1MB"

3. 用户画像(user)

  • 永久保留,每次会话自动注入
  • 适用:你的名字、岗位、技术栈、沟通风格、习惯
  • 示例:"我是李朋波,平台架构师"、"我喜欢简短直接的回复"、"代码用 2 空格缩进"

4. 每日笔记(daily)

  • 7 天后自动过期;按需调用,不自动注入(避免污染主会话)
  • 适用:今天的工作进展、临时任务、待办、调试中间结果
  • 示例:"今天的工作进展记一下"、"待办:把 api-access 推上去"、"调试 #4165 失败:frontmatter 反引号"

5. 对话自动保存(conversation)

  • 系统自动管理;不可手动(memory_forget 也无法删,避免误删)
  • 用户不应主动存conversation,系统自动处理

6. 跨会话连续性机制

  • 主会话:L1 核心 + L2 用户记忆自动注入到系统提示
  • 新会话:L1 + L2 自动注入,L3 每日笔记需显式 memory_recall
  • 子代理:L1 注入,子代理有自己独立的上下文
  • 冷启动:L1 / L2 均为空,YingClaw 从"零认知"开始,你说一句它学一句

7. 本地存储(隐私优先)

  • 每个用户记忆库独立隔离(user_id 隔离)
  • 不上传到任何外部服务器,也不云同步
  • 手动备份:tar czf ~/.YingClaw/workspace/ 整个目录打包

8. 记忆工具 API

  • memory_store:保存一条记忆(自动去重 + 升级到 L1)
  • memory_recall:按关键词检索记忆
  • memory_forget:删除 / 更新过期记忆(幂等,缺失 key 不报错)
  • 同 key 的新内容自动合并升级到 L1,不会出现"3 条重复偏好"碎片化

三、典型应用场景

场景 1:记偏好 —「记住我写代码用 2 空格缩进」

"记住我代码用 2 空格缩进,Python 4 空格"
→ memory_store(key="code_indent", content="代码 2 空格,Python 4 空格", category="user")
→ 下次会话 YingClaw 自动知道,不用再说

用户偏好user,跨会话都"懂你"。

场景 2:记今日工作 —「今天的工作进展记一下」

"今天的工作进展记一下:重写 model-providers、推送 api-access + shell-command、file-operations 待推"
→ memory_store(category="daily", content="...")
→ 7 天后自动过期,不污染长期记忆

临时任务daily,7 天后自动清理。

场景 3:记决策 —「以后 intelliyou_docs 推送都走 git push,不建 MR」

→ memory_store(key="yingclaw_push_strategy", content="直接 push master", category="core")
→ 所有未来会话的 YingClaw 都遵守这条项目约定

项目决策 / 约定core,永久保留,跨会话自动遵守。

场景 4:忘掉错误 —「忘掉我之前说的 4 空格缩进」

"忘掉我之前说的 4 空格缩进"
→ memory_forget(key="code_indent") # 幂等
→ memory_store(key="code_indent", content="2 空格缩进", category="user")

场景 5:跨会话接力 —「昨天那个 pipeline 失败的原因找到了吗?」

昨天 daily:"调试 #4165 pipeline 失败:frontmatter 反引号"
今天新会话:memory_recall(query="#4165 pipeline")
→ 自动召回昨日 daily 笔记,无缝接力

新会话默认不注入 daily,但显式 memory_recall 时按需调,既灵活又精准。

四、使用指南

第 1 步:用自然语言触发 — 大部分时候不用记工具名,直接说"记住 X" / "记一下今天的工作进展" / "忘掉 X" / "X 是怎么定的?",YingClaw 自动选 user / daily / core 分类。

第 2 步:显式调用工具(高级) — 批量存(脚本里写循环)、精确指定 category、跨项目查询、调试记忆库时,用 memory_store / memory_recall / memory_forget

第 3 步:分类原则 — 不确定时按"会不会变"判断:

  • 永不变 / 跨项目 → core(技术决策、公司约定)
  • 永不变 / 跟你个人有关 → user(名字、风格、偏好)
  • 7 天内会变 / 临时 → daily(今天进展、待办)
  • 系统自动 → conversation(不用管)

第 4 步:主动召回 — 新会话中需要昨天的 daily 笔记,用 memory_recall(query="...") 按关键词查;主会话 L1 自动注入的不用手动 recall。

第 5 步:清理过期daily 7 天后自动过期,不用手动删;core / user 永久,有错才用 memory_forget

第 6 步:跨设备同步(可选) — 默认本地不上云;想跨设备可手动同步 ~/.YingClaw/workspace/ 到云盘,或订阅 YingClaw Cloud(企业版加密同步)。

五、最佳实践

  • 用户偏好 → user — 名字、岗位、代码风格、沟通语气,永久注入跨会话好用
  • 项目/任务 → daily — 今天工作进展、待办、临时决策,7 天过期避免长期污染
  • 决策/约定 → core — 仓库命名规则、推送策略、安全规则,永久保留
  • 不确定 → daily 先存 — 错了代价低(自动过期),对了再升级到 user / core
  • key 要具体不模糊code_indent 而非 pref1,方便后续 recall / forget
  • 一次只存一件事 — 3 个不相关的偏好不要塞到一条,碎片化会导致召回不精准
  • 定期审视 core — 每季度过一次 L1,删过时的(项目已废弃、决策已变),避免记忆库膨胀
  • daily 不存长期事实 — 重要决策即使临时也存到 core,7 天过期后找不回就尴尬了
  • 不存敏感凭据 — 密码、Token、API Key 永不入记忆;用环境变量 / KMS 注入
  • 跨设备迁移要备份~/.YingClaw/workspace/ 是全部"数字记忆",定期 tar czf yingclaw-backup-$(date +%F).tar.gz ~/.YingClaw/workspace/