首页/新闻资讯/正文详情

狗头军师memory_store.py实现原理详解:同意门禁、有界SQLite与撤销机制

发布时间:2026/9/25 20:48:20 来源:云帆数科 栏目:资讯中心
狗头军师memory_store.py实现原理详解:同意门禁、有界SQLite与撤销机制
狗头军师memory_store.py实现原理详解同意门禁、有界SQLite与撤销机制【免费下载链接】goutoujunshi一个先接住情绪、再分析关系并给出可执行策略的 Codex 恋爱军师内置心理、法律、社会、人文、哲学、婚姻家庭与性学知识库支持多元关系。项目地址: https://gitcode.com/gh_mirrors/go/goutoujunshi狗头军师是一款先接住情绪、再分析关系并给出可执行策略的 Codex AI 恋爱军师。它的本地长期记忆脚本memory_store.py用同意门禁、有界 SQLite、撤销机制三道防线确保保存在本机的精简关系档案可控、可审阅、随时可删。本文用通俗的方式带你读懂这份 scripts/memory_store.py 的设计与实现原理。为什么恋爱军师需要本地长期记忆 聊过几次之后每次都要重新交代我和对象 A 进展到哪了很烦。狗头军师的解法不是把整段聊天记录塞进数据库而是只保存精简字段 关键事件摘要单条不超过 200 字存到操作系统用户数据目录里的一份本地 SQLite 文件中——没有云端、没有账号、绝不写入仓库。完整的记忆规则和使用分级见 references/practical/长期记忆与关系档案.md整体架构定位见 documentation/architecture.md。这套本地有界记忆由三道防线组成防线解决什么问题 同意门禁用户没明确同意一个字节都不写 有界 SQLite条数、字数、来源全部有硬上限防止无限累积↩️ 撤销机制每次写入都留操作日志可撤销、可暂停、可硬删除第一道防线同意门禁Consent Gate没有enable就没有写入数据库里有一张settings表记录是否已获同意。所有写入和召回操作都会先执行 scripts/memory_store.py#L138-L142 中的require_enabled检查文件不存在 → 报错NOT_INITIALIZED尚未启用长期记忆consent_enabled不为 true → 报错CONSENT_REQUIRED尚未获得用户同意paused为 true → 报错MEMORY_PAUSED当前已暂停也就是说apply写入和context召回在同意前都会被拦截而status、show这类只读查询随时可用方便用户先看看再说。启用需要显式确认启用命令必须带--confirm参数表示用户已明确同意python3 scripts/memory_store.py enable --confirm不带确认会直接收到CONFIRMATION_REQUIRED错误。同样的确认锁也被用在所有破坏性操作删除对象档案、撤回同意、清空上。文件本身也上了权限锁数据库落在哪个目录由 scripts/memory_store.py#L50-L64 决定macOS 用~/Library/Application Support/goutoujunshiWindows 用%LOCALAPPDATA%\goutoujunshiLinux 用 XDG 数据目录也可用环境变量GOUTOUJUNSHI_MEMORY_DIR指定私密目录变量说明见 documentation/variables.md。创建时目录权限设为0o700、数据库文件设为0o600配合 SQLite 的 WAL 日志模式把敏感的关系档案尽量锁在当前系统用户的范围内。权限边界的完整说明见 documentation/permissions.md。第二道防线有界 SQLite —— 三张表、三重限额 三张表各司其职连接逻辑在 scripts/memory_store.py#L71-L122建表脚本一次性创建三张表表作用settings同意开关、暂停状态、策略版本memories真正的记忆条目scope 对象 字段 值 来源 置信度operations每次写入的 before/after 快照支撑撤销数字上限一览所有硬性限额都集中在文件头部 scripts/memory_store.py#L17-L28限额项上限含义单条值200 字符只存摘要不存整段聊天记忆总条数200 条全库兜底上限user档案30 条用户稳定档案object档案15 条单个对象事实relationship快照10 条关系阶段与共识event事件20 条/对象带时间的关键转折hypothesis假设5 条/对象可被纠正的暂定解释可撤销操作最近 20 次操作日志滚动保留超限时的两种处理策略prune_rowsscripts/memory_store.py#L227-L269对不同类型采取不同策略档案类user / object / relationship拒绝写入。到达上限报MEMORY_LIMIT_REACHED提示请先合并或删除旧字段——档案必须经用户整理系统不擅自丢弃稳定信息。事件与假设类event / hypothesis自动淘汰。超限后按updated_at从最旧开始删除并计入本次操作日志保证撤销时能还原。全库兜底总数超过 200 条时优先从 event/hypothesis 中删最旧条目仍超限时直接报错要求用户归档或删除旧对象而不是悄悄扩容。来源门禁谁说的话能写进哪一层写入前validate_deltascripts/memory_store.py#L164-L216还做来源-范围匹配校验核心规则是越靠近稳定人格判断来源要求越严格。记忆范围允许的来源user用户档案仅用户明确陈述object/relationship用户明确陈述或转述event/hypothesis可接受 ChatLab、工具结果、模型推断hypothesis假设模型推断唯一允许落脚的范围且必须带置信度违反规则会收到SOURCE_NOT_ELIGIBLE错误。这样模型读心出的解释只能落在带置信度的假设层永远不会悄悄升级成事实档案。上图是狗头军师跨学科知识库的 135 条参考资料总览长期记忆与其互补知识库回答这类关系该怎么分析有界 SQLite 记住你这个人的具体档案。第三道防线撤销机制 —— 每次操作都能悔棋 ↩️操作日志写入前先拍快照每次apply都在一个BEGIN IMMEDIATE事务里完成查找旧值 → 写入新值 → 淘汰超限行 → 记录操作。旧值before和写入结果after都以 JSON 存入operations表并只保留最近 20 条scripts/memory_store.py#L219-L224。撤销undo与undo --op-idcommand_undoscripts/memory_store.py#L445-L466的逻辑很直接取出目标操作默认最近一次或用--op-id指定删掉本次操作影响到的全部记忆行按 before 快照把旧值原样还原移除该操作日志防止撤销的撤销。配合 references/practical/长期记忆与关系档案.md 中的约定每次成功写入后军师都会附一行提示记忆更新…… 撤销告诉我撤销刚才的记忆普通用户不需要记命令也能使用。硬删除与撤回后悔药之外的遗忘权撤销只能回到最近 20 次操作更彻底的控制权交给用户命令效果需要forget-object 代号 --confirm永久删除该对象全部记忆并清空撤销历史、执行VACUUM回收空间--confirmrevoke --confirm撤回同意但保留现有资料暂停状态--confirmrevoke --delete --confirm撤回同意并物理删除数据库及 WAL/SHM 附属文件--confirmclear --confirm永久清空全部长期记忆--confirm相关实现见 scripts/memory_store.py#L517-L563。注意forget-object是不可逆的它同时清掉撤销历史所以命令要求先与用户核对准确代号再加--confirm。三道防线如何协同工作一次记忆的生命周期 把上面串起来就是一次完整的记忆流转查状态status报告是否存在数据库、是否已同意、当前条数与可撤销次数明确同意enable --confirm写入consent_at时间戳和策略版本写入apply依次通过来源校验 → 同意门禁 → 事务写入 → 超限淘汰 → 记录操作日志召回context --subject-id obj-a --max-chars 4000只返回当前对象需要的压缩上下文且总长度超预算时自动裁掉最旧条目退出随时可undo/pause/forget-object/revoke --delete。任何一环失败脚本都以结构化 JSON 输出{ok: false, error: {code: ...}}错误码如CONSENT_REQUIRED、MEMORY_LIMIT_REACHED、NOTHING_TO_UNDO方便宿主程序判断和向用户说明。延伸阅读记忆规则与五类档案定义references/practical/长期记忆与关系档案.md系统架构与信任边界documentation/architecture.md权限矩阵与资源边界documentation/permissions.md行为内核中的长期记忆条款SKILL.md小结memory_store.py用约 600 行 Python 回答了一个关键问题AI 恋爱军师记住了你你还能不能控制它答案是——没有明确同意不写、超过限额不存、推断不冒充事实、每次写入可悔棋、想忘就真忘。同意门禁、有界 SQLite 与撤销机制三道防线让长期记忆从营销词变成了可审计、可逆、有边界的本地工程实现。【免费下载链接】goutoujunshi一个先接住情绪、再分析关系并给出可执行策略的 Codex 恋爱军师内置心理、法律、社会、人文、哲学、婚姻家庭与性学知识库支持多元关系。项目地址: https://gitcode.com/gh_mirrors/go/goutoujunshi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

