记忆系统
📖 适合谁:全员 —— 想要 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/