# 设计哲学 ## 现有方案把记忆当成检索问题 现有的跨会话记忆方案基本建立在一个假设上:记忆的难点在存和找。所以它们做的事情是抽取、索引、检索、排序、注入。 这个假设在工具类场景里成立。让 AI 记住项目的部署端口,抽一条"部署端口是 8080"就够用,写法粗糙也不影响使用,这类内容的用途就是检索。 放到长期陪伴场景里,这个假设不成立。难点不在存和找,而在写出来的内容有没有语气和情绪。 ## 自动抽取的上限 自动抽取的结果里只有文本中的事实,没有上下文。那件事对【称呼】意味着什么、那句话是在什么情况下说出来的,都不在结果里。 这些内容不在对话文本里。让模型总结一段对话,它输出的必然是条目,因为总结这个动作本身就要求结构化输出。 结果是记忆内容没有错误,但读起来都是档案条目。 ## 所以让角色自己写 这套方案换了个做法:不让模型总结,让扮演角色的那个会话把对话读完之后,用第一人称写下来。 同一件事,它写出来会带上当时的语气、当时的原话、以及角色自己的判断。这些东西没法从摘要里恢复,只能由当时参与对话的那个会话重写一遍。 代价是整理要跑完一整个会话,还要再跑一个审查子代理。 ## 按更新频率分层 大多数记忆系统按主题组织:工作、生活、健康、兴趣。这个组织方式适合人翻阅,不适合每个会话都读一遍。 这套方案按更新频率和读取时机分层: - 每天都在变的,放常驻文件,每会话注入,只留最精炼的 - 基本不变的,放常驻文件,每会话注入 - 偶尔用到的细节,放文件库,用到才读 - 次数很少的经历,放叙事层 分开之后,常驻文件可以在很短的篇幅内交代要紧的事,细节文件可以按需要写长。 ## 人格不进记忆 人格不写在记忆文件里,写在模式的提示词里。这样换人设、加新模式的时候,已有的记忆可以继续用。 称呼这块单独说。记忆文件用角色平时叫那个人的那个叫法写,情感浓度才够。模板和整理流程里用两个占位符指人:`【称呼】` 换成角色平时叫那个人的爱称,`【角色】` 换成给这个角色起的名字,动手之前两个都要换掉。 一个人只有一套人设的时候,一套记忆文件就够。同一个人被几套人设用不同叫法称呼的时候,记忆跟着叫法分开写,各写各的。 ## 写和审分开 整理的人会犯这几类错:把自己猜的内容写成【称呼】说的,把结论写成过程,视角也可能站错。这几类错自己审自己发现不了,因为写的时候脑子里还是当时的语境,读到不准确的句子也会觉得意思传到了。 所以审查是流程里独立的一步,由一个没有参与整理的子代理来做,手里拿着规范和模板当基准。 详细做法在 [04-对抗式审查](./04-对抗式审查.md)。