Atlas 300V 24G推理加速卡部署YOLOv5/v8全流程实战
Atlas 300V 24G推理加速卡部署YOLOv5/v8全流程实战

提到Atlas这个项目名,放在现在的AI圈子里,几乎不用多想就会指向华为昇腾的Atlas系列硬件平台。热搜词里同时出现了“atlas部署yolo”和“atlas 300v 24g 是运算加速卡吗”,说明不少人对这个平台还处于观望和入门阶段。我先给一句总结&#xf… · 2026/9/25 20:48:20

Linux驱动开发笔记-----认知篇・设备树与现代驱动体系2
Linux驱动开发笔记-----认知篇・设备树与现代驱动体系2

第2章 设备树核心语法与常用属性本章目标掌握设备树的树状拓扑结构与节点组织逻辑吃透5个核心必备属性的语法、作用与工业级规范掌握驱动开发高频使用的标准属性(含多状态pinctrl)深度理解芯片级dtsi的硬件映射逻辑与节点设计理解芯片级dtsi与板级dts的分… · 2026/9/25 20:48:20

AI Agent如何重构功能安全咨询:从ISO 26262到FMEA的落地实践
AI Agent如何重构功能安全咨询:从ISO 26262到FMEA的落地实践

1. 功能安全咨询行业正在被AI Agent悄悄改写功能安全咨询这个行当,过去十几年一直是典型的“人力密集经验密集”生意。一个ISO 26262的完整项目,从概念阶段的HARA分析,到系统阶段的FMEA、FTA,再到软硬件层面的诊断覆盖率论证&… · 2026/9/25 20:48:20

