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

发布时间:2026/9/25 20:48:29

狗头军师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),仅供参考
延伸阅读

更多相关文章

2026/9/25 20:48:29

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

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

2026/9/25 20:48:29

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

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

2026/9/25 20:48:29

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

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

2026/9/25 21:53:32

Atlas 300V 24G 部署 YOLOv5 完整实战:从环境搭建到推理调优

去年底接了一个工业视觉项目,客户指定的就是 Atlas 300V 24G 这张卡,要求在上面跑 YOLOv5 做缺陷检测。当时团队里不少人第一反应是问“Atlas 300V 24G 是运算加速卡吗、能直接当 GPU 用吗”,等我把整套流程跑通之后,才发现市面上…

2026/9/25 21:53:32

Graspness抓取置信度:从RGB-D热图到6DoF位姿的轻量级实现

简介:本资源是一套基于Graspness评分的机械臂视觉6自由度抓取完整实现方案,面向计算机、人工智能、机器人及电子信息等专业的本科生与研究生,适用于课程设计、毕业设计及机器人感知-操作联合学习。项目采用Python为主开发语言,融合…

2026/9/25 21:53:32

UE3游戏画质增强实战:INI调优与Reshade后处理协同方案

1. 项目概述:这不是“一键高清”,而是一次对UE3引擎底层渲染管线的精准干预你搜到“X战警金刚狼前传画质增强修改”时,大概率正被那部2009年老游戏的画面劝退——贴图模糊、光影生硬、远景糊成一片马赛克,角色建模边缘锯齿明显&am…

2026/9/25 21:53:32

Atlas 300V昇腾推理卡YOLO实战:从环境搭建到性能调优

群里聊到推理卡,有人甩过来一张截图,问“Atlas 300V 24G 这玩意是运算加速卡吗?能不能拿来跑YOLO?”底下回答五花八门,有说能跑但有坑的,有说这就是个NPU玩具的,还有人直接拿它跟Tesla T4比参数…

2026/9/25 21:00:17

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/25 20:59:52

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/25 0:02:35

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:02:35

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:02:35

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 20:55:38

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/25 18:41:36

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/25 18:34:56

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