资源详情 · 记忆实验
球层记忆链:来源、改口与撤销
用固定的虚构消息观察偏好怎样被记住、更正和撤回,再用球层图查看来源链。
资源正文、示例和许可证保留原文。代码仅展示,不会在线执行或调用AI。
资源详情
适合有一点 JavaScript 基础、想理解聊天记忆边界的人。这里是可离线运行的实验库与合成演示,不是已连接微信的聊天插件;没有模型、账号或真实成长系统。
使用前准备
- 适用平台
- Windows · macOS · Linux
- 内容更新
- 准备 Node.js 22 或以上版本和文本编辑器;本站实测为 v24.19.0,尚未实测 22。不需要 npm install、账号或接口密钥。
- 下载完整实验包并解压到普通文件夹,保持 demo.mjs 与两个模块在同一目录。
node demo.mjs在解压后的实验包目录执行;命令只使用合成数据,不联网、不读写私人文件。
常见卡点
- 不能只复制 demo.mjs:它会导入同包的 radial-memory-core.mjs 与 typed-extractor.mjs。
- 所有状态只在本次进程中计算;新结构的加密保存、重启恢复和真实平台接入尚未实现。
完整正文
// 本网站作者原创 · 包子海梦. Deterministic synthetic data only.
import { createHash } from 'node:crypto';
import { pathToFileURL } from 'node:url';
import { extractTypedFacts } from './typed-extractor.mjs';
import { createRadialMemory, applyRadialFacts, recallRadialMemory, projectRadialMemory } from './radial-memory-core.mjs';
export function buildDemoFrames() {
const scopeHash = createHash('sha256').update('synthetic-public-memory-demo-v1').digest('hex');
const envelope = { companionId: 'local-deepseek', scopeHash };
const baseAt = Date.UTC(2026, 9, 28, 0);
let state = createRadialMemory({ ...envelope, fictionalBackground: ['合成角色:喜欢安静阅读'] });
const frames = [];
const addFrame = (id, title, message) => frames.push({ id, title, message,
projection: projectRadialMemory(state, envelope),
recall: recallRadialMemory(state, { ...envelope, query: '你记住了什么?', maxChars: 240 }) });
const applyTyped = segments => {
const facts = extractTypedFacts(segments);
const result = applyRadialFacts(state, { ...envelope, facts });
if (result.results.some(item => item.outcome === 'rejected')) throw Error('synthetic_demo_rejected');
state = result.state;
};
const segment = (id, text, offset) => ({ messageId: `synthetic-demo-${id}`, itemIndex: 0, kind: 'typed', text, at: baseAt + offset });
addFrame('initial', '初始:设定与真实相处分开', '尚未输入用户偏好;角色设定是合成内容');
applyTyped([segment('cake-like', '我喜欢草莓蛋糕', 1), segment('coriander-dislike', '我不喜欢香菜', 2)]);
addFrame('remember', '记住:保存明确偏好与来源', '我喜欢草莓蛋糕 / 我不喜欢香菜');
applyTyped([segment('cake-correction', '我现在不喜欢草莓蛋糕了', 3)]);
addFrame('correct', '改口:当前事实替换,来源链保留', '我现在不喜欢草莓蛋糕了');
applyTyped([segment('coriander-withdrawal', '忘记我不喜欢香菜', 4)]);
addFrame('retract', '撤回:移除派生详情,保留去重墓碑', '忘记我不喜欢香菜');
return { schema: 'xiaobu-radial-memory-demo-frames-v1', synthetic: true,
author: '包子海梦', attribution: '本网站作者原创 · 包子海梦',
notice: '全部为固定合成演示数据;不是任何真实用户、微信账号或聊天记忆。', frames };
}
if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href)
console.log(JSON.stringify(buildDemoFrames(), null, 2));
使用教程
先看四阶段球层演示,再运行同一组固定消息,区分角色设定、当前偏好和旧来源。
下载并保留完整目录
使用下方完整实验包,解压后保留模块、演示、测试及 LICENSE.txt。正文是同包 demo.mjs 的入口,不是一个独立文件。
运行固定合成演示
在此目录打开终端,执行 node demo.mjs。输出四个固定阶段的 JSON;不启动机器人,也不连接微信或模型。
观察更正与撤回
先记住喜欢草莓蛋糕、不喜欢香菜,再将蛋糕改为不喜欢,最后撤回香菜偏好。对照球图:旧蛋糕来源被替代,香菜详情移除,去重墓碑保留。
- 保存文件名
demo.mjs- 运行环境
- Node.js 22+;只依赖 Node 内置模块,无额外软件包。
- 依赖与费用
- 没有云接口费用,不要求独立显卡;运行设备和电力成本由使用者承担。
运行命令
node demo.mjs预期输出
initial → remember → correct → retract
{"synthetic":true,"frames":[...]}本地核验
2026-10-28 · Node.js v24.19.0
固定合成数据的本地演示和自动化检查;完整核验范围见实验包 VALIDATION.txt。不代表生产接入或安全审计。
适合用在哪里
- 学习带来源的明确偏好与更正
- 研究撤回、重放去重与有限召回的边界
注意事项
- 只识别少量明确的中文偏好句式;不是任意自然语言理解或通用记忆提取器。
- 引用、网页、图片与语音转写不自动成为用户明确偏好;来源与权限须由实际应用验证。
- 撤回会移除派生详情,但保留有限去重墓碑;它不承诺清除外部日志、备份或已发消息。
- 所有状态只在本次进程中计算;新结构的加密保存、重启恢复和真实平台接入尚未实现。
- 不保证永不失忆或实际节省多少 token;球层图是数据关系示意,不是大脑或模型内部结构。
原作者与来源
- 署名
- 本网站作者原创 · 包子海梦
- 原作者与来源
- 包子海梦
- 许可核对日期
- 2026-10-28
声明与修改说明
2026-10-28 新编写的离线实验库;下载包不含微信、模型、用户数据或第三方运行时。
完整许可证
MIT
MIT License Copyright (c) 2026 包子海梦 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
验证范围
离线实验库 · 核验记录随包提供
提供固定合成数据的演示与自动化检查;未接入微信、模型或真实账号,未实现新结构的加密持久化或真实成长。
2026-10-28 Node.js v24.19.0
查看验证记录 →