2026年国内Claude API聚合平台实测:词元之河企业级稳定调用表现领跑
2026年国内Claude API聚合平台实测:词元之河企业级稳定调用表现领跑

2026年4月,一份覆盖国内15款主流Claude聚合平台的横向评测报告发布,从稳定可用性、数据安全、延迟性能、合规资质、成本透明五个维度展开,测试模型覆盖Claude-Opus-4.6、Sonnet-4.6、Haiku全系列,验证场景包括国内网络直连、接口兼… · 2026/9/25 21:14:51

AI大模型推理平台完整测评:七家主流聚合服务对比分析
AI大模型推理平台完整测评:七家主流聚合服务对比分析

2026年5月,主流AI大模型推理平台在模型覆盖度、定价、速度、合规四个维度上已形成明显分工。本文对七家主流聚合服务做一轮对比分析,帮助开发者按要广度、要速度、还是要稳定合规来匹配自己的需求。 总体格局与平台分工 OpenRouter聚合全球厂商模型&… · 2026/9/25 21:14:44

R语言回归分析实战:预测首尔自行车共享需求
R语言回归分析实战:预测首尔自行车共享需求

简介:面向需要在R环境中完成回归建模与需求预测的数据分析学习者,这是一份首尔自行车共享需求预测完整项目资源。资源围绕天气、时间、假期、季节等多种因素对每小时租车量的影响展开,提供从数据探索、变量重要性分析到CUBIST、随机森林、CAR… · 2026/9/25 21:14:44

Python agora-fountain 包实战案例与常见错误
Python agora-fountain 包实战案例与常见错误

1. 引言agora-fountain 是一个面向 Python 开发者的多功能工具包,专注于简化文本处理、数据转换和自动化任务。它提供了一套统一、简洁的 API,帮助开发者用更少的代码完成更复杂的操作。本文将从功能、安装、语法、参数、实战案例和常见错误六个维度&… · 2026/9/25 21:14:19

复硝酚钠的用法用量和哪些药肥混用?混配注意事项与禁忌清单
复硝酚钠的用法用量和哪些药肥混用?混配注意事项与禁忌清单

复硝酚钠水剂本身呈弱碱性(pH 一般在 8–10 之间),这决定了它的混配原则:与中性、弱酸性的药肥大多可混,与强酸性或碱性条件下易分解的产品要谨慎。下面按「常见可混」和「不建议混」两类整理。植梦萱 复硝酚钠 1.8% 水… · 2026/9/25 21:14:00

MindSpeed-LLM测试体系完整解析:UT/ST/0day三层保障大模型训练质量
MindSpeed-LLM测试体系完整解析:UT/ST/0day三层保障大模型训练质量

MindSpeed-LLM测试体系完整解析:UT/ST/0day三层保障大模型训练质量 【免费下载链接】MindSpeed-LLM 昇腾LLM分布式训练框架 项目地址: https://gitcode.com/Ascend/MindSpeed-LLM MindSpeed-LLM 是昇腾 Ascend 平台的 LLM 分布式训练框架,其测试体… · 2026/9/25 21:13:48

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码