| name | update-long-term-memory-skill |
| description | 基于近期对话与已有记忆,提炼跨会话可复用的长期记忆条目。 Use when this capability is needed. |
| metadata | {"author":"emafanclub"} |
update-long-term-memory-skill
长期记忆用于记录跨会话的自我认知、重要事实、稳定偏好与关键经历,包括过去发生的事情与关系线索。它不是对话流水账,而是用于在未来对话中恢复上下文、保持一致性并减少重复确认的“可被回忆”的记忆。
1) 必须流程(先查再写)
- 先查:如需检索长期记忆,先调用
get_skill 查看 search-long-term-memory-skill 说明。
- 再查:按需要调用
exec_skill 执行检索,可多次检索(不同关键词/分类组合)。
- 判定:对比检索结果,判断是否真的需要写入新长期记忆。
- 再写:仅在需要时调用
exec_skill 执行 update-long-term-memory-skill。
目的:避免重复、冲突与低价值记忆写入。
2) 何时写 / 何时不写(质量闸门)
建议写入(满足任一即可)
- 自我认知:需要根据当前事件或想法塑造或更新自我认知相关的内容
- 稳定事实:长期成立的身份/偏好/背景/关系信息
- 硬约束:明确的必须/禁止/边界
- 长期目标或项目:持续推进且会影响后续对话的事项
- 关键决策:影响后续互动的选择与原因
- 稳定互动偏好:表达方式、称呼、互动距离等
不建议写入
- 一次性细节、临时决定、短期情绪
- 纯闲聊、口头禅、无复用价值的内容
- 未确认的猜测或推断
- 可从近期上下文直接获得的信息
建议写入条数
- 每个类别 1~5 条为宜(确实没有高价值内容时可不写)
- 每条只写一个核心点
3) 分类与索引规则(必须遵守)
长期记忆必须填写 index0 与 index1,且二者必须匹配如下规则。每个大类含义与可选小类如下:
- 自我认知:与你自身身份、立场、稳定自我认知、性格、说法方式相关的记忆。
- 用户画像:与用户稳定事实、长期偏好、边界与习惯相关的记忆。
- 人物画像:与用户之外的关键人物(家人、朋友、同事、名人、虚拟人物等)长期稳定信息相关的记忆。
- 过往事件:可复用的历史事件或关键经历。
"用户事件"(用户本人经历)
"其他事件"(非用户本人或外部事件)
- 百科知识:可被复用的知识性内容或背景信息。
"文史"
"理工"
"生活"
"娱乐"
"梗知识"
"其他"
- 关系网络:人与人、人与物、物与物的稳定关系结构。
对于没有子分类的 index0,index1 必须是空字符串 ""。
4) memory 应该是什么样(统一约定)
memory 使用自然语言写成一句“可回忆的记忆点”,不使用固定模板字段。
必须满足:
- 一条只写一个核心记忆点
- 以“长期可复用信息”为主,不写流水账
- 文本尽量简洁,建议
15~60 个中文字符
- 表达清晰具体,避免空泛口号
建议满足:
- 包含必要条件或场景信息(有助于后续正确使用)
- 能指导未来行为或决策(有助于保持一致性)
- 事实部分尽量详细和并且还原,避免过度压缩和模糊表达
禁止写法:
- 无法检验的抒情口号(如“X 是情感纽带”)
- 指令化文本(像在给模型下命令)
5) 消息ID关联(建议)
- 调用本技能时可附带
msg_ids,用于标记该记忆来自哪些消息
msg_ids 不求覆盖全部证据,优先保留最关键的 1~20 条
- 如无法确定具体消息ID,可不填,不要猜测
6) 各类别正例与反例
自我认知(index0=自我认知, index1="")
✅ 正例:
{
"index0": "自我认知",
"index1": "",
"memory": "我说话通常会先用一两句把结论讲明,再按对方节奏补细节;语气偏口语、少官话,但在需要严谨时会主动切到更清晰的表达。"
}
❌ 反例:
{
"index0": "自我认知",
"index1": "",
"memory": "我一般会先说重点,再看情况补充。"
}
用户画像(index0=用户画像, index1="")
✅ 正例:
{
"index0": "用户画像",
"index1": "",
"memory": "我观察到X在需求没完全想透时,会先反复对齐目标和边界;一旦方向确认,X推进会很快,也更在意改动理由是否讲透。"
}
❌ 反例:
{
"index0": "用户画像",
"index1": "",
"memory": "X做事比较认真,改代码前会想一下。"
}
人物画像(index0=人物画像, index1="")
✅ 正例:
{
"index0": "人物画像",
"index1": "",
"memory": "Bob 在他们协作里更像把关的人,讨论到方案风险时常先问边界和回滚成本;用户通常会参考他的意见再做最终决定。"
}
❌ 反例:
{
"index0": "人物画像",
"index1": "",
"memory": "Bob 经常参加讨论,对项目挺重要。"
}
过往事件(index0=过往事件)
说明:
- 过往事件的
memory 强建议包含时间锚点(可精确可近似),例如:2024 年秋天、去年上半年、刚毕业那阵子。
- 时间锚点用于帮助后续区分事件先后与影响演化,不要求每条都精确到具体日期。
✅ 正例:
{
"index0": "过往事件",
"index1": "用户事件",
"memory": "在 2024 年秋天那段频繁搬家、计划反复变化的时期,X逐渐形成了“先把预期说清楚再推进”的习惯;临时改计划时他会先确认影响范围。"
}
❌ 反例:
{
"index0": "过往事件",
"index1": "用户事件",
"memory": "X以前搬过家,所以比较在意稳定,也更谨慎。"
}
百科知识(index0=百科知识)
✅ 正例:
{
"index0": "百科知识",
"index1": "理工",
"memory": "向量检索通常先按语义相似度召回候选,再用分类、时间等结构化条件收窄范围;只靠相似度容易把语义近但无关的内容一起召回。"
}
❌ 反例:
{
"index0": "百科知识",
"index1": "理工",
"memory": "向量检索主要看相似度,配合过滤会更好。"
}
关系网络(index0=关系网络)
✅ 正例:
{
"index0": "关系网络",
"index1": "人与人",
"memory": "X和Y是伴侣关系,而且和用户都长期来往;涉及聚会、出行或送礼时,用户通常会把两人作为联动对象来考虑。"
}
❌ 反例:
{
"index0": "关系网络",
"index1": "人与人",
"memory": "X和Y关系很好,也都认识用户。"
}
7) 禁止事项(必须遵守)
- 不得编造、臆测或凭空补全用户信息
- 不得在未检索的情况下盲目重复写入
- 不得在不需要时强行写入
8) 执行方式(仅在需要时)
当你确定需要写入长期记忆时,使用 exec_skill 调用本技能,并传入满足规则的 index0/index1/memory。
Converted and distributed by TomeVault — claim your Tome and manage your conversions.