NPC记住“玩家偷了面包”可能因为亲眼看见也可能只是听别人说过。如果把两条文字一起压成“玩家是小偷”节省了节点却抹掉了它们之间最重要的区别。长期记忆首先是信息治理问题。向量库、图网络和摘要器可以参与实现但压缩后的信念必须能回答谁说的、什么时候说的、依据还能不能撤回。世界事实与角色信念用不同的键权威世界状态记的是物品实际归属、事件是否发生角色信念记的是它知道什么。允许角色误解是叙事能力不代表可以把误解写回权威状态。Matrix-Game 4.0的引擎/生成分工提供了一个相关参照可执行状态需要独立维护。把这一点移到记忆系统意味着模型生成的摘要不能自行创造新的已发生事件。压缩的是表示不是追责能力每个事实保留稳定ID摘要记录它引用的事实ID。某个输入后来被撤回先标记失效再让受影响摘要进入重建队列。旧摘要暂时仍在磁盘上并不危险危险的是失效后仍被检索成可信依据。重复证据也要保留来源关系同一个传闻转述十次不等于十个独立目击者。若用置信度加权权重应来自明确规则不能把语言模型输出的小数自动当成校准概率。先检验撤回再检验压缩比下面只存三条简化记录。摘要依赖前两条撤回其中一条后它就不再可用。这个规则看起来保守却比“压缩98%并保持世界观一致”更容易复查。评估时应拿固定问答集分别测有效事实召回、过期事实泄漏和出处完整性。内存下降、检索更快和回答更可靠是三个指标不应互相代替。事实、信念与来源链分别保存摘要可以缩短文本但不能剪断出处。把关键规则缩成一个可运行例子下面使用 Python 3 标准库表达算法规则保存为example.py后运行python3 example.py。它便于观察输入和输出不替代引擎中的 C、Shader 或模型实现。facts { f1: {valid: True, source: witness-a}, f2: {valid: True, source: event-log}, f3: {valid: True, source: rumor}, } summary {text: player visited bakery, depends: [f1, f2]} def usable(item): return all(facts[k][valid] for k in item[depends]) assert usable(summary) facts[f1][valid] False assert not usable(summary) assert facts[f2][valid] print(summary invalidated; independent fact retained)本例输出summary invalidated; independent fact retained图谱蒸馏如果能提高查询效率应在这套可撤回的语义之上比较。不要为了让摘要更像自然语言把“听说”“推测”和“日志记录”揉成同一种肯定句。角色可以不可靠系统对这种不可靠的记录应当可靠。适用范围未训练GNN、调用RAG或语言模型也未进行长期NPC仿真这里只验证依赖失效传播。相关资料Matrix-Game 4.0论文
阅读完成 · 觉得有帮助?